summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-03-11 18:54:28 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-03-11 17:42:42 -0700
commit9cc942376e3b9b709de9bb9c58f9ae63ab1502e0 (patch)
tree0f7624af7fec3a6464d24718acec432635f99a1b
parentb758210c193114901fa0698658ef190b2a0d3c94 (diff)
downloadsubsurface-9cc942376e3b9b709de9bb9c58f9ae63ab1502e0.tar.gz
Only anim if not first dive when openning subsurface with a divelog.
The animation appeared when the user started subsurface with a default file, wich was a little annoying since it didn't had a 'from' position to go and it was also increasing it's size on some window managers that do subtle windows animations when a program starts. This patch treats the first dive opened when the program loads with a divelog pa rameter differently as the following ones storing the velocity value on a temporary, and reassigning it later. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--main.cpp6
-rw-r--r--qt-ui/mainwindow.cpp10
-rw-r--r--qt-ui/mainwindow.h3
-rw-r--r--qt-ui/profile/profilewidget2.cpp16
4 files changed, 33 insertions, 2 deletions
diff --git a/main.cpp b/main.cpp
index 229696055..e5a53a3d8 100644
--- a/main.cpp
+++ b/main.cpp
@@ -48,8 +48,10 @@ int main(int argc, char **argv)
files.push_back(QString(prefs.default_filename));
}
parse_xml_exit();
- MainWindow::instance()->loadFiles(files);
- MainWindow::instance()->importFiles(importedFiles);
+ MainWindow *m = MainWindow::instance();
+ m->setLoadedWithFiles( !files.isEmpty() || !importedFiles.isEmpty());
+ m->loadFiles(files);
+ m->importFiles(importedFiles);
if (!quit)
run_ui();
exit_ui();
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 34ff4baf4..426e979f7 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -85,6 +85,16 @@ MainWindow::~MainWindow()
m_Instance = NULL;
}
+void MainWindow::setLoadedWithFiles(bool f)
+{
+ filesAsArguments = f;
+}
+
+bool MainWindow::filesFromCommandLine() const
+{
+ return filesAsArguments;
+}
+
MainWindow *MainWindow::instance()
{
return m_Instance;
diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h
index 70b9793f7..94655e516 100644
--- a/qt-ui/mainwindow.h
+++ b/qt-ui/mainwindow.h
@@ -78,6 +78,8 @@ public:
void cleanUpEmpty();
void setToolButtonsEnabled(bool enabled);
ProfileWidget2 *graphics() const;
+ void setLoadedWithFiles(bool filesFromCommandLine);
+ bool filesFromCommandLine() const;
private
slots:
/* file menu action */
@@ -165,6 +167,7 @@ private:
void saveSplitterSizes();
QString lastUsedDir();
void updateLastUsedDir(const QString &s);
+ bool filesAsArguments;
};
MainWindow *mainWindow();
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index d03d0dc83..0a4062ec1 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -316,12 +316,23 @@ void ProfileWidget2::setupSceneAndFlags()
// Currently just one dive, but the plan is to enable All of the selected dives.
void ProfileWidget2::plotDives(QList<dive *> dives)
{
+ static bool firstCall = true;
+
// I Know that it's a list, but currently we are
// using just the first.
struct dive *d = dives.first();
if (!d)
return;
+ int animSpeedBackup = -1;
+ if(firstCall && MainWindow::instance()->filesFromCommandLine()){
+ QSettings s;
+ s.beginGroup("Animations");
+ animSpeedBackup = s.value("animation_speed",500).toInt();
+ s.setValue("animation_speed",0);
+ firstCall = false;
+ }
+
// restore default zoom level and tooltip position
if (zoomLevel) {
const qreal defScale = 1.0 / qPow(zoomFactor, (qreal)zoomLevel);
@@ -431,6 +442,11 @@ void ProfileWidget2::plotDives(QList<dive *> dives)
// qDebug() << event->getEvent()->name << "@" << event->getEvent()->time.seconds;
}
diveComputerText->setText(currentdc->model);
+ if (MainWindow::instance()->filesFromCommandLine() && animSpeedBackup != -1){
+ QSettings s;
+ s.beginGroup("Animations");
+ s.setValue("animation_speed",animSpeedBackup);
+ }
}
void ProfileWidget2::settingsChanged()