Attempt to fix data loss during session end

This commit is contained in:
Nick Tiskov 2013-02-16 13:23:38 +04:00
parent ee84af0826
commit 28df59b9e6
2 changed files with 2 additions and 3 deletions

View File

@ -103,7 +103,7 @@ MainWindow::MainWindow(QWidget *parent, const QStringList& torrentCmdLine) : QMa
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION))); setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION)));
displaySpeedInTitle = pref.speedInTitleBar(); displaySpeedInTitle = pref.speedInTitleBar();
// Clean exit on log out // Clean exit on log out
connect(static_cast<SessionApplication*>(qApp), SIGNAL(sessionIsShuttingDown()), this, SLOT(deleteBTSession())); connect(static_cast<SessionApplication*>(qApp), SIGNAL(sessionIsShuttingDown()), this, SLOT(deleteBTSession()), Qt::DirectConnection);
// Setting icons // Setting icons
#if defined(Q_WS_X11) #if defined(Q_WS_X11)
if (Preferences().useSystemIconTheme()) if (Preferences().useSystemIconTheme())
@ -334,8 +334,6 @@ void MainWindow::deleteBTSession() {
m_pwr->setActivityState(false); m_pwr->setActivityState(false);
// Save window size, columns size // Save window size, columns size
writeSettings(); writeSettings();
// Accept exit
qApp->exit();
} }
// Destructor // Destructor

View File

@ -42,6 +42,7 @@ QtSingleApplication(id, argc, argv)
void SessionApplication::commitData(QSessionManager & manager) { void SessionApplication::commitData(QSessionManager & manager) {
Q_UNUSED(manager); Q_UNUSED(manager);
emit sessionIsShuttingDown(); emit sessionIsShuttingDown();
manager.release();
} }
bool SessionApplication::notify(QObject* receiver, QEvent* event) { bool SessionApplication::notify(QObject* receiver, QEvent* event) {