Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ec6ff6a

Browse files
author
SeongTae Jeong
authored
Move recent files items to new submenu and add clear recent file function (#2347)
* Add a new submenu ('File > Recent Files') and move recent file actions inside. * Add a new menu item to the menu of recent files ('Clear List') and delete divider(QAction *recentSeparatorAct) because that is no longer used. * Added general function to clear Settings value (including cache)
1 parent ef18362 commit ec6ff6a

File tree

5 files changed

+33
-8
lines changed

5 files changed

+33
-8
lines changed

src/MainWindow.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,11 @@ void MainWindow::init()
231231
connect(recentFileActs[i], &QAction::triggered, this, &MainWindow::openRecentFile);
232232
}
233233
for(int i = 0; i < MaxRecentFiles; ++i)
234-
ui->fileMenu->insertAction(ui->fileExitAction, recentFileActs[i]);
235-
recentSeparatorAct = ui->fileMenu->insertSeparator(ui->fileExitAction);
234+
ui->fileRecentFiles->insertAction(ui->fileExitAction, recentFileActs[i]);
235+
236+
QAction *clearRecentFilesAction = ui->fileRecentFiles->addAction(tr("Clear List"));
237+
ui->fileRecentFiles->insertAction(ui->fileExitAction, clearRecentFilesAction);
238+
connect(clearRecentFilesAction, &QAction::triggered, this, &MainWindow::clearRecentFiles);
236239

237240
// Create popup menus
238241
popupTableMenu = new QMenu(this);
@@ -1624,8 +1627,6 @@ void MainWindow::updateRecentFileActions()
16241627
}
16251628
for (int j = numRecentFiles; j < MaxRecentFiles; ++j)
16261629
recentFileActs[j]->setVisible(false);
1627-
1628-
recentSeparatorAct->setVisible(numRecentFiles > 0);
16291630
}
16301631

16311632
void MainWindow::setCurrentFile(const QString &fileName)
@@ -3434,3 +3435,11 @@ void MainWindow::moveDocksTo(Qt::DockWidgetArea area)
34343435
tabifyDockWidget(ui->dockLog, ui->dockSchema);
34353436
tabifyDockWidget(ui->dockLog, ui->dockRemote);
34363437
}
3438+
3439+
void MainWindow::clearRecentFiles()
3440+
{
3441+
Settings::clearValue("General", "recentFileList");
3442+
3443+
for(int i=0; i < MaxRecentFiles; ++i)
3444+
recentFileActs[i]->setVisible(false);
3445+
}

src/MainWindow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ class MainWindow : public QMainWindow
8282

8383
static const int MaxRecentFiles = 5;
8484
QAction *recentFileActs[MaxRecentFiles];
85-
QAction *recentSeparatorAct;
8685

8786
EditDialog* editDock;
8887
PlotDock* plotDock;
@@ -101,6 +100,7 @@ class MainWindow : public QMainWindow
101100
void clearCompleterModelsFields();
102101

103102
void updateRecentFileActions();
103+
void clearRecentFiles();
104104
void setCurrentFile(const QString& fileName);
105105
void addToRecentFilesMenu(const QString& filename, bool read_only = false);
106106
void activateFields(bool enable = true);

src/MainWindow.ui

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ You can drag SQL statements from an object row and drop them into other applicat
174174
<rect>
175175
<x>0</x>
176176
<y>0</y>
177-
<width>641</width>
178-
<height>544</height>
177+
<width>639</width>
178+
<height>574</height>
179179
</rect>
180180
</property>
181181
<layout class="QFormLayout" name="formLayout">
@@ -744,7 +744,7 @@ You can drag SQL statements from an object row and drop them into other applicat
744744
<x>0</x>
745745
<y>0</y>
746746
<width>1037</width>
747-
<height>23</height>
747+
<height>22</height>
748748
</rect>
749749
</property>
750750
<widget class="QMenu" name="fileMenu">
@@ -766,11 +766,17 @@ You can drag SQL statements from an object row and drop them into other applicat
766766
<addaction name="fileExportCSVAction"/>
767767
<addaction name="fileExportJsonAction"/>
768768
</widget>
769+
<widget class="QMenu" name="fileRecentFiles">
770+
<property name="title">
771+
<string>Recent Files</string>
772+
</property>
773+
</widget>
769774
<addaction name="fileNewAction"/>
770775
<addaction name="fileNewInMemoryDatabaseAction"/>
771776
<addaction name="fileOpenAction"/>
772777
<addaction name="fileOpenReadOnlyAction"/>
773778
<addaction name="fileAttachAction"/>
779+
<addaction name="fileRecentFiles"/>
774780
<addaction name="fileCloseAction"/>
775781
<addaction name="separator"/>
776782
<addaction name="fileSaveAction"/>

src/Settings.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,15 @@ QColor Settings::getDefaultColorValue(const std::string& group, const std::strin
489489
return QColor();
490490
}
491491

492+
void Settings::clearValue(const std::string& group, const std::string& name)
493+
{
494+
QSettings settings(QApplication::organizationName(), QApplication::organizationName());
495+
settings.beginGroup(QString::fromStdString(group));
496+
settings.remove(QString::fromStdString(name));
497+
settings.endGroup();
498+
m_hCache.clear();
499+
}
500+
492501
void Settings::restoreDefaults ()
493502
{
494503
QSettings settings(QApplication::organizationName(), QApplication::organizationName());

src/Settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Settings
1616
};
1717
static QVariant getValue(const std::string& group, const std::string& name);
1818
static void setValue(const std::string& group, const std::string& name, const QVariant& value, bool dont_save_to_disk = false);
19+
static void clearValue(const std::string& group, const std::string& name);
1920
static void restoreDefaults();
2021

2122
static void rememberDefaultFontSize(int size) { m_defaultFontSize = size; }

0 commit comments

Comments
 (0)