summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/saverwidget.cpp18
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 {