diff options
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/saverwidget.cpp | 18 |
2 files changed, 17 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3079871..63ebcd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,13 +5,13 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) # project name project(bwlp-screensaver) -set(CMAKE_BUILD_TYPE Debug) -set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall -Wextra -pedantic -Werror -Wno-multichar") +set(CMAKE_BUILD_TYPE Release) +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall -Wextra -pedantic -Werror") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wno-multichar") set(CMAKE_CXX_STANDARD 11) # Some cmake versions can't understand the CMAKE_CXX_STANDARD option above? -SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" ) +SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-multichar -Wno-error=deprecated-declarations" ) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) diff --git a/src/saverwidget.cpp b/src/saverwidget.cpp index 13340a0..1a4a14c 100644 --- a/src/saverwidget.cpp +++ b/src/saverwidget.cpp @@ -21,7 +21,7 @@ static QString formatTime(qlonglong span) qlonglong days = span / 86400; if (days > 0) { ret = QString::number(days) + "d "; - span += 86400 * days; + span -= 86400 * days; } return ret + QString("%1:%2:%3").arg(span / 3600, 2, 10, C_ZERO).arg((span % 3600) / 60, 2, 10, C_ZERO).arg(span % 60, 2, 10, C_ZERO); } @@ -113,12 +113,17 @@ void SaverWidget::reloadValues() connect(_unixSocket, &QLocalSocket::connected, [=]() { qDebug() << "Connected to daewmweon"; _unixSocket->write((QLatin1String("get ") + _display).toLocal8Bit()); - QTimer::singleShot(1000, [this]() { + QTimer::singleShot(2000, [this]() { _unixSocket->disconnectFromServer(); + this->parseDaemonData(); }); }); connect(_unixSocket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error), [=](QLocalSocket::LocalSocketError err) { - qDebug() << "Local socket error:" << err; + if (err != QLocalSocket::PeerClosedError) { + qDebug() << "Local socket error:" << err; + } else { + this->parseDaemonData(); + } }); connect(_unixSocket, &QLocalSocket::disconnected, this, &SaverWidget::parseDaemonData); _unixSocket->connectToServer("/run/idle-daemon"); @@ -131,8 +136,9 @@ void SaverWidget::parseDaemonData() #define SEC_NONE 0 #define SEC_GENERAL 1 #define SEC_ME 2 -#define STORE(x) else if (key == QLatin1String( #x )) x = value.toString() +#define STORE(x) else if (key == QLatin1String( #x )) ok++, x = value.toString() int sec = SEC_NONE; + int ok = 0; QString nextAction, nextActionTime, logoutTime, locked; while (!ts.atEnd()) { line = ts.readLine(); @@ -142,8 +148,10 @@ void SaverWidget::parseDaemonData() // Section if (line == QLatin1String("[General]")) { sec = SEC_GENERAL; + ok++; } else if ( line == "[" + _display + "]") { sec = SEC_ME; + ok++; } else { sec = SEC_NONE; } @@ -165,6 +173,8 @@ void SaverWidget::parseDaemonData() } } } + if (ok < 3) + return; // Bad data received, ignore if (nextAction.isEmpty() || nextAction == QLatin1String("none") || nextActionTime.isEmpty()) { _shutdownDeadline = 0; } else { |