changeset 90:efab68769c75

Implement new separate About dialog/help window.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 08 Jun 2017 12:47:57 +0300
parents 8ec1eb6b00b6
children fc8a41b3aa74
files Makefile.gen src/aboutwindow.ui src/main.cpp src/main.h src/mainwindow.ui
diffstat 5 files changed, 202 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.gen	Thu Jun 08 10:39:21 2017 +0300
+++ b/Makefile.gen	Thu Jun 08 12:47:57 2017 +0300
@@ -101,7 +101,7 @@
 	@echo " Qt:RCC $@ $<"
 	@$(QT_RCC) -name "Syntilista" $< -o $@
 
-$(OBJPATH)main.o: $(addprefix $(APP_SRC),main.cpp main.h ui_mainwindow.h ui_editperson.h) VERSION
+$(OBJPATH)main.o: $(addprefix $(APP_SRC),main.cpp main.h ui_mainwindow.h ui_editperson.h ui_aboutwindow.h) VERSION
 	@echo " CXX $@"
 	@$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $<
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/aboutwindow.ui	Thu Jun 08 12:47:57 2017 +0300
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AboutWindow</class>
+ <widget class="QDialog" name="AboutWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>545</width>
+    <height>382</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tab1">
+      <attribute name="title">
+       <string>Tietoja ohjelmasta</string>
+      </attribute>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="QLabel" name="label_Logo">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="label_About">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab2">
+      <attribute name="title">
+       <string>Pikanäppäimet</string>
+      </attribute>
+      <layout class="QHBoxLayout" name="horizontalLayout_3">
+       <item>
+        <widget class="QLabel" name="label_ShortCuts">
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_1">
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="button_Close">
+       <property name="text">
+        <string>Sulje</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- a/src/main.cpp	Thu Jun 08 10:39:21 2017 +0300
+++ b/src/main.cpp	Thu Jun 08 12:47:57 2017 +0300
@@ -12,6 +12,8 @@
 #include "main.h"
 #include "ui_mainwindow.h"
 #include "ui_editperson.h"
+#include "ui_aboutwindow.h"
+
 
 double setScale;
 
@@ -310,8 +312,7 @@
     ui->button_DeletePerson->setShortcut(QKeySequence(Qt::Key_F8));
     ui->button_EditPerson->setShortcut(QKeySequence(Qt::Key_F6));
     ui->button_ClearFilter->setShortcut(QKeySequence(Qt::Key_Escape));
-    ui->button_Help->setShortcut(QKeySequence(Qt::Key_F1));
-    ui->button_About->setShortcut(QKeySequence(Qt::Key_F2));
+    ui->button_About->setShortcut(QKeySequence(Qt::Key_F1));
 
     new QShortcut(QKeySequence(QKeySequence::ZoomIn), this, SLOT(changeUIZoomIn()));
     new QShortcut(QKeySequence(QKeySequence::ZoomOut), this, SLOT(changeUIZoomOut()));
