diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2014-02-07 16:34:42 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-02-08 07:18:40 -0800 |
commit | d66e4b5236441f3ac83a314055e4981571197d86 (patch) | |
tree | 5ae9b7dada6f7b597596e03e69f57059f3b54b77 /qt-ui | |
parent | 86bc3bd58fd36057660024dcfe4bb1eaad2a4b0c (diff) | |
download | subsurface-d66e4b5236441f3ac83a314055e4981571197d86.tar.gz |
Fix the 'Empty' profile state that was broken for ages.
Show a nice poster that Luisa did for Subsurface ( we have a few other
options that I'm waiting her to send. )
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 58 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.h | 11 |
2 files changed, 58 insertions, 11 deletions
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 061beefb0..8bef3f184 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -9,6 +9,7 @@ #include "diveeventitem.h" #include "divetextitem.h" #include "divetooltipitem.h" +#include "animationfunctions.h" #include <QStateMachine> #include <QSignalTransition> #include <QPropertyAnimation> @@ -76,8 +77,9 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : setupItemSizes(); setupItemOnScene(); addItemsToScene(); - scene()->installEventFilter(this); + setEmptyState(); + #ifndef QT_NO_DEBUG QTableView *diveDepthTableView = new QTableView(); diveDepthTableView->setModel(dataModel); @@ -112,6 +114,7 @@ void ProfileWidget2::addItemsToScene() void ProfileWidget2::setupItemOnScene() { + background->setZValue(9999); toolTipItem->setTimeAxis(timeAxis); gasYAxis->setOrientation(DiveCartesianAxis::BottomToTop); @@ -296,16 +299,17 @@ void ProfileWidget2::settingsChanged() void ProfileWidget2::resizeEvent(QResizeEvent* event) { QGraphicsView::resizeEvent(event); DiveRectItem *depthController; - DiveRectItem *timeController; - fitInView(sceneRect(), Qt::IgnoreAspectRatio); + fixBackgroundPos(); } void ProfileWidget2::fixBackgroundPos() { - QPixmap toBeScaled(":background"); - if (toBeScaled.isNull()) - return; + QPixmap toBeScaled; + if (!backgrounds.keys().contains(backgroundFile)){ + backgrounds[backgroundFile] = QPixmap(backgroundFile); + } + toBeScaled = backgrounds[backgroundFile]; QPixmap p = toBeScaled.scaledToHeight(viewport()->height()); int x = viewport()->width() / 2 - p.width() / 2; background->setPixmap(p); @@ -363,3 +367,45 @@ bool ProfileWidget2::eventFilter(QObject *object, QEvent *event) } return QGraphicsView::eventFilter(object, event); } + +void ProfileWidget2::setEmptyState() +{ + // Then starting Empty State, move the background up. + if (currentState == EMPTY) + return; + + backgroundFile = QString(":poster%1").arg( rand()%3 +1); + currentState = EMPTY; + fixBackgroundPos(); + background->setVisible(true); + Animations::moveTo(background, background->x(), 0); + + toolTipItem->setVisible(false); + profileYAxis->setVisible(false); + gasYAxis->setVisible(false); + temperatureAxis->setVisible(false); + timeAxis->setVisible(false); + diveProfileItem->setVisible(false); + cylinderPressureAxis->setVisible(false); + temperatureItem->setVisible(false); + gasPressureItem->setVisible(false); + cartesianPlane->setVisible(false); + meanDepth->setVisible(false); + diveComputerText->setVisible(false); + diveCeiling->setVisible(false); + reportedCeiling->setVisible(false); + pn2GasItem->setVisible(false); + pheGasItem->setVisible(false); + po2GasItem->setVisible(false); + Q_FOREACH(DiveCalculatedTissue *tissue, allTissues){ + tissue->setVisible(false); + } + Q_FOREACH(DiveEventItem *event, eventItems){ + event->setVisible(false); + } +} + +void ProfileWidget2::setProfileState() +{ + +} diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h index b837376d3..ebc45f48a 100644 --- a/qt-ui/profile/profilewidget2.h +++ b/qt-ui/profile/profilewidget2.h @@ -55,14 +55,13 @@ public: public slots: // Necessary to call from QAction's signals. void settingsChanged(); + void setEmptyState(); + void setProfileState(); + protected: virtual void resizeEvent(QResizeEvent* event); virtual void wheelEvent(QWheelEvent* event); virtual void mouseMoveEvent(QMouseEvent* event); - -signals: - void startProfileState(); - void startEmptyState(); private: /*methods*/ void fixBackgroundPos(); void scrollViewTo(const QPoint& pos); @@ -74,7 +73,9 @@ private: DivePlotDataModel *dataModel; State currentState; int zoomLevel; - DivePixmapItem *background ; + QHash<QString, QPixmap> backgrounds; + DivePixmapItem *background; + QString backgroundFile; ToolTipItem *toolTipItem; // All those here should probably be merged into one structure, // So it's esyer to replicate for more dives later. |