aboutsummaryrefslogtreecommitdiff
path: root/src/ui/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/mainwindow.cpp')
-rw-r--r--src/ui/mainwindow.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index b43c65aaf..433727d73 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2009 by Ilya Kotov *
+ * Copyright (C) 2006-2010 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -133,6 +133,8 @@ MainWindow::MainWindow(const QStringList& args, BuiltinCommandLineOption* option
#endif
if (m_startHidden && m_generalHandler->visibilityControl())
toggleVisibility();
+ if(args.isEmpty())
+ resume();
}
@@ -330,12 +332,16 @@ void MainWindow::writeSettings()
//last directory
settings.setValue("last_dir",m_lastDir);
settings.endGroup();
-
// Repeat/Shuffle
settings.beginGroup("Playlist");
settings.setValue("repeatable",m_display->isRepeatable());
settings.setValue("shuffle",m_display->isShuffle());
-
+ settings.endGroup();
+ // playback state
+ settings.beginGroup("General");
+ settings.setValue("resume_playback", m_core->state() == Qmmp::Playing &&
+ settings.value("resume_on_startup", FALSE).toBool());
+ settings.setValue("resume_playback_time", m_core->totalTime() > 0 ? m_core->elapsed() : 0);
settings.endGroup();
}
@@ -603,3 +609,16 @@ void MainWindow::keyPressEvent(QKeyEvent *ke)
ke->modifiers(), ke->text(),ke->isAutoRepeat(), ke->count());
QApplication::sendEvent(m_playlist,&event);
}
+
+void MainWindow::resume()
+{
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("General");
+ if(settings.value("resume_playback", FALSE).toBool())
+ {
+ play();
+ qint64 pos = settings.value("resume_playback_time").toLongLong();
+ if(pos)
+ m_core->seek(pos);
+ }
+}