summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-12-24 23:35:08 +0100
committerAleks Kissinger <aleks0@gmail.com>2018-12-24 23:35:08 +0100
commit2f0d6d4a7df7c8508a4f831818e41c11cffdd513 (patch)
tree046586adc620f2e5ca4fdf46c01b10c58bf11408 /src/gui
parent52147f458485df3a28453ca217e94f4e2e142d61 (diff)
added Open Recent (closes #40)
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/mainmenu.cpp37
-rw-r--r--src/gui/mainmenu.h3
-rw-r--r--src/gui/mainmenu.ui11
3 files changed, 51 insertions, 0 deletions
diff --git a/src/gui/mainmenu.cpp b/src/gui/mainmenu.cpp
index 6f6ab00..d4372ed 100644
--- a/src/gui/mainmenu.cpp
+++ b/src/gui/mainmenu.cpp
@@ -33,6 +33,8 @@ MainMenu::MainMenu()
ui.actionCheck_for_updates_automatically->setChecked(settings.value("check-for-updates").toBool());
ui.actionCheck_for_updates_automatically->blockSignals(false);
}
+
+ updateRecentFiles();
}
void MainMenu::addDocks(QMenu *m)
@@ -48,6 +50,32 @@ QAction *MainMenu::updatesAction()
return ui.actionCheck_for_updates_automatically;
}
+void MainMenu::updateRecentFiles()
+{
+ QSettings settings("tikzit", "tikzit");
+ ui.menuOpen_Recent->clear();
+
+ QStringList recentFiles = settings.value("recent-files").toStringList();
+ //qDebug() << "update:" << recentFiles;
+
+ QAction *action;
+ foreach (QString f, recentFiles) {
+ QFileInfo fi(f);
+ action = new QAction(fi.fileName(), ui.menuOpen_Recent);
+ action->setData(f);
+ ui.menuOpen_Recent->addAction(action);
+ connect(action, SIGNAL(triggered()),
+ this, SLOT(openRecent()));
+ }
+
+ ui.menuOpen_Recent->addSeparator();
+ action = new QAction("Clear List", ui.menuOpen_Recent);
+ connect(action, SIGNAL(triggered()),
+ tikzit, SLOT(clearRecentFiles()));
+ ui.menuOpen_Recent->addAction(action);
+ ui.menuOpen_Recent->repaint();
+}
+
// File
void MainMenu::on_actionNew_triggered()
{
@@ -82,6 +110,15 @@ void MainMenu::on_actionExit_triggered()
tikzit->quit();
}
+void MainMenu::openRecent()
+{
+ if (sender() != nullptr) {
+ if (QAction *action = dynamic_cast<QAction*>(sender())) {
+ tikzit->open(action->data().toString());
+ }
+ }
+}
+
// Edit
void MainMenu::on_actionUndo_triggered()
diff --git a/src/gui/mainmenu.h b/src/gui/mainmenu.h
index e1477b4..8acef49 100644
--- a/src/gui/mainmenu.h
+++ b/src/gui/mainmenu.h
@@ -30,6 +30,7 @@ public:
MainMenu();
void addDocks(QMenu *m);
QAction *updatesAction();
+ void updateRecentFiles();
private:
Ui::MainMenu ui;
@@ -43,6 +44,8 @@ public slots:
void on_actionSave_As_triggered();
void on_actionExit_triggered();
+ void openRecent();
+
// Edit
void on_actionUndo_triggered();
void on_actionRedo_triggered();
diff --git a/src/gui/mainmenu.ui b/src/gui/mainmenu.ui
index 58a2ff0..097430c 100644
--- a/src/gui/mainmenu.ui
+++ b/src/gui/mainmenu.ui
@@ -14,8 +14,14 @@
<property name="title">
<string>File</string>
</property>
+ <widget class="QMenu" name="menuOpen_Recent">
+ <property name="title">
+ <string>Open Recent</string>
+ </property>
+ </widget>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
+ <addaction name="menuOpen_Recent"/>
<addaction name="separator"/>
<addaction name="actionClose"/>
<addaction name="actionSave"/>
@@ -344,6 +350,11 @@
<string>Ctrl+R</string>
</property>
</action>
+ <action name="actionClear_Menu">
+ <property name="text">
+ <string>Clear Menu</string>
+ </property>
+ </action>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuView"/>