diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-09-06 09:43:11 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-09-06 10:14:28 +0900 |
commit | 0204f596eb83c452ae7ffeefc728668b414b1f16 (patch) | |
tree | 71805578b857be9ba33c9d3223e6e935026e389d /src | |
parent | 075471f041516c31c7ea976dae03b5a771d6910d (diff) | |
download | universal-indent-gui-tqt-0204f596eb83c452ae7ffeefc728668b414b1f16.tar.gz universal-indent-gui-tqt-0204f596eb83c452ae7ffeefc728668b414b1f16.zip |
Finish off About dialog code
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src')
-rw-r--r-- | src/AboutDialog.cpp | 127 | ||||
-rw-r--r-- | src/AboutDialog.h | 13 | ||||
-rwxr-xr-x | src/AboutDialogBase.ui | 56 | ||||
-rw-r--r-- | src/MainWindow.cpp | 3 | ||||
-rw-r--r-- | src/MainWindow.h | 2 | ||||
-rwxr-xr-x | src/__TODO/AboutDialog.ui | 131 | ||||
-rw-r--r-- | src/__TODO/AboutDialogGraphicsView.cpp | 220 | ||||
-rw-r--r-- | src/__TODO/AboutDialogGraphicsView.h | 57 |
8 files changed, 37 insertions, 572 deletions
diff --git a/src/AboutDialog.cpp b/src/AboutDialog.cpp index ba70156..0af0152 100644 --- a/src/AboutDialog.cpp +++ b/src/AboutDialog.cpp @@ -20,92 +20,24 @@ #include "config.h" #include "AboutDialog.h" -//----#include "UiGuiVersion.h" - -//----#include <tqurl.h> -//----#include <tqdesktopservices.h> //----#include <tqlocale.h> #include <tqlabel.h> #include <tqpushbutton.h> -#include <tqpixmap.h> -#include <tqscrollbar.h> -#include <tqtimer.h> +#include <tqfont.h> -/* - \class AboutDialog - \brief Displays a dialog window with information about UniversalIndentGUI -*/ -/* - \brief The constructor calls the setup function for the ui created by uic and adds - the GPL text to the text edit. - */ +// Displays a dialog window with information about UniversalIndentGUI AboutDialog::AboutDialog(TQWidget *parent, WFlags flags) : - AboutDialogBase(parent, NULL, FALSE, flags), m_timer(NULL) + AboutDialogBase(parent, NULL, FALSE, flags) { - // For icon setup - const TQString ICONS_PATH(APP_ICONS_PATH); - - bannerLabel->setPixmap(TQPixmap(ICONS_PATH + "banner.png")); -//---- _dialogForm->authorTextBrowser->setOpenExternalLinks(true); -//---- _dialogForm->creditsTextBrowser->setOpenExternalLinks(true); -//---- -//---- TQString versionString = _dialogForm->versionTextBrowser->toHtml(); -//---- versionString = -//---- versionString.arg(PROGRAM_VERSION_STRING); -//---- _dialogForm->versionTextBrowser->setHtml(versionString); -//---- -//---- _dialogForm->creditsTextBrowser->setHtml("<html><head></head><body>" -//---- "<pre> </br></pre>" -//---- "<h3 align='center'>Thanks go out to</h3>" -//---- "<p align='center'><a href=\"http://www.csie.nctu.edu.tw/~chtai/\"><b>Nelson Tai</b></a> for Chinese translation, good ideas and always fast answers.</p></br>" -//---- "<p align='center'><a href=\"http://www.hartwork.org/\"><b>Sebastian Pipping</b></a> for helping me bring UiGUI into the Debian repository and other good ideas.</p></br>" -//---- "<p align='center'><a href=\"http://korytskyy.lviv.ua/\"><b>Oleksandr</b></a> for Ukrainian and Russian translation.</p></br>" -//---- "<p align='center'><b>Erwan "leg"</b> for French translation and the icon logo.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.scintilla.org/\"><b>Scintilla</b></a> project for their great text editing component.</p></br>" -//---- "<p align='center'><a href=\"http://www.riverbankcomputing.co.uk/software/qscintilla/\"><b>Riverbank</b></a> for their Scintilla TQt wrapper TQScintilla.</p></br>" -//---- "<p align='center'>The <a href=\"http://astyle.sourceforge.net/\"><b>Artistic Style</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://invisible-island.net/bcpp/\"><b>BCPP</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.siber.com/sct/tools/cbl-beau.html\"><b>Cobol Beautifier</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://csstidy.sourceforge.net/\"><b>CSSTidy</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/\"><b>Fortran 90 PPR</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.gnu.org/software/indent/\"><b>GNU Indent</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://sourceforge.net/projects/gcgreatcode/\"><b>GreatCode</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://linux.com.hk/penguin/man/1/hindent.html\"><b>hindent</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.digital-mines.com/htb/\"><b>HTB</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://tidy.sourceforge.net/\"><b>HTML Tidy</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://code.gosu.pl/\"><b>JsDecoder</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://jsppp.sourceforge.net/\"><b>JSPPP</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://perltidy.sourceforge.net/\"><b>Perltidy</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://beautifyphp.sourceforge.net/\"><b>PHP_Beautifier</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.waterproof.fr/products/phpCodeBeautifier/\"><b>phpCB</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://sourceforge.net/projects/phpstylist/\"><b>PHP Stylist</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://coverage.livinglogic.de/Tools/scripts/pindent.py.html\"><b>pindent</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://psti.etquinoxbase.com/\"><b>Pl/Sql tidy</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.arachnoid.com/ruby/rubyBeautifier.html\"><b>Ruby Beautifier</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://raa.ruby-lang.org/project/ruby_formatter/\"><b>Ruby Formatter</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.bolthole.com/AWK.html\"><b>Shell Indent</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://uncrustify.sourceforge.net/\"><b>Uncrustify</b></a> project, specially <b>Ben Gardner</b>.</p></br>" -//---- "<p align='center'>The <a href=\"http://www.daansystems.com/vbsbeaut/\"><b>VBSBeautifier</b></a> project.</p></br>" -//---- "<p align='center'>The <a href=\"http://xmlindent.sourceforge.net/\"><b>XML Indent</b></a> project.</p></br>" -//---- "<p align='center'><b>Nirvash</b> for the initial Japanese translation.</p></br>" -//---- "<p align='center'>The <a href=\"http://tango.freedesktop.org/Tango_Desktop_Project/\"><b>Tango Project</b></a> for their icons.</p></br>" -//---- "<p align='center'><a href=\"http://www.famfamfam.com/\"><b>famfamfam</b></a> for the flag icons.</p></br>" -//---- "<p align='center'><a href=\"http://trolltech.com/\"><b>Trolltech</b></a> for their really great GUI framework <img src=\":/aboutDialog/qt_logo.png\"/>.</p></br>" -//---- "<h3 align='center'>My girlfriend (meanwhile also wife) for putting my head right and not sit all the time in front of my computer ;-)</h3>" -//---- "</body></html>"); -//---- - m_scrollDirection = 1; - m_scrollSpeed = 100; - m_timer = new TQTimer(this); + TQFont titleFont = titleLabel->font(); + titleFont.setPointSize(20); + titleLabel->setFont(titleFont); - connect(m_timer, TQ_SIGNAL(timeout()), this, TQ_SLOT(scroll())); connect(okButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(accept())); } -/* - \brief Catches language change events and retranslates all needed widgets. - */ +// Catches language change events and retranslates all needed widgets. void AboutDialog::changeEvent(TQEvent *event) { //---- if (event->type() == TQEvent::LanguageChange) @@ -123,49 +55,4 @@ void AboutDialog::changeEvent(TQEvent *event) //---- } } -/* - \brief Reimplements the dialog execution function to init the credits scroller. - */ -void AboutDialog::show() -{ -//---- //creditsTextBrowser->verticalScrollBar()->setValue(0); - m_timer->start(m_scrollSpeed); - AboutDialogBase::show(); -} - -/* - \brief This slot is called each m_timer timeout to scroll the credits textbrowser. - Also changes the scroll direction and speed when reaching the start or end. - */ -void AboutDialog::scroll() -{ -//---- TQScrollBar *scrollBar = _dialogForm->creditsTextBrowser->verticalScrollBar(); -//---- scrollBar->setValue(scrollBar->value() + m_scrollDirection); -//---- -//---- if (scrollBar->value() == scrollBar->maximum()) -//---- { -//---- // Toggle scroll direction and change scroll speed; -//---- m_scrollDirection = -1; -//---- m_scrollSpeed = 5; -//---- m_timer->stop(); -//---- m_timer->start(m_scrollSpeed); -//---- } -//---- else if (scrollBar->value() == scrollBar->minimum()) -//---- { -//---- // Toggle scroll direction and change scroll speed; -//---- m_scrollDirection = 1; -//---- m_scrollSpeed = 100; -//---- m_timer->stop(); -//---- m_timer->start(m_scrollSpeed); -//---- } -//---- -//---- _dialogForm->creditsTextBrowser->update(); -} - -void AboutDialog::accept() -{ - m_timer->stop(); - TQDialog::accept(); -} - #include "AboutDialog.moc" diff --git a/src/AboutDialog.h b/src/AboutDialog.h index 9cfb375..a4073e7 100644 --- a/src/AboutDialog.h +++ b/src/AboutDialog.h @@ -30,21 +30,8 @@ class AboutDialog : public AboutDialogBase public: AboutDialog(TQWidget *parent = NULL, WFlags flags = 0); - public slots: - void show(); - - protected slots: - void accept(); - - private slots: - void scroll(); - private: void changeEvent(TQEvent *event); - - int m_scrollDirection; - int m_scrollSpeed; - TQTimer *m_timer; }; #endif // ABOUTDIALOG_H diff --git a/src/AboutDialogBase.ui b/src/AboutDialogBase.ui index b67864e..24dfbf6 100755 --- a/src/AboutDialogBase.ui +++ b/src/AboutDialogBase.ui @@ -2,30 +2,24 @@ <class>AboutDialogBase</class> <widget class="TQDialog"> <property name="name"> - <cstring>AboutDialogBase</cstring> + <cstring>AboutDialogBase</cstring> </property> <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>588</width> - <height>512</height> + <width>500</width> + <height>300</height> </rect> </property> <property name="sizePolicy"> <sizepolicy> <hsizetype>0</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> + <vsizetype>0</vsizetype> + <horstretch>1</horstretch> + <verstretch>1</verstretch> </sizepolicy> </property> - <property name="minimumSize"> - <size> - <width>588</width> - <height>333</height> - </size> - </property> <property name="caption"> <string>About UniversalIndentGUI</string> </property> @@ -38,35 +32,45 @@ <cstring>frame</cstring> </property> <property name="frameShape"> - <enum>StyledPanel</enum> + <enum>NoFrame</enum> </property> <vbox> <widget class="TQLabel"> <property name="name"> - <cstring>bannerLabel</cstring> + <cstring>titleLabel</cstring> </property> <property name="sizePolicy"> <sizepolicy> - <hsizetype>0</hsizetype> + <hsizetype>5</hsizetype> <vsizetype>0</vsizetype> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> - <property name="minimumSize"> - <size> - <width>570</width> - <height>87</height> - </size> + <property name="alignment"> + <enum>AlignHCenter</enum> + </property> + <property name="text"> + <string><qt><b>UniversalIndentGUI-TQt</b><qt></string> + </property> + </widget> + <widget class="TQLabel"> + <property name="name"> + <cstring>authorTextBrowser</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <property name="maximumSize"> - <size> - <width>570</width> - <height>87</height> - </size> + <property name="alignment"> + <enum>AlignHCenter</enum> </property> <property name="text"> - <string></string> + <string><qt>A TQt3 port of UniversalIndentGUI, it provides a GUI for several code formatters, beautifiers and indenters.<br/><br/>TQt3 port by the TDE team.<br/>Original UniversalIndentGUI by Thomas Schweitzer.<br/>Licensed under GPL 2.</qt></string> </property> </widget> <hbox> diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 6edcd5d..b5aed4c 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -31,7 +31,6 @@ #include "UiGuiSettingsDialog.h" #include "UiGuiVersion.h" #include "ToolBarWidget.h" -///-- #include "AboutDialogGraphicsView.h" #include "UiGuiHighlighter.h" #include <tqaction.h> @@ -111,9 +110,7 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : createHighlighterMenu(); // Generate about dialog box - //m_aboutDialog = new AboutDialog(this, WStyle_Splash); m_aboutDialog = new AboutDialog(this); -///-- _aboutDialogGraphicsView = new AboutDialogGraphicsView(m_aboutDialog, this); connect(actionAboutUniversalIndentGUITQt, TQ_SIGNAL(activated()), this, TQ_SLOT(showAboutDialog())); // Generate settings dialog box diff --git a/src/MainWindow.h b/src/MainWindow.h index 0cc4e15..8ff6da6 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -26,7 +26,6 @@ class AboutDialog; -/// class AboutDialogGraphicsView; class UiGuiHighlighter; class IndentHandler; class UiGuiSettings; @@ -109,7 +108,6 @@ class MainWindow : public MainWindowBase UiGuiHighlighter *m_highlighter; ///-- TQScrollBar *m_textEditVScrollBar; AboutDialog *m_aboutDialog; -///-- AboutDialogGraphicsView *_aboutDialogGraphicsView; UiGuiSettingsDialog *m_settingsDialog; int m_actionClearRecentlyOpenedListId; int m_recentlyOpenedListMaxSize; diff --git a/src/__TODO/AboutDialog.ui b/src/__TODO/AboutDialog.ui deleted file mode 100755 index 3415427..0000000 --- a/src/__TODO/AboutDialog.ui +++ /dev/null @@ -1,131 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>AboutDialog</class> - <widget class="TQDialog" name="AboutDialog"> - <property name="windowIcon"> - <iconset resource="../resources/Icons.qrc"> - <normaloff>:/mainWindow/info.png</normaloff>:/mainWindow/info.png</iconset> - </property> - <layout class="TQVBoxLayout"> - <item> - <widget class="TQFrame" name="frame"> - <property name="styleSheet"> - <string notr="true">TQFrame#frame { background-color: qlineargradient( x1:0, y1:0, x2:0, y2:1, stop:0 #FFFF60, stop:0.5 #D8C304, stop:1 #FFFF60 ); border: 2px solid #A89C57; border-radius: 4px;}</string> - </property> - <layout class="TQVBoxLayout"> - <item> - <widget class="TQLabel" name="bannerLabel"> - <property name="pixmap"> - <pixmap resource="../resources/Icons.qrc">:/aboutDialog/banner.png</pixmap> - </property> - </widget> - </item> - <item> - <widget class="TQTextBrowser" name="versionTextBrowser"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>25</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true">TQTextBrowser{background-color:transparent}</string> - </property> - <property name="frameShape"> - <enum>TQFrame::NoFrame</enum> - </property> - <property name="verticalScrollBarPolicy"> - <enum>TQt::ScrollBarAlwaysOff</enum> - </property> - <property name="html"> - <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'sans-serif'; font-size:large;">Version %1 rev.%2, %3</span></p></body></html></string> - </property> - </widget> - </item> - <item> - <widget class="TQTextBrowser" name="authorTextBrowser"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="acceptDrops"> - <bool>false</bool> - </property> - <property name="styleSheet"> - <string notr="true">TQTextBrowser{background-color:transparent}</string> - </property> - <property name="frameShape"> - <enum>TQFrame::NoFrame</enum> - </property> - <property name="verticalScrollBarPolicy"> - <enum>TQt::ScrollBarAlwaysOff</enum> - </property> - <property name="html"> - <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;">... is a cross platform compatible GUI for several code formatter, beautifier and indenter like GreatCode, AStyle (Artistic Styler), GNU Indent, BCPP and so on. Main feature is a live preview to directly see how the selected formatting option affects the source code.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;"><br />Written by : </span><a href="http://www.thomas-schweitzer.de"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium; text-decoration: underline; color:#0000ff;">Thomas Schweitzer</span></a></p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;">Project Homepage : </span><a href="http://universalindent.sourceforge.net"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium; text-decoration: underline; color:#0000ff;">http://universalindent.sourceforge.net</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;">License: UniversalIndentGui is released under the GPL 2. For details read the included file LICENSE.GPL visit </span><a href="http://www.gnu.org/licenses/gpl.html"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium; text-decoration: underline; color:#0000ff;">http://www.gnu.org/licenses/gpl.html</span></a><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;">.</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Trebuchet MS,Helvetica,sans-serif'; font-size:medium;">Credits:</span></p></body></html></string> - </property> - </widget> - </item> - <item> - <widget class="TQTextBrowser" name="creditsTextBrowser"> - <property name="styleSheet"> - <string notr="true">TQTextBrowser#creditsTextBrowser{border:2px solid rgba(0,0,0,10%); background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(0,0,0,80%), stop:0.1 rgba(0,0,0,15%), stop:0.9 rgba(0,0,0,15%), stop:1 rgba(0,0,0,80%) )}</string> - </property> - <property name="frameShape"> - <enum>TQFrame::NoFrame</enum> - </property> - <property name="verticalScrollBarPolicy"> - <enum>TQt::ScrollBarAlwaysOff</enum> - </property> - </widget> - </item> - <item> - <layout class="TQHBoxLayout"> - <item> - <spacer> - <property name="orientation"> - <enum>TQt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>131</width> - <height>31</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="TQPushButton" name="okButton"> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - <resources> - <include location="../resources/Icons.qrc"/> - </resources> -</ui> diff --git a/src/__TODO/AboutDialogGraphicsView.cpp b/src/__TODO/AboutDialogGraphicsView.cpp deleted file mode 100644 index da224d2..0000000 --- a/src/__TODO/AboutDialogGraphicsView.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/*************************************************************************** -* Copyright (C) 2006-2012 by Thomas Schweitzer * -* thomas-schweitzer(at)arcor.de * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License version 2.0 as * -* published by the Free Software Foundation. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program in the file LICENSE.GPL; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ - -#include "AboutDialogGraphicsView.h" - -#include "AboutDialog.h" - -#include <tqtgui.h> -#include <tqdesktopwidget.h> -#include <tqdate.h> -#include <tqtimeline.h> -#include <tqsplashscreen.h> - -/* - \class AboutDialogGraphicsView - \brief A container for the real \a AboutDialog. Makes the 3D animation possible. - - The 3D animation shall suggest the user, that he is looking at his desktop, while - this animation is done. Since this is not directly possible, \a AboutDialogGraphicsView - when shown starts in frameless fullscreen mode with a screenshot of the desktop as background. -*/ - -/* - \brief The constructor initializes everything needed for the 3D animation. - */ -AboutDialogGraphicsView::AboutDialogGraphicsView(AboutDialog *aboutDialog, TQWidget *parentWindow) : - TQGraphicsView(parentWindow), _aboutDialog(NULL), _graphicsProxyWidget(NULL), - _parentWindow(NULL), _timeLine(NULL), _aboutDialogAsSplashScreen(NULL) -{ - _parentWindow = parentWindow; - setWindowFlags(TQt::SplashScreen); - -#ifdef Q_OS_LINUX - TQRect availableGeometry = TQApplication::desktop()->availableGeometry(); - TQRect newGeometry = TQRect(availableGeometry.x(), - availableGeometry.y(), availableGeometry.width(), availableGeometry.height()); -#else - TQRect newGeometry = TQRect(-1, -1, - TQApplication::desktop()->rect().width() + 2, - TQApplication::desktop()->rect().height() + 2); -#endif - setGeometry(newGeometry); - - _aboutDialog = aboutDialog; - - _windowTitleBarWidth = 0; - _windowPosOffset = 0; - - TQGraphicsScene *scene = new TQGraphicsScene(this); - setSceneRect(newGeometry); - _aboutDialogAsSplashScreen = new TQSplashScreen(this); - _graphicsProxyWidget = scene->addWidget(_aboutDialogAsSplashScreen); - _graphicsProxyWidget->setWindowFlags(TQt::ToolTip); - - setScene(scene); - setRenderHint(TQPainter::Antialiasing); - - setCacheMode(TQGraphicsView::CacheBackground); - setViewportUpdateMode(TQGraphicsView::BoundingRectViewportUpdate); - - connect(_aboutDialog, TQ_SIGNAL(finished(int)), this, TQ_SLOT(hide())); - - //setWindowOpacity(0.9); - - setVerticalScrollBarPolicy(TQt::ScrollBarAlwaysOff); - setHorizontalScrollBarPolicy(TQt::ScrollBarAlwaysOff); - setStyleSheet("AboutDialogGraphicsView { border: 0px; }"); - - _timeLine = new TQTimeLine(1000, this); - _timeLine->setFrameRange(270, 0); - //_timeLine->setUpdateInterval(10); - //_timeLine->setCurveShape(TQTimeLine::EaseInCurve); - connect(_timeLine, TQ_SIGNAL(frameChanged(int)), this, TQ_SLOT(updateStep(int))); -} - -AboutDialogGraphicsView::~AboutDialogGraphicsView(void) -{ -} - -/* - \brief Grabs a screenshot of the full desktop and shows that as background. Above that background the - AboutDialog 3D animation is shown. Also grabs the content of the AboutDialog itself. - */ -void AboutDialogGraphicsView::show() -{ - // Because on X11 system the window decoration is only available after a widget has been shown - // once, - // we can detect _windowTitleBarWidth here for the first time. - _windowTitleBarWidth = _parentWindow->geometry().y() - _parentWindow->y(); - // If the _windowTitleBarWidth could not be determined, try it a second way. Even the chances are - // low to get good results. - if (_windowTitleBarWidth == 0) - { - _windowTitleBarWidth = _parentWindow->frameGeometry().height() - - _parentWindow->geometry().height(); - } -#ifdef Q_OS_LINUX - if (_windowTitleBarWidth == 0) - { - //TODO: 27 pixel is a fix value for the Ubuntu 10.4 default window theme and so just a - // workaround for that specific case. - _windowPosOffset = 27; - _windowTitleBarWidth = 27; - } -#endif - TQPixmap originalPixmap = TQPixmap::grabWindow( - TQApplication::desktop()->winId(), - TQApplication::desktop()->availableGeometry().x(), - TQApplication::desktop()->availableGeometry().y(), geometry().width(), - geometry().height()); - TQBrush brush(originalPixmap); - TQTransform transform; - transform.translate(0, TQApplication::desktop()->availableGeometry().y()); - brush.setTransform(transform); - - setBackgroundBrush(brush); - - _aboutDialogAsSplashScreen->setPixmap(TQPixmap::grabWidget(_aboutDialog)); - _graphicsProxyWidget->setGeometry(_aboutDialog->geometry()); - _aboutDialog->hide(); - _graphicsProxyWidget->setPos(_parentWindow->geometry().x() + - (_parentWindow->geometry().width() - _graphicsProxyWidget->geometry().width()) / 2, - _parentWindow->y() + _windowTitleBarWidth - _windowPosOffset); - - TQRectF r = _graphicsProxyWidget->boundingRect(); - _graphicsProxyWidget->setTransform(TQTransform().translate( - r.width() / 2, -_windowTitleBarWidth).rotate(270, TQt::XAxis) - //.rotate(90, TQt::YAxis) - //.rotate(5, TQt::ZAxis) - //.scale(1 + 1.5 * step, 1 + 1.5 * step) - .translate(-r.width() / 2, _windowTitleBarWidth)); - - _graphicsProxyWidget->show(); - //_aboutDialogAsSplashScreen->show(); - TQGraphicsView::show(); - - connect(_timeLine, TQ_SIGNAL(finished()), this, TQ_SLOT(showAboutDialog())); - _timeLine->setDirection(TQTimeLine::Forward); - _timeLine->start(); -} - -/* - \brief Does the next calculation/transformation step. - */ -void AboutDialogGraphicsView::updateStep(int step) -{ - TQRectF r = _graphicsProxyWidget->boundingRect(); - _graphicsProxyWidget->setTransform(TQTransform().translate( - r.width() / 2, -_windowTitleBarWidth).rotate(step, TQt::XAxis) - //.rotate(step, TQt::YAxis) - //.rotate(step * 5, TQt::ZAxis) - //.scale(1 + 1.5 * step, 1 + 1.5 * step) - .translate(-r.width() / 2, _windowTitleBarWidth)); - //update(); -} - -/* - \brief Stops the 3D animation, moves the AboutDialog to the correct place and really shows it. - */ -void AboutDialogGraphicsView::showAboutDialog() -{ - //hide(); - disconnect(_timeLine, TQ_SIGNAL(finished()), this, TQ_SLOT(showAboutDialog())); - _aboutDialog->move(int(_parentWindow->geometry().x() + - (_parentWindow->geometry().width() - _graphicsProxyWidget->geometry().width()) / 2), - _parentWindow->y() + _windowTitleBarWidth - _windowPosOffset); - _aboutDialog->exec(); -} - -/* - \brief Does not directly hide the AboutDialog but instead starts the "fade out" 3D animation. - */ -void AboutDialogGraphicsView::hide() -{ - _graphicsProxyWidget->setPos(_parentWindow->geometry().x() + - (_parentWindow->geometry().width() - _graphicsProxyWidget->geometry().width()) / 2, - _parentWindow->y() + _windowTitleBarWidth - _windowPosOffset); - - TQRectF r = _graphicsProxyWidget->boundingRect(); - _graphicsProxyWidget->setTransform(TQTransform().translate( - r.width() / 2, -_windowTitleBarWidth).rotate(0, TQt::XAxis) - //.rotate(90, TQt::YAxis) - //.rotate(5, TQt::ZAxis) - //.scale(1 + 1.5 * step, 1 + 1.5 * step) - .translate(-r.width() / 2, _windowTitleBarWidth)); - - _graphicsProxyWidget->show(); - //_aboutDialogAsSplashScreen->show(); - TQGraphicsView::show(); - - connect(_timeLine, TQ_SIGNAL(finished()), this, TQ_SLOT(hideReally())); - _timeLine->setDirection(TQTimeLine::Backward); - _timeLine->start(); -} - -/* - \brief This slot really hides this AboutDialog container. - */ -void AboutDialogGraphicsView::hideReally() -{ - disconnect(_timeLine, TQ_SIGNAL(finished()), this, TQ_SLOT(hideReally())); - TQGraphicsView::hide(); - _parentWindow->activateWindow(); -} diff --git a/src/__TODO/AboutDialogGraphicsView.h b/src/__TODO/AboutDialogGraphicsView.h deleted file mode 100644 index 1cc5d37..0000000 --- a/src/__TODO/AboutDialogGraphicsView.h +++ /dev/null @@ -1,57 +0,0 @@ -/*************************************************************************** -* Copyright (C) 2006-2012 by Thomas Schweitzer * -* thomas-schweitzer(at)arcor.de * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License version 2.0 as * -* published by the Free Software Foundation. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program in the file LICENSE.GPL; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ -#ifndef ABOUTDIALOGGRAPHICSVIEW_H -#define ABOUTDIALOGGRAPHICSVIEW_H - -#include <tqgraphicsview.h> - -class AboutDialog; - -class TQTimeLine; -class TQSplashScreen; - - -class AboutDialogGraphicsView : public TQGraphicsView -{ - TQ_OBJECT - - public: - AboutDialogGraphicsView(AboutDialog *aboutDialog, TQWidget *parentWindow = NULL); - ~AboutDialogGraphicsView(void); - - public slots: - void show(); - void hide(); - - private slots: - void updateStep(int step); - void showAboutDialog(); - void hideReally(); - - private: - AboutDialog *_aboutDialog; - TQGraphicsProxyWidget *_graphicsProxyWidget; - TQWidget *_parentWindow; - TQTimeLine *_timeLine; - TQSplashScreen *_aboutDialogAsSplashScreen; - int _windowTitleBarWidth; - int _windowPosOffset; -}; - -#endif // ABOUTDIALOGGRAPHICSVIEW_H |