Mercurial > octave
changeset 27287:871313d4b948
Backed out accidentally committed work-in-progress changeset 189ca5990c5d
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 23 Jul 2019 17:00:06 -0400 |
parents | 52542cfcc7dc |
children | 0a2e5c808709 |
files | libgui/src/main-window.cc libgui/src/main-window.h libgui/src/module.mk libgui/src/set-path-dialog.cc libgui/src/set-path-dialog.h libgui/src/set-path-model.cc libgui/src/set-path-model.h |
diffstat | 7 files changed, 6 insertions(+), 752 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Tue Jul 23 15:26:20 2019 -0400 +++ b/libgui/src/main-window.cc Tue Jul 23 17:00:06 2019 -0400 @@ -103,8 +103,8 @@ m_doc_browser_window (nullptr), m_editor_window (nullptr), m_workspace_window (nullptr), m_variable_editor_window (nullptr), m_external_editor (new external_editor_interface (this)), - m_active_editor (m_external_editor), m_settings_dlg (nullptr), - m_find_files_dlg (nullptr), m_set_path_dlg (nullptr), + m_active_editor (m_external_editor), + m_settings_dlg (nullptr), m_find_files_dlg (nullptr), m_release_notes_window (nullptr), m_community_news_window (nullptr), m_clipboard (QApplication::clipboard ()), m_prevent_readline_conflicts (true), m_suppress_dbg_location (true), @@ -236,7 +236,7 @@ delete m_find_files_dlg; delete m_release_notes_window; - delete m_community_news_window; + delete m_settings_dlg; delete m_community_news_window; } @@ -1707,18 +1707,6 @@ focus_command_window (); // make sure that the command window has focus } - void main_window::handle_set_path_dialog_request (void) - { - if (m_set_path_dlg) // m_set_path_dlg is a guarded pointer! - return; - - m_set_path_dlg = new set_path_dialog (this); - - m_set_path_dlg->setModal (false); - m_set_path_dlg->setAttribute (Qt::WA_DeleteOnClose); - m_set_path_dlg->show (); - } - void main_window::find_files (const QString& start_dir) { @@ -1776,7 +1764,6 @@ m_load_workspace_action->setShortcut (no_key); m_save_workspace_action->setShortcut (no_key); m_preferences_action->setShortcut (no_key); - m_set_path_action->setShortcut (no_key); m_exit_action->setShortcut (no_key); // edit menu @@ -2420,9 +2407,6 @@ edit_menu->addSeparator (); - m_set_path_action - = edit_menu->addAction (tr ("Set Path")); - m_preferences_action = edit_menu->addAction (resource_manager::icon ("preferences-system"), tr ("Preferences...")); @@ -2452,10 +2436,6 @@ connect (m_preferences_action, SIGNAL (triggered (void)), this, SLOT (process_settings_dialog_request (void))); - - connect (m_set_path_action, SIGNAL (triggered (void)), - this, SLOT (handle_set_path_dialog_request (void))); - } QAction * main_window::construct_debug_menu_item (const char *icon, @@ -2790,7 +2770,6 @@ shortcut_manager::set_shortcut (m_save_workspace_action, "main_file:save_workspace"); shortcut_manager::set_shortcut (m_preferences_action, "main_file:preferences"); - shortcut_manager::set_shortcut (m_set_path_action, "main_file:set_path"); shortcut_manager::set_shortcut (m_exit_action,"main_file:exit"); // edit menu
--- a/libgui/src/main-window.h Tue Jul 23 15:26:20 2019 -0400 +++ b/libgui/src/main-window.h Tue Jul 23 17:00:06 2019 -0400 @@ -49,7 +49,6 @@ #include "documentation-dock-widget.h" #include "files-dock-widget.h" #include "find-files-dialog.h" -#include "set-path-dialog.h" #include "history-dock-widget.h" #include "octave-dock-widget.h" #include "qt-interpreter-events.h" @@ -199,8 +198,6 @@ void handle_octave_ready (); - void handle_set_path_dialog_request (void); - //! Find files dialog. //!@{ void find_files (const QString& startdir = QDir::currentPath ()); @@ -333,7 +330,6 @@ QAction *m_new_figure_action; QAction *m_load_workspace_action; QAction *m_save_workspace_action; - QAction *m_set_path_action; QAction *m_preferences_action; QAction *m_exit_action; @@ -390,9 +386,6 @@ find_files_dialog *m_find_files_dlg; - //! Set path dialog - QPointer<set_path_dialog> m_set_path_dlg; - //! Release notes window. QWidget *m_release_notes_window;
--- a/libgui/src/module.mk Tue Jul 23 15:26:20 2019 -0400 +++ b/libgui/src/module.mk Tue Jul 23 17:00:06 2019 -0400 @@ -156,9 +156,7 @@ %reldir%/moc-variable-editor-model.cc \ %reldir%/moc-find-files-dialog.cc \ %reldir%/moc-find-files-model.cc \ - %reldir%/moc-octave-dock-widget.cc \ - %reldir%/moc-set-path-dialog.cc \ - %reldir%/moc-set-path-model.cc + %reldir%/moc-octave-dock-widget.cc octave_gui_MOC += \ $(OCTAVE_GUI_SRC_MOC) \ @@ -216,10 +214,7 @@ %reldir%/workspace-model.h \ %reldir%/workspace-view.h \ %reldir%/variable-editor.h \ - %reldir%/variable-editor-model.h \ - %reldir%/set-path-dialog.h \ - %reldir%/set-path-model.h - + %reldir%/variable-editor-model.h %canon_reldir%_%canon_reldir%_la_SOURCES = \ %reldir%/dialog.cc \ @@ -254,9 +249,7 @@ %reldir%/workspace-model.cc \ %reldir%/workspace-view.cc \ %reldir%/variable-editor.cc \ - %reldir%/variable-editor-model.cc \ - %reldir%/set-path-dialog.cc \ - %reldir%/set-path-model.cc + %reldir%/variable-editor-model.cc nodist_%canon_reldir%_%canon_reldir%_la_SOURCES = \ $(octave_gui_MOC) \
--- a/libgui/src/set-path-dialog.cc Tue Jul 23 15:26:20 2019 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* - -Copyright (C) 2019 JunWang - -This file is part of Octave. - -Octave is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Octave is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<https://www.gnu.org/licenses/>. - -*/ - -#if defined (HAVE_CONFIG_H) -# include "config.h" -#endif - -#include <QPushButton> -#include <QDialogButtonBox> -#include <QGridLayout> -#include <QVBoxLayout> -#include <QHBoxLayout> -#include <QLabel> -#include <QLineEdit> -#include <QComboBox> -#include <QCheckBox> -#include <QHeaderView> -#include <QListView> -#include <QFileDialog> -#include <QStatusBar> -#include <QIcon> -#include <QFileInfo> -#include <QTimer> -#include <QDirIterator> -#include <QTextStream> -#include <QGroupBox> -#include <QFileDialog> - -#include "set-path-dialog.h" -#include "set-path-model.h" -#include "resource-manager.h" - -namespace octave -{ - set_path_dialog::set_path_dialog (QWidget *parent) - : QDialog (parent) - { - setWindowTitle (tr ("Set Path")); - - m_info_label = new QLabel (tr ("All changes take effect immediately.")); - - m_add_folder_button = new QPushButton (tr ("Add Folder...")); - m_move_to_top_button = new QPushButton (tr ("Move to Top")); - m_move_to_bottom_button = new QPushButton (tr ("Move to Bottom")); - m_move_up_button = new QPushButton (tr ("Move Up")); - m_move_down_button = new QPushButton (tr ("Move Down")); - m_remove_button = new QPushButton (tr ("Remove")); - - m_save_button = new QPushButton (tr ("Save")); - m_revert_button = new QPushButton (tr ("Revert")); - - m_save_button->setFocus (); - - connect (m_add_folder_button, SIGNAL (clicked (void)), - this, SLOT (add_folder (void))); - - connect (m_remove_button, SIGNAL (clicked (void)), - this, SLOT (rmPath (void))); - - connect (m_move_to_top_button, SIGNAL (clicked (void)), - this, SLOT (moveToTopPath (void))); - - connect (m_move_to_bottom_button, SIGNAL (clicked (void)), - this, SLOT (moveToBottomPath (void))); - - connect (m_move_up_button, SIGNAL (clicked (void)), - this, SLOT (moveUpPath (void))); - - connect (m_move_down_button, SIGNAL (clicked (void)), - this, SLOT (moveDownPath (void))); - - connect (m_save_button, SIGNAL (clicked (void)), - this, SLOT (save (void))); - - connect (m_revert_button, SIGNAL (clicked (void)), - this, SLOT (revert (void))); - - set_path_model *model = new set_path_model (this); - - m_path_list = new QListView (this); - m_path_list->setWordWrap (false); - m_path_list->setModel (model); - m_path_list->setSelectionBehavior (QAbstractItemView::SelectRows); - m_path_list->setSelectionMode (QAbstractItemView::ExtendedSelection); - m_path_list->setAlternatingRowColors (true); - - // layout everything - QDialogButtonBox *button_box = new QDialogButtonBox (Qt::Horizontal); - button_box->addButton (m_save_button, QDialogButtonBox::ActionRole); - - // add dialog close button - m_close_button = button_box->addButton (QDialogButtonBox::Close); - connect (button_box, SIGNAL (rejected (void)), this, SLOT (close (void))); - - button_box->addButton (m_revert_button, QDialogButtonBox::ActionRole); - - // path edit options - QDialogButtonBox *path_edit_layout = new QDialogButtonBox (Qt::Vertical); - path_edit_layout->addButton (m_add_folder_button, QDialogButtonBox::ActionRole); - path_edit_layout->addButton (m_move_to_top_button, QDialogButtonBox::ActionRole); - path_edit_layout->addButton (m_move_up_button, QDialogButtonBox::ActionRole); - path_edit_layout->addButton (m_move_down_button, QDialogButtonBox::ActionRole); - path_edit_layout->addButton (m_move_to_bottom_button, QDialogButtonBox::ActionRole); - path_edit_layout->addButton (m_remove_button, QDialogButtonBox::ActionRole); - - // main layout - QHBoxLayout *main_hboxlayout = new QHBoxLayout; - main_hboxlayout->addWidget(path_edit_layout); - main_hboxlayout->addWidget(m_path_list); - - QGridLayout *main_layout = new QGridLayout; - main_layout->addWidget (m_info_label, 0, 0); - main_layout->addLayout (main_hboxlayout, 1, 0); - main_layout->addWidget (button_box,2, 0); - - setLayout (main_layout); - } - - set_path_dialog::~set_path_dialog (void) - { - } - - void set_path_dialog::add_folder(void) - { - QString dir - = QFileDialog::getExistingDirectory (this, tr ("Open Directory"), - "", - (QFileDialog::ShowDirsOnly - | QFileDialog::DontResolveSymlinks)); - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - m->addPath (dir); - } - - void set_path_dialog::rmPath (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - QItemSelectionModel *selmodel = m_path_list->selectionModel (); - QModelIndexList indexlist = selmodel->selectedIndexes(); - m->rmPath (indexlist); - } - - void set_path_dialog::moveUpPath (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - QItemSelectionModel *selmodel = m_path_list->selectionModel (); - QModelIndexList indexlist = selmodel->selectedIndexes(); - m->moveUpPath (indexlist); - } - - void set_path_dialog::moveDownPath (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - QItemSelectionModel *selmodel = m_path_list->selectionModel (); - QModelIndexList indexlist = selmodel->selectedIndexes(); - m->moveDownPath (indexlist); - } - - void set_path_dialog::moveToTopPath (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - QItemSelectionModel *selmodel = m_path_list->selectionModel (); - QModelIndexList indexlist = selmodel->selectedIndexes(); - m->moveToTopPath (indexlist); - } - - void set_path_dialog::moveToBottomPath (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - QItemSelectionModel *selmodel = m_path_list->selectionModel (); - QModelIndexList indexlist = selmodel->selectedIndexes(); - m->moveToBottomPath (indexlist); - } - - void set_path_dialog::save (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - m->save (); - } - - void set_path_dialog::revert (void) - { - set_path_model *m = static_cast<set_path_model *> (m_path_list->model ()); - m->revert (); - } -}
--- a/libgui/src/set-path-dialog.h Tue Jul 23 15:26:20 2019 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* - -Copyright (C) 2019 JunWang - -This file is part of Octave. - -Octave is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Octave is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<https://www.gnu.org/licenses/>. - -*/ -#if ! defined (octave_set_path_dialog_h) -#define octave_set_path_dialog_h 1 - -#include <QDialog> -#include <QModelIndex> -#include <QFileInfo> - -class QLabel; -class QPushButton; -class QListView; -class QVBoxLayout; -class QHBoxLayout; - -namespace octave -{ - class set_path_dialog : public QDialog - { - Q_OBJECT - - public: - - set_path_dialog (QWidget *parent = nullptr); - - virtual ~set_path_dialog (void); - - private slots: - - void add_folder(void); - - void rmPath (void); - - void moveUpPath (void); - - void moveDownPath (void); - - void moveToTopPath (void); - - void moveToBottomPath (void); - - void save (void); - - void revert (void); - - private: - - QLabel *m_info_label; - QPushButton *m_save_button; - QPushButton *m_close_button; - QPushButton *m_revert_button; - - QListView *m_path_list; - - QPushButton *m_add_folder_button; - QPushButton *m_move_to_top_button; - QPushButton *m_move_to_bottom_button; - QPushButton *m_move_up_button; - QPushButton *m_move_down_button; - QPushButton *m_remove_button; - }; -} - -#endif
--- a/libgui/src/set-path-model.cc Tue Jul 23 15:26:20 2019 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,336 +0,0 @@ -/* - -Copyright (C) 2019 JunWang - -This file is part of Octave. - -Octave is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Octave is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<https://www.gnu.org/licenses/>. - -*/ - -#if defined (HAVE_CONFIG_H) -# include "config.h" -#endif - -#include <iostream> - -#include <string> -#include <algorithm> - -#include <QFileIconProvider> -#include <QtAlgorithms> -#include <QMessageBox> - -#include "pathsearch.h" - -#include "event-manager.h" -#include "interpreter-private.h" -#include "interpreter.h" -#include "load-path.h" - -#include "set-path-model.h" - -namespace octave -{ - set_path_model::set_path_model (QObject *p) - : QAbstractListModel (p) - { - connect (this, SIGNAL (update_data_signal (const QStringList&)), - this, SLOT (update_data (const QStringList&))); - - construct (); - } - - std::string set_path_model::to_string (void) - { - std::string path_sep = directory_path::path_sep_str (); - - std::string path_str; - - QStringList::iterator it = m_dirs.begin (); - - while (it < m_dirs.end ()) - { - if (it != m_dirs.begin ()) - path_str += path_sep; - path_str += it->toStdString (); - ++it; - } - - return path_str; - } - - void set_path_model::model_to_path (void) - { - event_manager& evmgr - = __get_event_manager__ ("set_path_model::model_to_path"); - - std::string path_str = to_string (); - - evmgr.post_event - ([path_str] (void) - { - // INTERPRETER THREAD - - load_path& lp = __get_load_path__ ("set_path_model::model_to_path"); - - lp.set (path_str); - }); - } - - void set_path_model::clear (void) - { - beginResetModel (); - - m_dirs.clear (); - - endResetModel (); - } - - void set_path_model::save (void) - { - model_to_path (); - - event_manager& evmgr = __get_event_manager__ ("set_path_model::save"); - - evmgr.post_event - ([] (void) - { - // INTERPRETER THREAD - - interpreter& interp = __get_interpreter__ ("set_path_model::save"); - - interp.feval ("savepath"); - }); - } - - void set_path_model::revert (void) - { - clear (); - beginInsertRows (QModelIndex (), 0, m_old_dirs.size () - 1); - m_dirs = m_old_dirs; - endInsertRows (); - model_to_path (); - } - - void set_path_model::addPath (const QString& p) - { - beginInsertRows (QModelIndex (), m_dirs.size (), m_dirs.size ()); - - QList<QString>::Iterator it = m_dirs.begin(); - - m_dirs.insert (it, p); - - endInsertRows (); - - model_to_path (); - } - - void set_path_model::rmPath (const QModelIndexList& indices) - { - QModelIndexList sorted_indices (indices); - std::sort (sorted_indices.begin (), sorted_indices.end ()); - QStringList::iterator it = m_dirs.begin (); - int i = 0; - int index_top = 0; - while (it < m_dirs.end ()) - { - if (index_top < sorted_indices.size () - && i == sorted_indices[index_top].row ()) - { - int dis = std::distance (m_dirs.begin (), it); - beginRemoveRows (QModelIndex (), dis, dis); - it = m_dirs.erase (it); - endRemoveRows (); - ++index_top; - } - else - ++it; - - ++i; - } - - model_to_path (); - } - - void set_path_model::moveUpPath (const QModelIndexList& indices) - { - QModelIndexList sorted_indices (indices); - std::sort (sorted_indices.begin (), sorted_indices.end ()); - for (const auto& each : sorted_indices) - { - if (each.row () == 0) - continue; - - beginMoveRows (QModelIndex (), each.row (), each.row (), - QModelIndex (), each.row () - 1); - - m_dirs.swap (each.row () - 1, each.row ()); - - endMoveRows (); - } - - model_to_path (); - } - - void set_path_model::moveDownPath (const QModelIndexList& indices) - { - QModelIndexList sorted_indices (indices); - std::sort (sorted_indices.begin (), sorted_indices.end ()); - std::reverse (sorted_indices.begin (), sorted_indices.end ()); - for (const auto& each : sorted_indices) - { - if (each.row () == m_dirs.size () - 1) - continue; - - beginMoveRows (QModelIndex (), each.row(), each.row (), - QModelIndex (), each.row () + 2); - - m_dirs.swap (each.row(), each.row() + 1); - - endMoveRows (); - } - - model_to_path (); - } - - void set_path_model::moveToTopPath (const QModelIndexList& indices) - { - QModelIndexList sorted_indices (indices); - std::sort (sorted_indices.begin (), sorted_indices.end ()); - - QStringList::iterator it = m_dirs.begin (); - int i = 0; - int index_top = 0; - while (it < m_dirs.end ()) - { - if (index_top < indices.size () && indices[index_top].row () == i) - { - int distance = std::distance (m_dirs.begin (), it); - beginMoveRows (QModelIndex (), distance, distance, - QModelIndex (), m_dirs.size ()); - QString tmp = *it; - it = m_dirs.erase (it); - m_dirs.push_front (tmp); - endMoveRows (); - ++index_top; - } - else - ++it; - - ++i; - } - - std::reverse (m_dirs.begin (), m_dirs.begin () + indices.size ()); - - model_to_path (); - } - - void set_path_model::moveToBottomPath (const QModelIndexList& indices) - { - QModelIndexList sorted_indices (indices); - std::sort (sorted_indices.begin (), sorted_indices.end ()); - - QStringList::iterator it = m_dirs.begin (); - int i = 0; - int index_top = 0; - while (it < m_dirs.end ()) - { - if (index_top < indices.size () && indices[index_top].row () == i) - { - int distance = std::distance (m_dirs.begin (), it); - - beginMoveRows (QModelIndex (), distance, distance, - QModelIndex (), m_dirs.size ()); - - QString tmp = *it; - it = m_dirs.erase (it); - m_dirs.push_back (tmp); - - endMoveRows (); - ++index_top; - } - else - ++it; - - ++i; - } - - model_to_path (); - } - - int set_path_model::rowCount (const QModelIndex&) const - { - return m_dirs.size (); - } - - QVariant set_path_model::data (const QModelIndex& idx, int role) const - { - QVariant retval; - if (idx.isValid ()) - { - switch (role) - { - case Qt::DisplayRole: - retval = QVariant (m_dirs[idx.row ()]); - break; - - case Qt::DecorationRole: - retval = QVariant (QIcon ()); - break; - - case Qt::SizeHintRole: - retval = QVariant (QSize (10, 20)); - break; - } - } - - return retval; - } - - void set_path_model::construct (void) - { - event_manager& evmgr = __get_event_manager__ ("set_path_model::construct"); - - evmgr.post_event - ([this] (void) - { - load_path& lp = __get_load_path__ ("set_path_model::construct"); - - std::list<std::string> dir_list = lp.dir_list (); - - QStringList qs_dir_list; - - for (const auto& dir : dir_list) - qs_dir_list << QString::fromStdString (dir); - - emit update_data_signal (qs_dir_list); - }); - } - - void set_path_model::update_data (const QStringList& dirs) - { - m_old_dirs = m_dirs; - - m_dirs = dirs; - - m_dirs.removeAll ("."); - - int numel = m_dirs.size (); - - emit dataChanged (QAbstractListModel::index (0, 0), - QAbstractListModel::index (numel-1, 0)); - } -}
--- a/libgui/src/set-path-model.h Tue Jul 23 15:26:20 2019 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* - -Copyright (C) 2019 JunWang - -This file is part of Octave. - -Octave is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Octave is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<https://www.gnu.org/licenses/>. - -*/ - -#if ! defined (octave_set_path_model_h) -#define octave_set_path_model_h 1 - -#include <QAbstractListModel> -#include <QStringList> -#include <QList> -#include <QFileInfo> -#include <QIcon> - -namespace octave -{ - class set_path_model : public QAbstractListModel - { - Q_OBJECT - - public: - - set_path_model (QObject *p = nullptr); - - ~set_path_model (void) = default; - - void clear (void); - - void save (void); - - void revert (void); - - void addPath (const QString& p); - - void rmPath (const QModelIndexList& indices); - - void moveUpPath (const QModelIndexList& indices); - - void moveDownPath (const QModelIndexList& indices); - - void moveToTopPath (const QModelIndexList& indices); - - void moveToBottomPath (const QModelIndexList& indices); - - std::string to_string (void); - - void model_to_path (void); - - int rowCount (const QModelIndex& p = QModelIndex ()) const; - - QVariant data (const QModelIndex& idx, int role) const; - - signals: - - void update_data_signal (const QStringList& dirs); - - private slots: - - void update_data (const QStringList& dirs); - - private: - - void construct (void); - - QStringList m_dirs; - - QStringList m_old_dirs; - }; -} - -#endif