Mercurial > octave
diff libgui/src/dialog.cc @ 24718:ea1c88bd4430
move more GUI classes inside octave namespace
* color-picker.cc, color-picker.h, dialog.cc, dialog.h,
documentation-dock-widget.cc, documentation-dock-widget.h,
external-editor-interface.cc, external-editor-interface.h,
octave-cmd.cc, octave-cmd.h, octave-qt-link.cc, octave-qt-link.h,
qtinfo/webinfo.cc, qtinfo/webinfo.h, resource-manager.cc,
resource-manager.h, shortcut-manager.cc, shortcut-manager.h,
tab-bar.cc, tab-bar.h, welcome-wizard.cc, welcome-wizard.h: Move class
declarations and definitions inside octave namespace.
* thread-manager.h, thread-manager.cc (octave::thread_manager):
Rename from octave_thread_manager. Change all uses.
(octave::base_thread_manager): Rename from
octave_base_thread_manager. Change all uses.
* color-picker.h: Provide temporary using decl for
octave::color_picker to import it into the global namespace.
* resource-manager.h: Likewise, for octave::resource_manager.
* shortcut-manager.h: Likewise, for octave::shortcut_manager.
* tab-bar.h: Likewise, for octave::tab_bar.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 09 Feb 2018 16:14:26 -0500 |
parents | c24b536df5d4 |
children | abfd4fc1b977 |
line wrap: on
line diff
--- a/libgui/src/dialog.cc Fri Feb 09 14:52:29 2018 -0500 +++ b/libgui/src/dialog.cc Fri Feb 09 16:14:26 2018 -0500 @@ -41,510 +41,503 @@ #include <QGridLayout> #include <QLabel> - -QUIWidgetCreator uiwidget_creator; - -QUIWidgetCreator::QUIWidgetCreator (void) - : QObject (), m_dialog_result (-1), m_dialog_button (), - m_string_list (new QStringList ()), m_list_index (new QIntList ()), - m_path_name (new QString ()) -{ } - -QUIWidgetCreator::~QUIWidgetCreator (void) +namespace octave { - delete m_string_list; - delete m_list_index; - delete m_path_name; -} + QUIWidgetCreator uiwidget_creator; + + QUIWidgetCreator::QUIWidgetCreator (void) + : QObject (), m_dialog_result (-1), m_dialog_button (), + m_string_list (new QStringList ()), m_list_index (new QIntList ()), + m_path_name (new QString ()) + { } -QString -QUIWidgetCreator::rm_amp (const QString& text) -{ - QString text_wo_amp = text; - text_wo_amp.replace (QRegExp ("&(\\w)"), "\\1"); - return text_wo_amp; -} + QUIWidgetCreator::~QUIWidgetCreator (void) + { + delete m_string_list; + delete m_list_index; + delete m_path_name; + } -void -QUIWidgetCreator::dialog_button_clicked (QAbstractButton *button) -{ - // Wait for link thread to go to sleep state. - lock (); + QString QUIWidgetCreator::rm_amp (const QString& text) + { + QString text_wo_amp = text; + text_wo_amp.replace (QRegExp ("&(\\w)"), "\\1"); + return text_wo_amp; + } + + void QUIWidgetCreator::dialog_button_clicked (QAbstractButton *button) + { + // Wait for link thread to go to sleep state. + lock (); - // Check for a matching button text while ignoring accelerators because - // the window manager may have added one in the passed button - QString text_clean = rm_amp (button->text ()); - for (int i = 0; i < m_button_list.count (); i++) - { - if (rm_amp (m_button_list.at (i)) == text_clean) - { - m_dialog_button = m_button_list.at (i); // text w/o extra accelerator - break; - } - } + // Check for a matching button text while ignoring accelerators because + // the window manager may have added one in the passed button + QString text_clean = rm_amp (button->text ()); + for (int i = 0; i < m_button_list.count (); i++) + { + if (rm_amp (m_button_list.at (i)) == text_clean) + { + m_dialog_button = m_button_list.at (i); // text w/o extra accelerator + break; + } + } - // The value should always be 1 for the Octave functions. - m_dialog_result = 1; + // The value should always be 1 for the Octave functions. + m_dialog_result = 1; - unlock (); + unlock (); - // Wake up Octave process so that it continues. - wake_all (); -} + // Wake up Octave process so that it continues. + wake_all (); + } -void -QUIWidgetCreator::list_select_finished (const QIntList& selected, - int button_pressed) -{ - // Wait for link thread to go to sleep state. - lock (); + void QUIWidgetCreator::list_select_finished (const QIntList& selected, + int button_pressed) + { + // Wait for link thread to go to sleep state. + lock (); - // Store the value so that builtin functions can retrieve. - *m_list_index = selected; - m_dialog_result = button_pressed; + // Store the value so that builtin functions can retrieve. + *m_list_index = selected; + m_dialog_result = button_pressed; - unlock (); + unlock (); - // Wake up Octave process so that it continues. - wake_all (); -} + // Wake up Octave process so that it continues. + wake_all (); + } -void -QUIWidgetCreator::input_finished (const QStringList& input, int button_pressed) -{ - // Wait for link thread to go to sleep state. - lock (); + void QUIWidgetCreator::input_finished (const QStringList& input, + int button_pressed) + { + // Wait for link thread to go to sleep state. + lock (); - // Store the value so that builtin functions can retrieve. - *m_string_list = input; - m_dialog_result = button_pressed; + // Store the value so that builtin functions can retrieve. + *m_string_list = input; + m_dialog_result = button_pressed; - unlock (); + unlock (); - // Wake up Octave process so that it continues. - wake_all (); -} + // Wake up Octave process so that it continues. + wake_all (); + } -void -QUIWidgetCreator::filedialog_finished (const QStringList& files, - const QString& path, int filterindex) -{ - // Wait for link thread to go to sleep state. - lock (); + void QUIWidgetCreator::filedialog_finished (const QStringList& files, + const QString& path, + int filterindex) + { + // Wait for link thread to go to sleep state. + lock (); - // Store the value so that builtin functions can retrieve. - *m_string_list = files; - m_dialog_result = filterindex; - *m_path_name = path; + // Store the value so that builtin functions can retrieve. + *m_string_list = files; + m_dialog_result = filterindex; + *m_path_name = path; - unlock (); + unlock (); - // Wake up Octave process so that it continues. - wake_all (); -} + // Wake up Octave process so that it continues. + wake_all (); + } -MessageDialog::MessageDialog (const QString& message, - const QString& title, - const QString& qsicon, - const QStringList& qsbutton, - const QString& defbutton, - const QStringList& role) - : QMessageBox (QMessageBox::NoIcon, title.isEmpty () ? " " : title, - message, nullptr, nullptr) -{ - // Create a NonModal message. - setWindowModality (Qt::NonModal); + MessageDialog::MessageDialog (const QString& message, + const QString& title, + const QString& qsicon, + const QStringList& qsbutton, + const QString& defbutton, + const QStringList& role) + : QMessageBox (QMessageBox::NoIcon, title.isEmpty () ? " " : title, + message, nullptr, nullptr) + { + // Create a NonModal message. + setWindowModality (Qt::NonModal); - // Interpret the icon string, because enumeration QMessageBox::Icon can't - // easily be made to pass through a signal. - QMessageBox::Icon eicon = QMessageBox::NoIcon; - if (qsicon == "error") - eicon = QMessageBox::Critical; - else if (qsicon == "warn") - eicon = QMessageBox::Warning; - else if (qsicon == "help") - eicon = QMessageBox::Information; - else if (qsicon == "quest") - eicon = QMessageBox::Question; - setIcon (eicon); + // Interpret the icon string, because enumeration QMessageBox::Icon can't + // easily be made to pass through a signal. + QMessageBox::Icon eicon = QMessageBox::NoIcon; + if (qsicon == "error") + eicon = QMessageBox::Critical; + else if (qsicon == "warn") + eicon = QMessageBox::Warning; + else if (qsicon == "help") + eicon = QMessageBox::Information; + else if (qsicon == "quest") + eicon = QMessageBox::Question; + setIcon (eicon); - int N = (qsbutton.size () < role.size () ? qsbutton.size () : role.size ()); - if (N == 0) - addButton (QMessageBox::Ok); - else - { - for (int i = 0; i < N; i++) - { - // Interpret the button role string, because enumeration - // QMessageBox::ButtonRole can't be made to pass through a signal. - QString srole = role.at (i); - QMessageBox::ButtonRole erole = QMessageBox::InvalidRole; - if (srole == "ResetRole") - erole = QMessageBox::ResetRole; - else if (srole == "YesRole") - erole = QMessageBox::YesRole; - else if (srole == "NoRole") - erole = QMessageBox::NoRole; - else if (srole == "RejectRole") - erole = QMessageBox::RejectRole; - else if (srole == "AcceptRole") - erole = QMessageBox::AcceptRole; + int N = (qsbutton.size () < role.size () ? qsbutton.size () : role.size ()); + if (N == 0) + addButton (QMessageBox::Ok); + else + { + for (int i = 0; i < N; i++) + { + // Interpret the button role string, because enumeration + // QMessageBox::ButtonRole can't be made to pass through a signal. + QString srole = role.at (i); + QMessageBox::ButtonRole erole = QMessageBox::InvalidRole; + if (srole == "ResetRole") + erole = QMessageBox::ResetRole; + else if (srole == "YesRole") + erole = QMessageBox::YesRole; + else if (srole == "NoRole") + erole = QMessageBox::NoRole; + else if (srole == "RejectRole") + erole = QMessageBox::RejectRole; + else if (srole == "AcceptRole") + erole = QMessageBox::AcceptRole; - QPushButton *pbutton = addButton (qsbutton.at (i), erole); - if (qsbutton.at (i) == defbutton) - setDefaultButton (pbutton); - // Make the last button the button pressed when <esc> key activated. - if (i == N-1) - { -// FIXME: Why define and then immediately test value? + QPushButton *pbutton = addButton (qsbutton.at (i), erole); + if (qsbutton.at (i) == defbutton) + setDefaultButton (pbutton); + // Make the last button the button pressed when <esc> key activated. + if (i == N-1) + { + // FIXME: Why define and then immediately test value? #define ACTIVE_ESCAPE 1 #if ACTIVE_ESCAPE - setEscapeButton (pbutton); + setEscapeButton (pbutton); #else - setEscapeButton (0); + setEscapeButton (0); #endif #undef ACTIVE_ESCAPE - } - } - } + } + } + } - connect (this, SIGNAL (buttonClicked (QAbstractButton *)), - &uiwidget_creator, SLOT (dialog_button_clicked (QAbstractButton *))); -} + connect (this, SIGNAL (buttonClicked (QAbstractButton *)), + &uiwidget_creator, + SLOT (dialog_button_clicked (QAbstractButton *))); + } -ListDialog::ListDialog (const QStringList& list, const QString& mode, - int wd, int ht, const QList<int>& initial, - const QString& title, const QStringList& prompt, - const QString& ok_string, const QString& cancel_string) - : QDialog (), m_model (new QStringListModel (list)) -{ - QListView *view = new QListView; - view->setModel (m_model); + ListDialog::ListDialog (const QStringList& list, const QString& mode, + int wd, int ht, const QList<int>& initial, + const QString& title, const QStringList& prompt, + const QString& ok_string, + const QString& cancel_string) + : QDialog (), m_model (new QStringListModel (list)) + { + QListView *view = new QListView; + view->setModel (m_model); - if (mode == "single") - view->setSelectionMode (QAbstractItemView::SingleSelection); - else if (mode == "multiple") - view->setSelectionMode (QAbstractItemView::ExtendedSelection); - else - view->setSelectionMode (QAbstractItemView::NoSelection); + if (mode == "single") + view->setSelectionMode (QAbstractItemView::SingleSelection); + else if (mode == "multiple") + view->setSelectionMode (QAbstractItemView::ExtendedSelection); + else + view->setSelectionMode (QAbstractItemView::NoSelection); - selector = view->selectionModel (); - int i = 0; - for (QList<int>::const_iterator it = initial.begin (); - it != initial.end (); it++) - { - QModelIndex idx = m_model->index (initial.value (i++) - 1, 0, - QModelIndex ()); - selector->select (idx, QItemSelectionModel::Select); - } + selector = view->selectionModel (); + int i = 0; + for (QList<int>::const_iterator it = initial.begin (); + it != initial.end (); it++) + { + QModelIndex idx = m_model->index (initial.value (i++) - 1, 0, + QModelIndex ()); + selector->select (idx, QItemSelectionModel::Select); + } - bool fixed_layout = false; - if (wd > 0 && ht > 0) - { - view->setFixedSize (wd, ht); - fixed_layout = true; - } + bool fixed_layout = false; + if (wd > 0 && ht > 0) + { + view->setFixedSize (wd, ht); + fixed_layout = true; + } - view->setEditTriggers (QAbstractItemView::NoEditTriggers); + view->setEditTriggers (QAbstractItemView::NoEditTriggers); - QVBoxLayout *listLayout = new QVBoxLayout; - if (! prompt.isEmpty ()) - { - // For now, assume html-like Rich Text. May be incompatible - // with something down the road, but just testing capability. - QString prompt_string; - for (int j = 0; j < prompt.length (); j++) - { - if (j > 0) -// FIXME: Why define and then immediately test value? + QVBoxLayout *listLayout = new QVBoxLayout; + if (! prompt.isEmpty ()) + { + // For now, assume html-like Rich Text. May be incompatible + // with something down the road, but just testing capability. + QString prompt_string; + for (int j = 0; j < prompt.length (); j++) + { + if (j > 0) + // FIXME: Why define and then immediately test value? #define RICH_TEXT 1 #if RICH_TEXT - prompt_string.append ("<br>"); + prompt_string.append ("<br>"); #else prompt_string.append ("\n"); #endif - prompt_string.append (prompt.at (j)); - } - QLabel *plabel = new QLabel (prompt_string); + prompt_string.append (prompt.at (j)); + } + QLabel *plabel = new QLabel (prompt_string); #if RICH_TEXT - plabel->setTextFormat (Qt::RichText); + plabel->setTextFormat (Qt::RichText); #endif #undef RICH_TEXT - listLayout->addWidget (plabel); - } - listLayout->addWidget (view); - QPushButton *select_all = new QPushButton (tr ("Select All")); - select_all->setVisible (mode == "multiple"); - listLayout->addWidget (select_all); + listLayout->addWidget (plabel); + } + listLayout->addWidget (view); + QPushButton *select_all = new QPushButton (tr ("Select All")); + select_all->setVisible (mode == "multiple"); + listLayout->addWidget (select_all); - QPushButton *buttonOk = new QPushButton (ok_string); - QPushButton *buttonCancel = new QPushButton (cancel_string); - QHBoxLayout *buttonsLayout = new QHBoxLayout; - buttonsLayout->addStretch (1); - buttonsLayout->addWidget (buttonOk); - buttonsLayout->addWidget (buttonCancel); - buttonOk->setDefault (true); + QPushButton *buttonOk = new QPushButton (ok_string); + QPushButton *buttonCancel = new QPushButton (cancel_string); + QHBoxLayout *buttonsLayout = new QHBoxLayout; + buttonsLayout->addStretch (1); + buttonsLayout->addWidget (buttonOk); + buttonsLayout->addWidget (buttonCancel); + buttonOk->setDefault (true); - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addLayout (listLayout); - mainLayout->addSpacing (12); - mainLayout->addLayout (buttonsLayout); - setLayout (mainLayout); - if (fixed_layout) - layout ()->setSizeConstraint (QLayout::SetFixedSize); + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addLayout (listLayout); + mainLayout->addSpacing (12); + mainLayout->addLayout (buttonsLayout); + setLayout (mainLayout); + if (fixed_layout) + layout ()->setSizeConstraint (QLayout::SetFixedSize); - // If empty, make blank rather than use default OS behavior. - setWindowTitle (title.isEmpty () ? " " : title); + // If empty, make blank rather than use default OS behavior. + setWindowTitle (title.isEmpty () ? " " : title); - connect (select_all, SIGNAL (clicked ()), - view, SLOT (selectAll ())); + connect (select_all, SIGNAL (clicked ()), + view, SLOT (selectAll ())); - connect (buttonOk, SIGNAL (clicked ()), - this, SLOT (buttonOk_clicked ())); + connect (buttonOk, SIGNAL (clicked ()), + this, SLOT (buttonOk_clicked ())); - connect (buttonCancel, SIGNAL (clicked ()), - this, SLOT (buttonCancel_clicked ())); + connect (buttonCancel, SIGNAL (clicked ()), + this, SLOT (buttonCancel_clicked ())); - connect (this, SIGNAL (finish_selection (const QIntList&, int)), - &uiwidget_creator, - SLOT (list_select_finished (const QIntList&, int))); + connect (this, SIGNAL (finish_selection (const QIntList&, int)), + &uiwidget_creator, + SLOT (list_select_finished (const QIntList&, int))); - connect (view, SIGNAL (doubleClicked (const QModelIndex&)), - this, SLOT (item_double_clicked (const QModelIndex&))); -} + connect (view, SIGNAL (doubleClicked (const QModelIndex&)), + this, SLOT (item_double_clicked (const QModelIndex&))); + } -ListDialog::~ListDialog (void) -{ - delete m_model; -} + ListDialog::~ListDialog (void) + { + delete m_model; + } -void -ListDialog::buttonOk_clicked (void) -{ - // Store information about what button was pressed so that builtin - // functions can retrieve. - QModelIndexList selected_index = selector->selectedIndexes (); - QIntList selected_int; + void ListDialog::buttonOk_clicked (void) + { + // Store information about what button was pressed so that builtin + // functions can retrieve. + QModelIndexList selected_index = selector->selectedIndexes (); + QIntList selected_int; - for (int i = 0; i < selected_index.size (); i++) - selected_int << selected_index.at (i).row () + 1; + for (int i = 0; i < selected_index.size (); i++) + selected_int << selected_index.at (i).row () + 1; - emit finish_selection (selected_int, 1); + emit finish_selection (selected_int, 1); - done (QDialog::Accepted); -} + done (QDialog::Accepted); + } -void -ListDialog::buttonCancel_clicked (void) -{ - // Store information about what button was pressed so that builtin - // functions can retrieve. - QIntList empty; + void ListDialog::buttonCancel_clicked (void) + { + // Store information about what button was pressed so that builtin + // functions can retrieve. + QIntList empty; - emit finish_selection (empty, 0); + emit finish_selection (empty, 0); - done (QDialog::Rejected); -} + done (QDialog::Rejected); + } -void -ListDialog::reject (void) -{ - buttonCancel_clicked (); -} + void ListDialog::reject (void) + { + buttonCancel_clicked (); + } -void -ListDialog::item_double_clicked (const QModelIndex&) -{ - buttonOk_clicked (); -} + void ListDialog::item_double_clicked (const QModelIndex&) + { + buttonOk_clicked (); + } -InputDialog::InputDialog (const QStringList& prompt, const QString& title, - const QFloatList& nr, const QFloatList& nc, - const QStringList& defaults) - : QDialog () -{ -// FIXME: Why define and then immediately test value? + InputDialog::InputDialog (const QStringList& prompt, const QString& title, + const QFloatList& nr, const QFloatList& nc, + const QStringList& defaults) + : QDialog () + { + // FIXME: Why define and then immediately test value? #define LINE_EDIT_FOLLOWS_PROMPT 0 #if LINE_EDIT_FOLLOWS_PROMPT - // Prompt on left followed by input on right. - QGridLayout *promptInputLayout = new QGridLayout; + // Prompt on left followed by input on right. + QGridLayout *promptInputLayout = new QGridLayout; #else - // Prompt aligned above input. - QVBoxLayout *promptInputLayout = new QVBoxLayout; + // Prompt aligned above input. + QVBoxLayout *promptInputLayout = new QVBoxLayout; #endif - int N_gridrows = prompt.size (); - for (int i = 0; i < N_gridrows; i++) - { - QLabel *label = new QLabel (prompt.at (i)); - QLineEdit *line_edit = new QLineEdit (defaults.at (i)); - if (nr.at (i) > 0) - { - QSize qsize = line_edit->sizeHint (); - int intval = qsize.height () * nr.at (i); - line_edit->setFixedHeight (intval); - if (nc.at (i) > 0) - { - intval = qsize.height () * nc.at (i) / 2; - line_edit->setFixedWidth (intval); - } - } - input_line << line_edit; + int N_gridrows = prompt.size (); + for (int i = 0; i < N_gridrows; i++) + { + QLabel *label = new QLabel (prompt.at (i)); + QLineEdit *line_edit = new QLineEdit (defaults.at (i)); + if (nr.at (i) > 0) + { + QSize qsize = line_edit->sizeHint (); + int intval = qsize.height () * nr.at (i); + line_edit->setFixedHeight (intval); + if (nc.at (i) > 0) + { + intval = qsize.height () * nc.at (i) / 2; + line_edit->setFixedWidth (intval); + } + } + input_line << line_edit; #if LINE_EDIT_FOLLOWS_PROMPT - promptInputLayout->addWidget (label, i + 1, 0); - promptInputLayout->addWidget (line_edit, i + 1, 1); + promptInputLayout->addWidget (label, i + 1, 0); + promptInputLayout->addWidget (line_edit, i + 1, 1); #else - promptInputLayout->addWidget (label); - promptInputLayout->addWidget (line_edit); + promptInputLayout->addWidget (label); + promptInputLayout->addWidget (line_edit); #endif - } + } #undef LINE_EDIT_FOLLOWS_PROMPT - QPushButton *buttonOk = new QPushButton ("OK"); - QPushButton *buttonCancel = new QPushButton ("Cancel"); - QHBoxLayout *buttonsLayout = new QHBoxLayout; - buttonsLayout->addStretch (1); - buttonsLayout->addWidget (buttonOk); - buttonsLayout->addWidget (buttonCancel); + QPushButton *buttonOk = new QPushButton ("OK"); + QPushButton *buttonCancel = new QPushButton ("Cancel"); + QHBoxLayout *buttonsLayout = new QHBoxLayout; + buttonsLayout->addStretch (1); + buttonsLayout->addWidget (buttonOk); + buttonsLayout->addWidget (buttonCancel); - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addLayout (promptInputLayout); - mainLayout->addSpacing (12); - mainLayout->addLayout (buttonsLayout); - setLayout (mainLayout); + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addLayout (promptInputLayout); + mainLayout->addSpacing (12); + mainLayout->addLayout (buttonsLayout); + setLayout (mainLayout); - // If empty, make blank rather than use default OS behavior. - setWindowTitle (title.isEmpty () ? " " : title); + // If empty, make blank rather than use default OS behavior. + setWindowTitle (title.isEmpty () ? " " : title); - connect (buttonOk, SIGNAL (clicked ()), - this, SLOT (buttonOk_clicked ())); + connect (buttonOk, SIGNAL (clicked ()), + this, SLOT (buttonOk_clicked ())); - connect (buttonCancel, SIGNAL (clicked ()), - this, SLOT (buttonCancel_clicked ())); + connect (buttonCancel, SIGNAL (clicked ()), + this, SLOT (buttonCancel_clicked ())); - connect (this, SIGNAL (finish_input (const QStringList&, int)), - &uiwidget_creator, - SLOT (input_finished (const QStringList&, int))); -} + connect (this, SIGNAL (finish_input (const QStringList&, int)), + &uiwidget_creator, + SLOT (input_finished (const QStringList&, int))); + } -void -InputDialog::buttonOk_clicked (void) -{ - // Store information about what button was pressed so that builtin - // functions can retrieve. - QStringList string_result; - for (int i = 0; i < input_line.size (); i++) - string_result << input_line.at (i)->text (); - emit finish_input (string_result, 1); - done (QDialog::Accepted); -} + void InputDialog::buttonOk_clicked (void) + { + // Store information about what button was pressed so that builtin + // functions can retrieve. + QStringList string_result; + for (int i = 0; i < input_line.size (); i++) + string_result << input_line.at (i)->text (); + emit finish_input (string_result, 1); + done (QDialog::Accepted); + } -void -InputDialog::buttonCancel_clicked (void) -{ - // Store information about what button was pressed so that builtin - // functions can retrieve. - QStringList empty; - emit finish_input (empty, 0); - done (QDialog::Rejected); -} + void InputDialog::buttonCancel_clicked (void) + { + // Store information about what button was pressed so that builtin + // functions can retrieve. + QStringList empty; + emit finish_input (empty, 0); + done (QDialog::Rejected); + } -void -InputDialog::reject (void) -{ - buttonCancel_clicked (); -} + void InputDialog::reject (void) + { + buttonCancel_clicked (); + } -FileDialog::FileDialog (const QStringList& name_filters, const QString& title, - const QString& filename, const QString& dirname, - const QString& multimode) - : QFileDialog () -{ - // Create a NonModal message. - setWindowModality (Qt::NonModal); + FileDialog::FileDialog (const QStringList& name_filters, const QString& title, + const QString& filename, const QString& dirname, + const QString& multimode) + : QFileDialog () + { + // Create a NonModal message. + setWindowModality (Qt::NonModal); - setWindowTitle (title.isEmpty () ? " " : title); - setDirectory (dirname); + setWindowTitle (title.isEmpty () ? " " : title); + setDirectory (dirname); - if (multimode == "on") // uigetfile multiselect=on - { - setFileMode (QFileDialog::ExistingFiles); - setAcceptMode (QFileDialog::AcceptOpen); - } - else if (multimode == "create") // uiputfile - { - setFileMode (QFileDialog::AnyFile); - setAcceptMode (QFileDialog::AcceptSave); - setOption (QFileDialog::DontConfirmOverwrite, false); - setConfirmOverwrite (true); - } - else if (multimode == "dir") // uigetdir - { - setFileMode (QFileDialog::Directory); - setOption (QFileDialog::ShowDirsOnly, true); - setOption (QFileDialog::HideNameFilterDetails, true); - setAcceptMode (QFileDialog::AcceptOpen); - } - else // uigetfile multiselect=off - { - setFileMode (QFileDialog::ExistingFile); - setAcceptMode (QFileDialog::AcceptOpen); - } + if (multimode == "on") // uigetfile multiselect=on + { + setFileMode (QFileDialog::ExistingFiles); + setAcceptMode (QFileDialog::AcceptOpen); + } + else if (multimode == "create") // uiputfile + { + setFileMode (QFileDialog::AnyFile); + setAcceptMode (QFileDialog::AcceptSave); + setOption (QFileDialog::DontConfirmOverwrite, false); + setConfirmOverwrite (true); + } + else if (multimode == "dir") // uigetdir + { + setFileMode (QFileDialog::Directory); + setOption (QFileDialog::ShowDirsOnly, true); + setOption (QFileDialog::HideNameFilterDetails, true); + setAcceptMode (QFileDialog::AcceptOpen); + } + else // uigetfile multiselect=off + { + setFileMode (QFileDialog::ExistingFile); + setAcceptMode (QFileDialog::AcceptOpen); + } - setNameFilters (name_filters); + setNameFilters (name_filters); - selectFile (filename); + selectFile (filename); - connect (this, - SIGNAL (finish_input (const QStringList&, const QString&, int)), - &uiwidget_creator, - SLOT (filedialog_finished (const QStringList&, const QString&, - int))); - connect (this, SIGNAL (accepted ()), this, SLOT (acceptSelection ())); - connect (this, SIGNAL (rejected ()), this, SLOT (rejectSelection ())); -} + connect (this, + SIGNAL (finish_input (const QStringList&, const QString&, int)), + &uiwidget_creator, + SLOT (filedialog_finished (const QStringList&, const QString&, + int))); + connect (this, SIGNAL (accepted ()), this, SLOT (acceptSelection ())); + connect (this, SIGNAL (rejected ()), this, SLOT (rejectSelection ())); + } -void -FileDialog::rejectSelection (void) -{ - QStringList empty; - emit finish_input (empty, "", 0); -} + void FileDialog::rejectSelection (void) + { + QStringList empty; + emit finish_input (empty, "", 0); + } -void FileDialog::acceptSelection (void) -{ - QStringList string_result; - QString path; - int idx = 1; + void FileDialog::acceptSelection (void) + { + QStringList string_result; + QString path; + int idx = 1; - string_result = selectedFiles (); + string_result = selectedFiles (); - if (testOption (QFileDialog::ShowDirsOnly) == true && - string_result.size () > 0) - { - path = string_result[0]; - } - else - { - path = directory ().absolutePath (); - } + if (testOption (QFileDialog::ShowDirsOnly) == true && + string_result.size () > 0) + { + path = string_result[0]; + } + else + { + path = directory ().absolutePath (); + } - // Matlab expects just the filename, whereas the file dialog gave us - // full path names, so fix it. + // Matlab expects just the filename, whereas the file dialog gave us + // full path names, so fix it. - for (int i = 0; i < string_result.size (); i++) - string_result[i] = QFileInfo (string_result[i]).fileName (); + for (int i = 0; i < string_result.size (); i++) + string_result[i] = QFileInfo (string_result[i]).fileName (); - // if not showing only dirs, add end slash for the path component - if (testOption (QFileDialog::ShowDirsOnly) == false) - path += '/'; + // if not showing only dirs, add end slash for the path component + if (testOption (QFileDialog::ShowDirsOnly) == false) + path += '/'; - // convert to native slashes - path = QDir::toNativeSeparators (path); + // convert to native slashes + path = QDir::toNativeSeparators (path); - QStringList name_filters = nameFilters (); - idx = name_filters.indexOf (selectedNameFilter ()) + 1; + QStringList name_filters = nameFilters (); + idx = name_filters.indexOf (selectedNameFilter ()) + 1; - // send the selected info - emit finish_input (string_result, path, idx); + // send the selected info + emit finish_input (string_result, path, idx); + } }