@@ -470,71 +471,7 @@
 
 void SyntilistaMainWindow::on_button_About_clicked()
 {
-    QMessageBox dlg;
-
-    setCommonStyleSheet(&dlg);
-    dlg.setWindowTitle(tr("Tietoja ohjelmasta"));
-    dlg.setTextFormat(Qt::RichText);
-    dlg.setIconPixmap(QPixmap(":/img/icon-64.png"));
-    dlg.setStandardButtons(QMessageBox::Ok);
-    dlg.setDefaultButton(QMessageBox::Ok);
-
-    //dlg.setInformativeText(tr(
-    dlg.setText(tr(
-        "<h1>%1 v%2</h1>"
-        "<p>"
-        "<b>Ohjelmoinut ja kehittänyt Matti Hämäläinen &lt;ccr@tnsp.org&gt;<br>"
-        "(C) Copyright 2017 Tecnic Software productions (TNSP)</b><br>"
-        "<br>"
-        "Kehitetty Raahen kaupungin Hanketoiminta ja Kehittäminen -yksikön "
-        "alaisuudessa Café Kampuksen käyttöön.<br>"
-        "</p>"
-        "<p>"
-        "Ohjelma ja sen lähdekoodi ovat uudemman BSD-tyylisen lisenssin alaisia. "
-        "Lue ohjelman mukana tullut tiedosto \"COPYING\" (tai \"COPYING.txt\") "
-        "nähdäksesi täydelliset lisenssiehdot."
-        "</p>"
-        ).
-        arg(tr(APP_NAME)).
-        arg(tr(APP_VERSION))
-        );
-
-    dlg.exec();
-}
-
-
-void SyntilistaMainWindow::on_button_Help_clicked()
-{
-    QMessageBox dlg;
-
-    setCommonStyleSheet(&dlg);
-    dlg.setWindowTitle(tr("Tietoja ohjelmasta"));
-    dlg.setTextFormat(Qt::RichText);
-    dlg.setIconPixmap(QPixmap(":/img/icon-64.png"));
-    dlg.setStandardButtons(QMessageBox::Ok);
-    dlg.setDefaultButton(QMessageBox::Ok);
-
-    dlg.setText(tr(
-        "<h1>Pikanäppäimet</h1>"
-        "<table>"
-        "<tr><td><b>F1</b></td><td>Tämä tietoikkuna</td></tr>"
-        "<tr><td><b>F2</b></td><td>Tietoja ohjelmasta</td></tr>"
-        "<tr><td><b>CTRL + Q</b></td><td>Ohjelman lopetus</td></tr>"
-        "<tr><td><b>CTRL + Page Up</b></td><td>Suurenna ohjelman tekstejä/käyttöliittymää</td></tr>"
-        "<tr><td><b>CTRL + Page Down</b></td><td>Pienennä ohjelman tekstejä/käyttöliittymää</td></tr>"
-        "<tr></tr>"
-        "<tr><td><b>Esc</b></td><td>Tyhjennä 'Etsi / suodata' kenttä ja siirry siihen</td></tr>"
-        "<tr><td><b>CTRL + Enter</b></td><td>Siirry summan syöttökenttään</td></tr>"
-        "<tr><td><b>Page Up</b></td><td>Siirry ylös henkilölistassa</td></tr>"
-        "<tr><td><b>Page Down</b></td><td>Siirry alas henkilölistassa</td></tr>"
-        "<tr></tr>"
-        "<tr><td><b>F5</b></td><td>Lisää uusi henkilö</td></tr>"
-        "<tr><td><b>F6</b></td><td>Muokkaa henkilöä</td></tr>"
-        "<tr><td><b>F8</b></td><td>Poista henkilö</td></tr>"
-        "</table>"
-        ));
-
-    dlg.exec();
+    new AboutWindow(this);
 }
 
 
@@ -1219,3 +1156,80 @@
     query().exec();
     emit dataChanged(QModelIndex(), QModelIndex());
 }
