From 65dd35a5925fb7fa59e8be1f540de5169024280c Mon Sep 17 00:00:00 2001 From: Kostas Date: Thu, 13 Aug 2015 11:16:53 +0000 Subject: [PATCH] - Reimplemented the about dialog - Added licenses for external libraries - Translators and license text now live in separate resource files FossilOrigin-Name: 8b95a9008769c1082936f3083d65428c262385db --- fuel.pro | 291 +++++++++++++++++++------------------- manifest | 21 +-- manifest.uuid | 2 +- rsrc/docs/Licenses.txt | 28 ++++ rsrc/docs/Translators.txt | 10 ++ rsrc/resources.qrc | 4 + src/AboutDialog.cpp | 34 +++++ src/AboutDialog.h | 22 +++ src/MainWindow.cpp | 30 +--- ui/AboutDialog.ui | 172 ++++++++++++++++++++++ 10 files changed, 435 insertions(+), 179 deletions(-) create mode 100644 rsrc/docs/Licenses.txt create mode 100644 rsrc/docs/Translators.txt create mode 100644 src/AboutDialog.cpp create mode 100644 src/AboutDialog.h create mode 100644 ui/AboutDialog.ui diff --git a/fuel.pro b/fuel.pro index 2934b89..cd971fb 100644 --- a/fuel.pro +++ b/fuel.pro @@ -1,144 +1,147 @@ -#------------------------------------------------- -# Fuel -#------------------------------------------------- - -QT = core gui webkit - -contains(QT_VERSION, ^5\\..*) { - QT += widgets webkitwidgets - QT -= quick multimediawidgets opengl printsupport qml multimedia positioning sensors -} - -TARGET = Fuel -TEMPLATE = app - -win32 { - RC_FILE = rsrc/fuel.rc - LIBS += -luser32 -lshell32 -luuid -} - -macx { - ICON = rsrc/icons/fuel.icns -} - -# FreeBSD needs explicit paths to Qt install -unix:freebsd { - INCLUDEPATH += /usr/local/include - LIBS += -L/usr/local/lib -} - -unix:!macx { - TARGET = fuel - ICON = rsrc/icons/fuel.png - PREFIX = /usr - BINDIR = $$PREFIX/bin - DATADIR = $$PREFIX/share - target.path = $$BINDIR - - desktop.path = $$DATADIR/applications - desktop.files += rsrc/fuel.desktop - - icon.path = $$DATADIR/icons/hicolor/256x256/apps - icon.files += rsrc/icons/fuel.png - - INSTALLS += target desktop icon - system(intl/convert.sh) -} - - -INCLUDEPATH += src - -SOURCES += src/main.cpp\ - src/MainWindow.cpp \ - src/CommitDialog.cpp \ - src/FileActionDialog.cpp \ - src/SettingsDialog.cpp \ - src/FslSettingsDialog.cpp \ - src/CloneDialog.cpp \ - src/RevisionDialog.cpp \ - src/Utils.cpp \ - src/FileTableView.cpp \ - src/LoggedProcess.cpp \ - src/BrowserWidget.cpp \ - src/CustomWebView.cpp \ - src/Fossil.cpp \ - src/Workspace.cpp \ - src/SearchBox.cpp \ - src/Settings.cpp \ - src/RemoteDialog.cpp - -HEADERS += src/MainWindow.h \ - src/CommitDialog.h \ - src/FileActionDialog.h \ - src/SettingsDialog.h \ - src/FslSettingsDialog.h \ - src/CloneDialog.h \ - src/RevisionDialog.h \ - src/Utils.h \ - src/FileTableView.h \ - src/LoggedProcess.h \ - src/BrowserWidget.h \ - src/CustomWebView.h \ - src/Fossil.h \ - src/Workspace.h \ - src/SearchBox.h \ - src/Settings.h \ - src/RemoteDialog.h - -FORMS += ui/MainWindow.ui \ - ui/CommitDialog.ui \ - ui/FileActionDialog.ui \ - ui/SettingsDialog.ui \ - ui/FslSettingsDialog.ui \ - ui/CloneDialog.ui \ - ui/BrowserWidget.ui \ - ui/RevisionDialog.ui \ - ui/RemoteDialog.ui - -RESOURCES += \ - rsrc/resources.qrc - -# QtKeychain -SOURCES += ext/qtkeychain/keychain.cpp - -HEADERS += ext/qtkeychain/keychain.h \ - ext/qtkeychain/keychain_p.h \ - ext/qtkeychain/qkeychain_export.h - -DEFINES += QKEYCHAIN_STATICLIB - -unix:!macx { - QT += dbus - - SOURCES += ext/qtkeychain/keychain_unix.cpp \ - ext/qtkeychain/gnomekeyring.cpp - - HEADERS += ext/qtkeychain/gnomekeyring_p.h - DBUS_INTERFACES += ext/qtkeychain/org.kde.KWallet.xml -} - -macx { - SOURCES += ext/qtkeychain/keychain_mac.cpp -} - -win32 { - SOURCES += ext/qtkeychain/keychain_win.cpp - LIBS += -lCrypt32 -} - - - - -CODECFORTR = UTF-8 - -TRANSLATIONS += \ - intl/en_US.ts \ - intl/el_GR.ts \ - intl/de_DE.ts \ - intl/es_ES.ts \ - intl/fr_FR.ts \ - intl/ru_RU.ts \ - intl/pt_PT.ts \ - intl/it_IT.ts \ - intl/nl_NL.ts \ - intl/ko_KO.ts \ +#------------------------------------------------- +# Fuel +#------------------------------------------------- + +QT = core gui webkit + +contains(QT_VERSION, ^5\\..*) { + QT += widgets webkitwidgets + QT -= quick multimediawidgets opengl printsupport qml multimedia positioning sensors +} + +TARGET = Fuel +TEMPLATE = app + +win32 { + RC_FILE = rsrc/fuel.rc + LIBS += -luser32 -lshell32 -luuid +} + +macx { + ICON = rsrc/icons/fuel.icns +} + +# FreeBSD needs explicit paths to Qt install +unix:freebsd { + INCLUDEPATH += /usr/local/include + LIBS += -L/usr/local/lib +} + +unix:!macx { + TARGET = fuel + ICON = rsrc/icons/fuel.png + PREFIX = /usr + BINDIR = $$PREFIX/bin + DATADIR = $$PREFIX/share + target.path = $$BINDIR + + desktop.path = $$DATADIR/applications + desktop.files += rsrc/fuel.desktop + + icon.path = $$DATADIR/icons/hicolor/256x256/apps + icon.files += rsrc/icons/fuel.png + + INSTALLS += target desktop icon + system(intl/convert.sh) +} + + +INCLUDEPATH += src + +SOURCES += src/main.cpp\ + src/MainWindow.cpp \ + src/CommitDialog.cpp \ + src/FileActionDialog.cpp \ + src/SettingsDialog.cpp \ + src/FslSettingsDialog.cpp \ + src/CloneDialog.cpp \ + src/RevisionDialog.cpp \ + src/Utils.cpp \ + src/FileTableView.cpp \ + src/LoggedProcess.cpp \ + src/BrowserWidget.cpp \ + src/CustomWebView.cpp \ + src/Fossil.cpp \ + src/Workspace.cpp \ + src/SearchBox.cpp \ + src/Settings.cpp \ + src/RemoteDialog.cpp \ + src/AboutDialog.cpp + +HEADERS += src/MainWindow.h \ + src/CommitDialog.h \ + src/FileActionDialog.h \ + src/SettingsDialog.h \ + src/FslSettingsDialog.h \ + src/CloneDialog.h \ + src/RevisionDialog.h \ + src/Utils.h \ + src/FileTableView.h \ + src/LoggedProcess.h \ + src/BrowserWidget.h \ + src/CustomWebView.h \ + src/Fossil.h \ + src/Workspace.h \ + src/SearchBox.h \ + src/Settings.h \ + src/RemoteDialog.h \ + src/AboutDialog.h + +FORMS += ui/MainWindow.ui \ + ui/CommitDialog.ui \ + ui/FileActionDialog.ui \ + ui/SettingsDialog.ui \ + ui/FslSettingsDialog.ui \ + ui/CloneDialog.ui \ + ui/BrowserWidget.ui \ + ui/RevisionDialog.ui \ + ui/RemoteDialog.ui \ + ui/AboutDialog.ui + +RESOURCES += \ + rsrc/resources.qrc + +# QtKeychain +SOURCES += ext/qtkeychain/keychain.cpp + +HEADERS += ext/qtkeychain/keychain.h \ + ext/qtkeychain/keychain_p.h \ + ext/qtkeychain/qkeychain_export.h + +DEFINES += QKEYCHAIN_STATICLIB + +unix:!macx { + QT += dbus + + SOURCES += ext/qtkeychain/keychain_unix.cpp \ + ext/qtkeychain/gnomekeyring.cpp + + HEADERS += ext/qtkeychain/gnomekeyring_p.h + DBUS_INTERFACES += ext/qtkeychain/org.kde.KWallet.xml +} + +macx { + SOURCES += ext/qtkeychain/keychain_mac.cpp +} + +win32 { + SOURCES += ext/qtkeychain/keychain_win.cpp + LIBS += -lCrypt32 +} + + + + +CODECFORTR = UTF-8 + +TRANSLATIONS += \ + intl/en_US.ts \ + intl/el_GR.ts \ + intl/de_DE.ts \ + intl/es_ES.ts \ + intl/fr_FR.ts \ + intl/ru_RU.ts \ + intl/pt_PT.ts \ + intl/it_IT.ts \ + intl/nl_NL.ts \ + intl/ko_KO.ts \ diff --git a/manifest b/manifest index a144708..936d352 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merged\sKorean\stranslation -D 2015-08-04T08:33:55.599 +C -\sReimplemented\sthe\sabout\sdialog\n-\sAdded\slicenses\sfor\sexternal\slibraries\n-\sTranslators\sand\slicense\stext\snow\slive\sin\sseparate\sresource\sfiles\n +D 2015-08-13T11:16:53.424 F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b @@ -37,7 +37,7 @@ F ext/qtkeychain/qkeychain_export.h d756528188ef9bf3c4461ecc80048f06c362b54b F ext/qtkeychain/testclient.cpp cb1290a9584b627306a7bfdf1c02a8bbae503f5f F ext/qtkeychain/translations/qtkeychain_de.ts 0a70c8205c066c30ed8172f0670942de1fc5eede F ext/qtkeychain/translations/qtkeychain_ro.ts f16939382fd1a047b0692426bc82847347f14b32 -F fuel.pro 71b0d477c9ce5cf44659d20d2a1d7e43452f78b3 +F fuel.pro 7802dc9513da36539818ee1e927ec1e3494ecb54 F intl/convert.bat 357d461ee8c6a7be6d2f60ac77c3232678ffb513 x F intl/convert.sh ac6edc8d99b575601cf9c6b85b18c9e25875b6e0 x F intl/de_DE.ts e2faceab920ac60c97bbc6fba038e261d51fc741 @@ -51,6 +51,8 @@ F intl/nl_NL.ts ff9b6ae9da5b6ffacc74fc1075a14ad80ebc0429 F intl/pt_PT.ts f93bcc3df5447ab1d85407e1dec4cd68c03d2245 F intl/ru_RU.ts 74189b3ee2b30b0b47b2db5bd7c9935db84947fc F intl/update.sh 39d4561630ba6681bb27e7beadc225a31469728f x +F rsrc/docs/Licenses.txt 4021c1b126d55c1630ae2b43a8b805f99e39a357 +F rsrc/docs/Translators.txt caf04efd7391546adda7da73679156e3ff5d5fcd F rsrc/fuel.desktop 43145556bc61f5a91b497c38a16aec44af271d29 F rsrc/fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79 F rsrc/icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8 @@ -208,7 +210,9 @@ F rsrc/icons/Zoom-01.png 67ca532922e9166325c5c75fce1ca3fbb0d2b6a6 F rsrc/icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b F rsrc/icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038 F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342 -F rsrc/resources.qrc cdc1796df4c2a19743d662f0dc9c71f9e799b84a +F rsrc/resources.qrc 21ae6205e27ac989001eb0edc075d7e405b992c8 +F src/AboutDialog.cpp b5ba08d7707552356c287f7274f55f89cf32557e +F src/AboutDialog.h 269f3a0589067c08f19b542e4576b0ef58bc6ec5 F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056 F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597 F src/CloneDialog.cpp c341622b01d493387d6e4928018b3392d92471e8 @@ -227,7 +231,7 @@ F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7 F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp f61c46fcfc36b003d6ce8036ce4065790670e353 +F src/MainWindow.cpp bbf6d5529f520ed80c1cea37f28cd42c52c1e85e F src/MainWindow.h c4518a0ba8d5ba2a128449bd8a50adff8402049d F src/RemoteDialog.cpp 8540cc5e2e41c4127ed8a028d84691604fa6ecac F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d @@ -246,6 +250,7 @@ F src/Workspace.h 842c195cf830422f2066c7190156e7c8b82a93a1 F src/main.cpp d8c65ea5e54102e4989fef9fd8cfd4f13ef8a8f0 F tools/git-push.sh 62cc58434cae5b7bcd6bd9d4cce8b08739f31cd7 x F tools/pack.sh d7f38a498c4e9327fecd6a6e5ac27be270d43008 x +F ui/AboutDialog.ui 96b9105409325ab977d4c6754fb05aef06a5050b F ui/BrowserWidget.ui 994ad9ea0e9f5815d6b1a27acc2f6f39164c507f F ui/CloneDialog.ui 4886e7d4f258ea8b852b5eefc860396e35145712 F ui/CommitDialog.ui 1e5dafa742e9ae07ec937bcda8cda3297ddc6199 @@ -255,7 +260,7 @@ F ui/MainWindow.ui 10181826a25056ed5aba2b23a7d110159be7c043 F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd F ui/SettingsDialog.ui 47b9a31e28ad523f14a1c4cd361270b6babbdf7d -P 4cb9b13c6b6c9f3a2fcc62de4737ea61e98ed433 7fa0e987609c9ccb3d1518f21230e26f8a122d5c -R 793761371430ae253617194759b785d5 +P 2c93f1713207d90729d6d1f105560bc0a24e365b +R 0665a31eba11e051d35b7b46216dd3d2 U Kostas -Z e1aaaaca6ebaf7d137a7a7a7f78df4e0 +Z 88f3e4c9ada968acf4416e29621a6af2 diff --git a/manifest.uuid b/manifest.uuid index 8896bfc..c085d86 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -2c93f1713207d90729d6d1f105560bc0a24e365b \ No newline at end of file +8b95a9008769c1082936f3083d65428c262385db \ No newline at end of file diff --git a/rsrc/docs/Licenses.txt b/rsrc/docs/Licenses.txt new file mode 100644 index 0000000..09f0625 --- /dev/null +++ b/rsrc/docs/Licenses.txt @@ -0,0 +1,28 @@ +Icon Theme by Deleket - Jojo Mendoza +Available under the CC Attribution Noncommercial No Derivative 3.0 License +--------------------------------------- + +QtKeychain +https://github.com/frankosterfeld/qtkeychain + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------- diff --git a/rsrc/docs/Translators.txt b/rsrc/docs/Translators.txt new file mode 100644 index 0000000..25d8281 --- /dev/null +++ b/rsrc/docs/Translators.txt @@ -0,0 +1,10 @@ +stayawake: de_DE +djnavas: es_ES +Fringale: fr_FR +mouse166: ru_RU +emansije: pt_PT +maxxlupi: it_IT +Zangune: it_IT +Fly Man: nl_NL +Rick Van Lieshout: nl_NL +ardiefox: ko_KR diff --git a/rsrc/resources.qrc b/rsrc/resources.qrc index 1cf777d..9bb5ce8 100644 --- a/rsrc/resources.qrc +++ b/rsrc/resources.qrc @@ -167,4 +167,8 @@ intl/nl_NL.qm intl/ko_KR.qm + + docs/Translators.txt + docs/Licenses.txt + diff --git a/src/AboutDialog.cpp b/src/AboutDialog.cpp new file mode 100644 index 0000000..c9c4829 --- /dev/null +++ b/src/AboutDialog.cpp @@ -0,0 +1,34 @@ +#include "AboutDialog.h" +#include "ui_AboutDialog.h" +#include + +AboutDialog::AboutDialog(QWidget *parent, const QString &fossilVersion) : + QDialog(parent), + ui(new Ui::AboutDialog) +{ + ui->setupUi(this); + ui->lblApp->setText(QCoreApplication::applicationName() + " "+ QCoreApplication::applicationVersion()); + ui->lblQtVersion->setText(tr("QT version %0").arg(QT_VERSION_STR)); + + if(!fossilVersion.isEmpty()) + ui->lblFossilVersion->setText(tr("Fossil version %0").arg(fossilVersion)); + + QFile ftrans(":/docs/docs/Translators.txt"); + if(ftrans.open(QFile::ReadOnly)) + { + ui->txtTranslators->setText(ftrans.readAll()); + ftrans.close(); + } + + QFile flicenses(":/docs/docs/Licenses.txt"); + if(flicenses.open(QFile::ReadOnly)) + { + ui->txtLicenses->setText(flicenses.readAll()); + flicenses.close(); + } +} + +AboutDialog::~AboutDialog() +{ + delete ui; +} diff --git a/src/AboutDialog.h b/src/AboutDialog.h new file mode 100644 index 0000000..7a9b387 --- /dev/null +++ b/src/AboutDialog.h @@ -0,0 +1,22 @@ +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include + +namespace Ui { +class AboutDialog; +} + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutDialog(QWidget *parent, const QString &fossilVersion); + ~AboutDialog(); + +private: + Ui::AboutDialog *ui; +}; + +#endif // ABOUTDIALOG_H diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 2ea8dd7..5e422c9 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -20,6 +20,7 @@ #include "CloneDialog.h" #include "RevisionDialog.h" #include "RemoteDialog.h" +#include "AboutDialog.h" #include "Utils.h" #define REVISION_LATEST "Latest revision" @@ -1698,33 +1699,10 @@ void MainWindow::on_actionUndo_triggered() void MainWindow::on_actionAbout_triggered() { QString fossil_ver; + fossil().getFossilVersion(fossil_ver); - if(fossil().getFossilVersion(fossil_ver)) - fossil_ver = tr("Fossil version %0").arg(fossil_ver) + "\n"; - - QString qt_ver = tr("QT version %0").arg(QT_VERSION_STR) + "\n\n"; - - QMessageBox::about(this, tr("About Fuel..."), - QCoreApplication::applicationName() + " "+ QCoreApplication::applicationVersion() + " " + - tr("a GUI frontend to the Fossil SCM\n" - "by Kostas Karanikolas\n" - "Released under the GNU GPL")+"\n\n" + - fossil_ver + - qt_ver + - tr("Icons by Deleket - Jojo Mendoza\n" - "Available under the CC Attribution Noncommercial No Derivative 3.0 License") + "\n\n" + - tr("Translations with the help of:") + "\n" - "stayawake: de_DE\n" - "djnavas: es_ES\n" - "Fringale: fr_FR\n" - "mouse166: ru_RU\n" - "emansije: pt_PT\n" - "maxxlupi: it_IT\n" - "Zangune: it_IT\n" - "Fly Man: nl_NL\n" - "Rick Van Lieshout: nl_NL\n" - "ardiefox: ko_KR\n" - ); + AboutDialog dlg(this, fossil_ver); + dlg.exec(); } //------------------------------------------------------------------------------ diff --git a/ui/AboutDialog.ui b/ui/AboutDialog.ui new file mode 100644 index 0000000..9774062 --- /dev/null +++ b/ui/AboutDialog.ui @@ -0,0 +1,172 @@ + + + AboutDialog + + + + 0 + 0 + 577 + 434 + + + + About Fuel... + + + + + + + + + 64 + 64 + + + + + + + :/icons/icon-application + + + true + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + + + + APPNAME VERSION + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + a GUI frontend to the Fossil SCM +by Kostas Karanikolas +Released under the GNU GPL + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + FOSSIL VERSION + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + QT VERSION + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + Translations with the help of: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + true + + + + + + + This sofware uses the following open source libraries and assets: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + true + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + + + + + + buttonBox + accepted() + AboutDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + AboutDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +