summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-10-20 14:46:45 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-10-20 14:46:45 +0200
commitc2fcad0f3fdaba6690258ad8d059f36c9eba95cb (patch)
treee3a94c2fde1a36461ef9f610d18673e80be5c8d2
parent8b3d8aeba693908f4b1b21aa46d394786c35db28 (diff)
added about box
-rw-r--r--src/gui/mainmenu.cpp37
-rw-r--r--src/gui/mainmenu.h6
-rw-r--r--src/gui/mainmenu.ui28
-rw-r--r--src/gui/mainwindow.cpp5
-rw-r--r--src/gui/mainwindow.h2
-rw-r--r--src/tikzit.cpp35
-rw-r--r--src/tikzit.h10
-rw-r--r--tikzit.pro2
8 files changed, 120 insertions, 5 deletions
diff --git a/src/gui/mainmenu.cpp b/src/gui/mainmenu.cpp
index 7d74fbe..b530f58 100644
--- a/src/gui/mainmenu.cpp
+++ b/src/gui/mainmenu.cpp
@@ -20,10 +20,19 @@
#include "tikzit.h"
#include <QDebug>
+#include <QSettings>
+#include <QMessageBox>
MainMenu::MainMenu()
{
+ QSettings settings("tikzit", "tikzit");
ui.setupUi(this);
+
+ if (!settings.value("check-for-updates").isNull()) {
+ ui.actionCheck_for_updates_automatically->blockSignals(true);
+ ui.actionCheck_for_updates_automatically->setChecked(settings.value("check-for-updates").toBool());
+ ui.actionCheck_for_updates_automatically->blockSignals(false);
+ }
}
void MainMenu::addDocks(QMenu *m)
@@ -34,6 +43,11 @@ void MainMenu::addDocks(QMenu *m)
}
}
+QAction *MainMenu::updatesAction()
+{
+ return ui.actionCheck_for_updates_automatically;
+}
+
// File
void MainMenu::on_actionNew_triggered()
{
@@ -225,3 +239,26 @@ void MainMenu::on_actionZoom_Out_triggered()
{
if (tikzit->activeWindow() != 0) tikzit->activeWindow()->tikzView()->zoomOut();
}
+
+void MainMenu::on_actionAbout_triggered()
+{
+ QMessageBox::about(this,
+ "TikZiT",
+ "<h2><b>TikZiT</b></h2>"
+ "<p><i>version " TIKZIT_VERSION "</i></p>"
+ "<p>TikZiT is a GUI diagram editor for PGF/TikZ. It is licensed under the "
+ "<a href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\">GNU General "
+ "Public License, version 3.0</a>.</p>"
+ "<p>For more info and updates, visit: "
+ "<a href=\"https://tikzit.github.io\">tikzit.github.io</a></p>");
+}
+
+void MainMenu::on_actionCheck_for_updates_automatically_triggered()
+{
+ qDebug() << "check automatically:" << ui.actionCheck_for_updates_automatically->isChecked();
+}
+
+void MainMenu::on_actionCheck_now_triggered()
+{
+ qDebug() << "check now";
+}
diff --git a/src/gui/mainmenu.h b/src/gui/mainmenu.h
index 82c447e..c14a284 100644
--- a/src/gui/mainmenu.h
+++ b/src/gui/mainmenu.h
@@ -29,6 +29,7 @@ class MainMenu : public QMenuBar
public:
MainMenu();
void addDocks(QMenu *m);
+ QAction *updatesAction();
private:
Ui::MainMenu ui;
@@ -70,6 +71,11 @@ public slots:
// View
void on_actionZoom_In_triggered();
void on_actionZoom_Out_triggered();
+
+ // Help
+ void on_actionAbout_triggered();
+ void on_actionCheck_for_updates_automatically_triggered();
+ void on_actionCheck_now_triggered();
};
#endif // MAINMENU_H
diff --git a/src/gui/mainmenu.ui b/src/gui/mainmenu.ui
index d144fce..0481c1d 100644
--- a/src/gui/mainmenu.ui
+++ b/src/gui/mainmenu.ui
@@ -82,6 +82,15 @@
<addaction name="actionZoom_In"/>
<addaction name="actionZoom_Out"/>
</widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="separator"/>
+ <addaction name="actionCheck_for_updates_automatically"/>
+ <addaction name="actionCheck_now"/>
+ </widget>
<action name="actionNew">
<property name="text">
<string>New...</string>
@@ -308,10 +317,29 @@
<string>Ctrl+[</string>
</property>
</action>
+ <action name="actionCheck_for_updates_automatically">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Check for updates automatically</string>
+ </property>
+ </action>
+ <action name="actionCheck_now">
+ <property name="text">
+ <string>Check now</string>
+ </property>
+ </action>
+ <action name="actionAbout">
+ <property name="text">
+ <string>About</string>
+ </property>
+ </action>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuView"/>
<addaction name="menuTikz"/>
+ <addaction name="menuHelp"/>
</widget>
<resources/>
<connections/>
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index d4d13b5..c450b5b 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -144,6 +144,11 @@ void MainWindow::changeEvent(QEvent *event)
QMainWindow::changeEvent(event);
}
+MainMenu *MainWindow::menu() const
+{
+ return _menu;
+}
+
StylePalette *MainWindow::stylePalette() const
{
return _stylePalette;
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index a000784..21fbd5a 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -40,6 +40,8 @@ public:
QString tikzSource();
void setSourceLine(int line);
+ MainMenu *menu() const;
+
public slots:
void on_tikzSource_textChanged();
void updateFileName();
diff --git a/src/tikzit.cpp b/src/tikzit.cpp
index 585e906..fc81739 100644
--- a/src/tikzit.cpp
+++ b/src/tikzit.cpp
@@ -106,7 +106,19 @@ void Tikzit::init()
QString styleFile = settings.value("previous-tikzstyles-file").toString();
if (!styleFile.isEmpty()) loadStyles(styleFile);
- //connect(app, &QApplication::focusChanged, this, &focusChanged);
+ QVariant check = settings.value("check-for-updates");
+ if (check.isNull()) {
+ int resp = QMessageBox::question(0,
+ tr("Check for updates"),
+ tr("Would you like TikZiT to check for updates automatically?"
+ " (You can always change this later in the Help menu.)"),
+ QMessageBox::Yes | QMessageBox::Default,
+ QMessageBox::No,
+ QMessageBox::NoButton);
+ check.setValue(resp == QMessageBox::Yes);
+ }
+
+ setCheckForUpdates(check.toBool());
}
//QMenuBar *Tikzit::mainMenu() const
@@ -327,6 +339,27 @@ QString Tikzit::styleFilePath() const
return _styleFilePath;
}
+void Tikzit::setCheckForUpdates(bool check)
+{
+ QSettings settings("tikzit", "tikzit");
+ settings.setValue("check-for-updates", check);
+ foreach (MainWindow *w, _windows) {
+ w->menu()->updatesAction()->blockSignals(true);
+ w->menu()->updatesAction()->setChecked(check);
+ w->menu()->updatesAction()->blockSignals(false);
+ }
+}
+
+void Tikzit::checkForUpdates()
+{
+
+}
+
+void Tikzit::updateReply(QNetworkReply *reply)
+{
+
+}
+
//StylePalette *Tikzit::stylePalette() const
//{
// return _stylePalette;
diff --git a/src/tikzit.h b/src/tikzit.h
index 8980f17..87599e7 100644
--- a/src/tikzit.h
+++ b/src/tikzit.h
@@ -49,6 +49,8 @@
#ifndef TIKZIT_H
#define TIKZIT_H
+#define TIKZIT_VERSION "2.0-rc1"
+
#include "mainwindow.h"
#include "mainmenu.h"
#include "ui_mainmenu.h"
@@ -67,6 +69,7 @@
#include <QMainWindow>
#include <QFont>
#include <QColor>
+#include <QNetworkAccessManager>
// Number of pixels between (0,0) and (1,0) at 100% zoom level. This should be
// divisible by 8 to avoid rounding errors with e.g. grid-snapping.
@@ -107,8 +110,6 @@ public:
void removeWindow(MainWindow *w);
static QFont LABEL_FONT;
-// Ui::MainMenu *_mainMenuUi;
-// QMenuBar *_mainMenu;
void newDoc();
void open();
@@ -132,7 +133,10 @@ public:
QString styleFilePath() const;
public slots:
- //void focusChanged(QWidget *old, QWidget *nw);
+ void setCheckForUpdates(bool check);
+ void checkForUpdates();
+ void updateReply(QNetworkReply *reply);
+
private:
// void createMenu();
diff --git a/tikzit.pro b/tikzit.pro
index c4b8f84..0f3e24c 100644
--- a/tikzit.pro
+++ b/tikzit.pro
@@ -4,7 +4,7 @@
#
#-------------------------------------------------
-QT += core gui widgets
+QT += core gui widgets network
test {
CONFIG += testcase