+
+
+//
+// About window
+//
+AboutWindow::AboutWindow(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::AboutWindow)
+{
+    ui->setupUi(this);
+
+//    setCommonStyleSheet(this);
+
+    setModal(true);
+    setAttribute(Qt::WA_DeleteOnClose);
+    show();
+    activateWindow();
+    raise();
+    setFocus();
+
+    ui->label_Logo->setPixmap(QPixmap(":/img/icon-64.png"));
+    ui->label_Logo->setAlignment(Qt::AlignCenter);
+
+    ui->label_About->setWordWrap(true);
+    ui->label_About->setTextFormat(Qt::RichText);
+    ui->label_About->setText(tr(
+        "<h1>%1 v%2</h1>"
+        "<p>"
+        "<b>Ohjelmoinut ja kehittänyt Matti Hämäläinen &lt;ccr@tnsp.org&gt;<br>"
+        "(C) Copyright 2017 Tecnic Software productions (TNSP)</b>"
+        "</p>"
+        "<p>"
+        "Kehitetty Raahen kaupungin Hanketoiminta ja Kehittäminen -yksikön "
+        "alaisuudessa Café Kampuksen käyttöön."
+        "</p>"
+        "<p>"
+        "Ohjelma ja sen lähdekoodi ovat uudemman BSD-tyylisen lisenssin alaisia. "
+        "Lue ohjelman mukana tullut tiedosto \"COPYING\" (tai \"COPYING.txt\") "
+        "nähdäksesi täydelliset lisenssiehdot."
+        "</p>"
+        ).
+        arg(tr(APP_NAME)).
+        arg(APP_VERSION)
+        );
+
+
+    ui->label_ShortCuts->setText(tr(
+        "<h1>Pikanäppäimet</h1>"
+        "<table>"
+        "<tr><td><b>F1</b></td><td>Tämä tietoikkuna</td></tr>"
+        "<tr><td><b>CTRL + Q</b></td><td>Ohjelman lopetus</td></tr>"
+        "<tr><td><b>CTRL + Page Up</b></td><td>Suurenna ohjelman tekstejä/käyttöliittymää</td></tr>"
+        "<tr><td><b>CTRL + Page Down</b></td><td>Pienennä ohjelman tekstejä/käyttöliittymää</td></tr>"
+        "<tr></tr>"
+        "<tr><td><b>Esc</b></td><td>Tyhjennä 'Etsi / suodata' kenttä ja siirry siihen</td></tr>"
+        "<tr><td><b>CTRL + Enter</b></td><td>Siirry summan syöttökenttään</td></tr>"
+        "<tr><td><b>Page Up</b></td><td>Siirry ylös henkilölistassa</td></tr>"
+        "<tr><td><b>Page Down</b></td><td>Siirry alas henkilölistassa</td></tr>"
+        "<tr></tr>"
+        "<tr><td><b>F5</b></td><td>Lisää uusi henkilö</td></tr>"
+        "<tr><td><b>F6</b></td><td>Muokkaa henkilöä</td></tr>"
+        "<tr><td><b>F8</b></td><td>Poista henkilö</td></tr>"
+        "</table>"
+        ));
+}
+
+
+AboutWindow::~AboutWindow()
+{
+    delete ui;
+}
+
+
+void AboutWindow::on_button_Close_clicked()
+{
+    close();
+}
--- a/src/main.h	Thu Jun 08 10:39:21 2017 +0300
+++ b/src/main.h	Thu Jun 08 12:47:57 2017 +0300
@@ -97,6 +97,7 @@
 namespace Ui {
 class SyntilistaMainWindow;
 class EditPerson;
+class AboutWindow;
 }
 
 class SyntilistaMainWindow : public QMainWindow
@@ -128,7 +129,6 @@
 
     void on_button_Quit_clicked();
     void on_button_About_clicked();
-    void on_button_Help_clicked();
 
     void on_button_AddDebt_clicked();
     void on_button_PayDebt_clicked();
@@ -194,4 +194,24 @@
     TransactionSQLModel *model_Transactions;
 };
 
+
+//
+// About dialog
+//
+class AboutWindow : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit AboutWindow(QWidget *parent = 0);
+    ~AboutWindow();
+
+private slots:
+    void on_button_Close_clicked();
+
+private:
+    Ui::AboutWindow *ui;
+};
+
+
 #endif // SYNTILISTA_H
--- a/src/mainwindow.ui	Thu Jun 08 10:39:21 2017 +0300
+++ b/src/mainwindow.ui	Thu Jun 08 12:47:57 2017 +0300
@@ -262,13 +262,6 @@
          </widget>
         </item>
         <item>
-         <widget class="QPushButton" name="button_Help">
-          <property name="text">
-           <string>?</string>
-          </property>
-         </widget>
-        </item>
-        <item>
          <spacer name="horizontalSpacer_2">
           <property name="orientation">
            <enum>Qt::Horizontal</enum>