From c2fcad0f3fdaba6690258ad8d059f36c9eba95cb Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 20 Oct 2018 14:46:45 +0200 Subject: added about box --- src/gui/mainmenu.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/gui/mainmenu.h | 6 ++++++ src/gui/mainmenu.ui | 28 ++++++++++++++++++++++++++++ src/gui/mainwindow.cpp | 5 +++++ src/gui/mainwindow.h | 2 ++ src/tikzit.cpp | 35 ++++++++++++++++++++++++++++++++++- src/tikzit.h | 10 +++++++--- tikzit.pro | 2 +- 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 +#include +#include 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", + "

TikZiT

" + "

version " TIKZIT_VERSION "

" + "

TikZiT is a GUI diagram editor for PGF/TikZ. It is licensed under the " + "GNU General " + "Public License, version 3.0.

" + "

For more info and updates, visit: " + "tikzit.github.io

"); +} + +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 @@ + + + Help + + + + + + New... @@ -308,10 +317,29 @@ Ctrl+[ + + + true + + + Check for updates automatically + + + + + Check now + + + + + About + + + 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 #include #include +#include // 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 -- cgit v1.2.3