From 7e0ba3c713cb3975725b6461de5cc0878fce1c92 Mon Sep 17 00:00:00 2001 From: Jeremy Bullock Date: Sat, 25 Jul 2020 22:06:00 -0700 Subject: [PATCH] Redo About Popup (#102) * Redo About Popup * Remove forum link --- stuff/doc/LICENSE/LICENSE_ffmpeg_info.txt | 10 ++ .../rooms/Default/menubar_template.xml | 1 - toonz/sources/toonz/CMakeLists.txt | 2 + toonz/sources/toonz/Resources/startup.png | Bin 6677 -> 6247 bytes toonz/sources/toonz/aboutpopup.cpp | 96 ++++++++++++++++++ toonz/sources/toonz/aboutpopup.h | 43 ++++++++ toonz/sources/toonz/mainwindow.cpp | 40 ++------ toonz/sources/toonz/mainwindow.h | 5 +- toonz/sources/toonz/menubar.cpp | 2 +- toonz/sources/toonz/menubarcommandids.h | 2 +- 10 files changed, 167 insertions(+), 34 deletions(-) create mode 100644 stuff/doc/LICENSE/LICENSE_ffmpeg_info.txt create mode 100644 toonz/sources/toonz/aboutpopup.cpp create mode 100644 toonz/sources/toonz/aboutpopup.h diff --git a/stuff/doc/LICENSE/LICENSE_ffmpeg_info.txt b/stuff/doc/LICENSE/LICENSE_ffmpeg_info.txt new file mode 100644 index 00000000..ad11303a --- /dev/null +++ b/stuff/doc/LICENSE/LICENSE_ffmpeg_info.txt @@ -0,0 +1,10 @@ +Tahoma ships with FFmpeg, and uses FFmpeg through command line commands. +Tahoma does not directly use FFmpeg libraries or code. + +As of July 2020, Tahoma is shipping with FFmpeg 4.3 LGPL version from https://ffmpeg.zeranoe.com/builds/ + +FFmpeg source code can be found at: +https://github.com/turtletooth/FFmpeg +or +https://github.com/FFmpeg/FFmpeg + diff --git a/stuff/profiles/layouts/rooms/Default/menubar_template.xml b/stuff/profiles/layouts/rooms/Default/menubar_template.xml index 04db1581..54d09a10 100644 --- a/stuff/profiles/layouts/rooms/Default/menubar_template.xml +++ b/stuff/profiles/layouts/rooms/Default/menubar_template.xml @@ -322,7 +322,6 @@ MI_OpenOnlineManual MI_OpenWhatsNew - MI_OpenCommunityForum MI_OpenReportABug diff --git a/toonz/sources/toonz/CMakeLists.txt b/toonz/sources/toonz/CMakeLists.txt index 1573274c..0427e17a 100644 --- a/toonz/sources/toonz/CMakeLists.txt +++ b/toonz/sources/toonz/CMakeLists.txt @@ -1,6 +1,7 @@ set(VERSION 1.4) set(MOC_HEADERS + aboutpopup.h addfilmstripframespopup.h adjustlevelspopup.h adjustthicknesspopup.h @@ -234,6 +235,7 @@ set(SOURCES fileselection.cpp filmstripselection.cpp keyframeselection.cpp + aboutpopup.cpp addfilmstripframespopup.cpp camerasettingspopup.cpp convertpopup.cpp diff --git a/toonz/sources/toonz/Resources/startup.png b/toonz/sources/toonz/Resources/startup.png index 377b8e89cc693649397b3f96461eccc1f2db3e02..8fb7db5841398588744470fd457337a3c163aff3 100644 GIT binary patch delta 5072 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 S%y}B>Fg3hs(4go3@c#h+?46VV delta 5544 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 +#include +#include +#include +#include +#include + +AboutClickableLabel::AboutClickableLabel(QWidget* parent, Qt::WindowFlags f) + : QLabel(parent) { + setStyleSheet("text-decoration: underline;"); +} + +AboutClickableLabel::~AboutClickableLabel() {} + +void AboutClickableLabel::mousePressEvent(QMouseEvent* event) { + emit clicked(); +} + +AboutPopup::AboutPopup(QWidget* parent) + : DVGui::Dialog(parent, true, "About Tahoma") { + setFixedWidth(300); + setFixedHeight(350); + + setWindowTitle(tr("About Tahoma")); + setTopMargin(0); + + TFilePath baseLicensePath = TEnv::getStuffDir() + "doc/LICENSE"; + TFilePath tahomaLicensePath = baseLicensePath + "LICENSE.txt"; + + QVBoxLayout* mainLayout = new QVBoxLayout(this); + + QLabel* logo = new QLabel(this); + + logo->setPixmap(QPixmap::fromImage(QImage(":Resources/startup.png"))); + mainLayout->addWidget(logo); + + QString name = QString::fromStdString(TEnv::getApplicationFullName()); + name += "\nBuilt: " __DATE__; + mainLayout->addWidget(new QLabel(name)); + + QLabel* blankLabel = new QLabel(this); + blankLabel->setText(tr(" ")); + blankLabel->setWordWrap(true); + + mainLayout->addWidget(blankLabel); + + AboutClickableLabel* licenseLink = new AboutClickableLabel(this); + licenseLink->setText(tr("Tahoma License")); + + connect(licenseLink, &AboutClickableLabel::clicked, [=]() { + if (TSystem::isUNC(tahomaLicensePath)) + QDesktopServices::openUrl( + QUrl(QString::fromStdWString(tahomaLicensePath.getWideString()))); + else + QDesktopServices::openUrl(QUrl::fromLocalFile( + QString::fromStdWString(tahomaLicensePath.getWideString()))); + }); + + mainLayout->addWidget(licenseLink); + + AboutClickableLabel* thirdPartyLink = new AboutClickableLabel(this); + thirdPartyLink->setText(tr("Third Party Licenses")); + + connect(thirdPartyLink, &AboutClickableLabel::clicked, [=]() { + if (TSystem::isUNC(baseLicensePath)) + QDesktopServices::openUrl( + QUrl(QString::fromStdWString(baseLicensePath.getWideString()))); + else + QDesktopServices::openUrl(QUrl::fromLocalFile( + QString::fromStdWString(baseLicensePath.getWideString()))); + }); + + mainLayout->addWidget(thirdPartyLink); + + QLabel* ffmpegLabel = new QLabel(this); + ffmpegLabel->setText( + tr("Tahoma ships with FFmpeg. \nFFmpeg is licensed under the LGPLv2.1")); + mainLayout->addWidget(ffmpegLabel); + + mainLayout->addStretch(); + + QFrame* mainFrame = new QFrame(this); + mainFrame->setLayout(mainLayout); + mainFrame->setFixedWidth(300); + + addWidget(mainFrame); + + QPushButton* button = new QPushButton(tr("Close"), this); + button->setDefault(true); + addButtonBarWidget(button); + connect(button, SIGNAL(clicked()), this, SLOT(accept())); +} \ No newline at end of file diff --git a/toonz/sources/toonz/aboutpopup.h b/toonz/sources/toonz/aboutpopup.h new file mode 100644 index 00000000..b430db2f --- /dev/null +++ b/toonz/sources/toonz/aboutpopup.h @@ -0,0 +1,43 @@ +#pragma once + +#ifndef ABOUTPOPUP_H +#define ABOUTPOPUP_H + +#include "toonzqt/dvdialog.h" +#include +#include +#include + +// forward declaration +class QPushButton; +class QLineEdit; + +class AboutClickableLabel : public QLabel { + Q_OBJECT + +public: + explicit AboutClickableLabel(QWidget* parent = Q_NULLPTR, + Qt::WindowFlags f = Qt::WindowFlags()); + ~AboutClickableLabel(); + +signals: + void clicked(); + +protected: + void mousePressEvent(QMouseEvent* event); +}; + +//============================================================================= +// AboutPopup +//----------------------------------------------------------------------------- + +class AboutPopup final : public DVGui::Dialog { + Q_OBJECT + + QPushButton* m_closeBtn; + +public: + AboutPopup(QWidget* parent); +}; + +#endif // ABOUTPOPUP_H \ No newline at end of file diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index 72126c3a..c5d96ce4 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -14,6 +14,7 @@ #include "viewerpane.h" #include "startuppopup.h" #include "statusbar.h" +#include "aboutpopup.h" // TnzTools includes #include "tools/toolcommandids.h" @@ -410,6 +411,8 @@ centralWidget->setLayout(centralWidgetLayout);*/ m_statusBar->setVisible(ShowStatusBarAction == 1 ? true : false); TApp::instance()->setStatusBar(m_statusBar); + m_aboutPopup = new AboutPopup(this); + // Leggo i settings readSettings(argumentLayoutFileName); @@ -566,8 +569,8 @@ centralWidget->setLayout(centralWidgetLayout);*/ setCommandHandler(MI_About, this, &MainWindow::onAbout); setCommandHandler(MI_OpenOnlineManual, this, &MainWindow::onOpenOnlineManual); setCommandHandler(MI_OpenWhatsNew, this, &MainWindow::onOpenWhatsNew); - setCommandHandler(MI_OpenCommunityForum, this, - &MainWindow::onOpenCommunityForum); + // setCommandHandler(MI_OpenCommunityForum, this, + // &MainWindow::onOpenCommunityForum); setCommandHandler(MI_OpenReportABug, this, &MainWindow::onOpenReportABug); setCommandHandler(MI_MaximizePanel, this, &MainWindow::maximizePanel); @@ -1037,28 +1040,7 @@ void MainWindow::onUpgradeTabPro() {} //----------------------------------------------------------------------------- -void MainWindow::onAbout() { - QLabel *label = new QLabel(); - QPixmap pixmap = QIcon(":Resources/splash.svg").pixmap(QSize(610, 344)); - pixmap.setDevicePixelRatio(QApplication::desktop()->devicePixelRatio()); - label->setPixmap(pixmap); - - DVGui::Dialog *dialog = new DVGui::Dialog(this, true); - dialog->setWindowTitle(tr("About Tahoma")); - dialog->setTopMargin(0); - dialog->addWidget(label); - - QString name = QString::fromStdString(TEnv::getApplicationFullName()); - name += " (built " __DATE__ " " __TIME__ ")"; - dialog->addWidget(new QLabel(name)); - - QPushButton *button = new QPushButton(tr("Close"), dialog); - button->setDefault(true); - dialog->addButtonBarWidget(button); - connect(button, SIGNAL(clicked()), dialog, SLOT(accept())); - - dialog->exec(); -} +void MainWindow::onAbout() { m_aboutPopup->exec(); } //----------------------------------------------------------------------------- @@ -1075,10 +1057,10 @@ void MainWindow::onOpenWhatsNew() { //----------------------------------------------------------------------------- -void MainWindow::onOpenCommunityForum() { - QDesktopServices::openUrl( - QUrl(tr("https://groups.google.com/forum/#!forum/opentoonz_en"))); -} +// void MainWindow::onOpenCommunityForum() { +// QDesktopServices::openUrl( +// QUrl(tr("https://groups.google.com/forum/#!forum/opentoonz_en"))); +//} //----------------------------------------------------------------------------- @@ -2228,7 +2210,7 @@ void MainWindow::defineActions() { createMenuHelpAction(MI_OpenOnlineManual, tr("&Online Manual..."), "F1"); createMenuHelpAction(MI_OpenWhatsNew, tr("&What's New..."), ""); - createMenuHelpAction(MI_OpenCommunityForum, tr("&Community Forum..."), ""); + // createMenuHelpAction(MI_OpenCommunityForum, tr("&Community Forum..."), ""); createMenuHelpAction(MI_OpenReportABug, tr("&Report a Bug..."), ""); createMenuWindowsAction(MI_OpenGuidedDrawingControls, diff --git a/toonz/sources/toonz/mainwindow.h b/toonz/sources/toonz/mainwindow.h index e7afafcf..ab48c0c7 100644 --- a/toonz/sources/toonz/mainwindow.h +++ b/toonz/sources/toonz/mainwindow.h @@ -22,6 +22,7 @@ class TPanel; class UpdateChecker; class TopBar; class StatusBar; +class AboutPopup; //----------------------------------------------------------------------------- class Room final : public TMainWindow { @@ -65,7 +66,7 @@ class MainWindow final : public QMainWindow { TopBar *m_topBar; StatusBar *m_statusBar; - + AboutPopup *m_aboutPopup; QActionGroup *m_toolsActionGroup; QStackedWidget *m_stackedWidget; @@ -100,7 +101,7 @@ public: void onAbout(); void onOpenOnlineManual(); void onOpenWhatsNew(); - void onOpenCommunityForum(); + // void onOpenCommunityForum(); void onOpenReportABug(); void checkForUpdates(); int getRoomCount() const; diff --git a/toonz/sources/toonz/menubar.cpp b/toonz/sources/toonz/menubar.cpp index 86593ed1..934e292e 100644 --- a/toonz/sources/toonz/menubar.cpp +++ b/toonz/sources/toonz/menubar.cpp @@ -721,7 +721,7 @@ QMenuBar *StackedMenuBar::createFullMenuBar() { QMenu *helpMenu = addMenu(tr("Help"), fullMenuBar); addMenuItem(helpMenu, MI_OpenOnlineManual); addMenuItem(helpMenu, MI_OpenWhatsNew); - addMenuItem(helpMenu, MI_OpenCommunityForum); + // addMenuItem(helpMenu, MI_OpenCommunityForum); helpMenu->addSeparator(); addMenuItem(helpMenu, MI_OpenReportABug); helpMenu->addSeparator(); diff --git a/toonz/sources/toonz/menubarcommandids.h b/toonz/sources/toonz/menubarcommandids.h index fd719d64..4ace785d 100644 --- a/toonz/sources/toonz/menubarcommandids.h +++ b/toonz/sources/toonz/menubarcommandids.h @@ -429,7 +429,7 @@ #define MI_OpenOnlineManual "MI_OpenOnlineManual" #define MI_OpenWhatsNew "MI_OpenWhatsNew" -#define MI_OpenCommunityForum "MI_OpenCommunityForum" +// #define MI_OpenCommunityForum "MI_OpenCommunityForum" #define MI_OpenReportABug "MI_OpenReportABug" #define MI_ClearCacheFolder "MI_ClearCacheFolder"