OSDN Git Service

Updated Simplified Chinese translation, thanks to Hongchuan Zhuang <kidneybean@sohu...
[lamexp/LameXP.git] / src / Dialog_About.h
index f86e748..5e5ca97 100644 (file)
@@ -1,11 +1,12 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2023 LoRd_MuldeR <MuldeR2@GMX.de>
 //
 // This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
+// it under the terms of the GNU GENERAL PUBLIC LICENSE as published by
 // the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
+// (at your option) any later version; always including the non-optional
+// LAMEXP GNU GENERAL PUBLIC LICENSE ADDENDUM. See "License.txt" file!
 //
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 #pragma once
 
-#include <QMessageBox>
+#include <QDialog>
 
+//UIC forward declartion
+namespace Ui {
+       class AboutDialog;
+}
+
+//Class declarations
+class QLabel;
+class QPixmap;
+class QTimer;
+class QElapsedTimer;
 class SettingsModel;
 
-class AboutDialog : public QMessageBox
+//AboutDialog class
+class AboutDialog : public QDialog
 {
        Q_OBJECT
 
@@ -38,24 +50,41 @@ public:
 public slots:
        int exec();
        void enableButtons(void);
-       void openLicenseText(void);
-       void showMoreAbout(void);
+       void openURL(const QString &url);
+       void gotoLicenseTab(void);
        void showAboutQt(void);
-       void showAboutContributors(void);
        void moveDisque(void);
+       void tabChanged(int index, const bool silent = false);
+       void adjustSize(void);
+       void geometryUpdated(void);
 
 protected:
-       void showEvent(QShowEvent *e);
+       virtual void showEvent(QShowEvent *e);
+       virtual void closeEvent(QCloseEvent *e);
        bool eventFilter(QObject *obj, QEvent *event);
 
 private:
-       bool m_firstShow;
-       SettingsModel *m_settings;
-       QLabel *m_disque;
-       QTimer * m_disqueTimer;
+       Ui::AboutDialog *ui; //for Qt UIC
+
+       const bool m_firstStart;
+       SettingsModel *const m_settings;
+       QScopedPointer<QMap<QWidget*,bool>> m_initFlags;
+       int m_lastTab;
+       
+       QScopedPointer<QLabel> m_disque;
+       QScopedPointer<QTimer> m_disqueTimer;
        bool m_disqueFlags[2];
-       QRect m_screenGeometry;
+       QPoint m_disquePos;
+       QRect m_disqueBound;
+       double m_discOpacity;
+       bool m_rotateNext;
+       QScopedPointer<QElapsedTimer> m_disqueDelay;
+       QScopedPointer<QPixmap> m_cartoon[4];
+
+       void initInformationTab(void);
+       void initContributorsTab(void);
+       void initSoftwareTab(void);
+       void initLicenseTab(void);
 
        QString makeToolText(const QString &toolName, const QString &toolBin, const QString &toolVerFmt, const QString &toolLicense, const QString &toolWebsite, const QString &extraInfo = QString());
-       bool playResoureSound(const QString &library, const unsigned long soundId, const bool async);
 };