summaryrefslogtreecommitdiffstats
path: root/src/__TODO/AboutDialogGraphicsView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/__TODO/AboutDialogGraphicsView.cpp')
-rw-r--r--src/__TODO/AboutDialogGraphicsView.cpp220
1 files changed, 0 insertions, 220 deletions
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();
-}