summaryrefslogtreecommitdiff
path: root/src/gui/dialogs/qfiledialog.cpp
diff options
context:
space:
mode:
authorPrasanth Ullattil <prasanth.ullattil@nokia.com>2010-01-13 14:06:56 +0100
committerPrasanth Ullattil <prasanth.ullattil@nokia.com>2010-01-14 11:33:46 +0100
commite915c2408b2030b142dc309a9e4aba621341aa28 (patch)
tree62bc0386e6d6043511158975146e713dc299f4a7 /src/gui/dialogs/qfiledialog.cpp
parentb095541b487ee2faaca27ff226502acb2f81c7d4 (diff)
downloadqt4-tools-e915c2408b2030b142dc309a9e4aba621341aa28.tar.gz
File dialog mode is not correctly updated in Mac (Cocoa).
QFileDialog shows a customized version of the native file dialog on Mac. When user changes the fileMode, the corresponding options needs to be updated in the native dialog as well. Some options like mode, filters, button text, dialog title etc needs to be updated for this. This patch also address the changing of 'acceptMode'. When user changes this, for e.g. the native dialog needs to switch from an open panel to save panel. It is easier to recreate the internal QNSOpenSavePanelDelegate than changing options individually. Task-number: QTBUG-7086 Reviewed-by: Richard Moe Gustavsen
Diffstat (limited to 'src/gui/dialogs/qfiledialog.cpp')
-rw-r--r--src/gui/dialogs/qfiledialog.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index 3d59463ac2..21650bb1b9 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -1222,12 +1222,6 @@ QFileDialog::ViewMode QFileDialog::viewMode() const
void QFileDialog::setFileMode(QFileDialog::FileMode mode)
{
Q_D(QFileDialog);
- if (d->nativeDialogInUse){
- d->model->setFilter(d->filterForMode(filter()));
- d->setFilter_sys();
- return;
- }
-
d->fileMode = mode;
d->retranslateWindowTitle();
@@ -1263,6 +1257,11 @@ void QFileDialog::setFileMode(QFileDialog::FileMode mode)
}
}
setLabelText(Accept, buttonText);
+ if (d->nativeDialogInUse){
+ d->setFilter_sys();
+ return;
+ }
+
d->qFileDialogUi->fileTypeCombo->setEnabled(!testOption(ShowDirsOnly));
d->_q_updateOkButton();
}
@@ -1300,6 +1299,10 @@ void QFileDialog::setAcceptMode(QFileDialog::AcceptMode mode)
d->qFileDialogUi->lookInCombo->setEditable(false);
}
d->retranslateWindowTitle();
+#if defined(Q_WS_MAC)
+ d->deleteNativeDialog_sys();
+ setAttribute(Qt::WA_DontShowOnScreen, false);
+#endif
}
/*