diff --git a/lxqt-admin-time/CMakeLists.txt b/lxqt-admin-time/CMakeLists.txt index e3f18a9f..1ac2c6ee 100644 --- a/lxqt-admin-time/CMakeLists.txt +++ b/lxqt-admin-time/CMakeLists.txt @@ -3,7 +3,6 @@ project(lxqt-admin-time) # build static helper class first include_directories ( ${CMAKE_CURRENT_BINARY_DIR} - ${OOBS_INCLUDE_DIRS} ) set ( lxqt-admin-time_HDRS @@ -77,7 +76,6 @@ target_link_libraries(lxqt-admin-time KF5::WindowSystem Qt5::Widgets lxqt - ${OOBS_LIBRARIES} ) install(TARGETS lxqt-admin-time RUNTIME DESTINATION bin) diff --git a/lxqt-admin-time/timeadmindialog.cpp b/lxqt-admin-time/timeadmindialog.cpp index 8580a556..33e39c0f 100644 --- a/lxqt-admin-time/timeadmindialog.cpp +++ b/lxqt-admin-time/timeadmindialog.cpp @@ -39,12 +39,8 @@ #define ZONETAB_PATH "/usr/share/zoneinfo/zone.tab" TimeAdminDialog::TimeAdminDialog(QWidget *parent): - LXQt::ConfigDialog(tr("Time and date configuration"),new LXQt::Settings("TimeDate"), parent), - mTimeConfig(OOBS_TIME_CONFIG(oobs_time_config_get())), - mUserLogedIn(false) + LXQt::ConfigDialog(tr("Time and date configuration"),new LXQt::Settings("TimeDate"), parent) { - oobs_object_update(OOBS_OBJECT(mTimeConfig)); - setMinimumSize(QSize(400,400)); mWindowTitle = windowTitle(); @@ -67,8 +63,6 @@ TimeAdminDialog::TimeAdminDialog(QWidget *parent): TimeAdminDialog::~TimeAdminDialog() { - if(mTimeConfig) - g_object_unref(mTimeConfig); } void TimeAdminDialog::onChanged(bool ch) @@ -93,15 +87,8 @@ void TimeAdminDialog::closeEvent(QCloseEvent *event) //save changes to system if (mWidgetsModified) { - if (logInUser()) - { - saveChangesToSystem(); - event->accept(); - } - else - { - event->ignore(); - } + saveChangesToSystem(); + event->accept(); } } @@ -136,35 +123,11 @@ void TimeAdminDialog::saveChangesToSystem() // FIXME: currently timezone settings does not work. is this a bug of system-tools-backend? if(!timeZone.isEmpty() && mWidgetsModified.testFlag(M_TIMEZONE)) { mTimeDateCtl.setTimeZone(timeZone); - mTimeDateCtl.commit(); } if(mWidgetsModified.testFlag(M_TIMEDATE)) { - QDate d = mDateTimeWidget->dateTime().date(); - QTime t = mDateTimeWidget->dateTime().time(); - // oobs seems to use 0 based month - oobs_time_config_set_time(mTimeConfig, d.year(), d.month() - 1, d.day(), t.hour(), t.minute(), t.second()); - } - oobs_object_commit(OOBS_OBJECT(mTimeConfig)); -} - -bool TimeAdminDialog::logInUser() -{ - if (mUserLogedIn) - return true; - - GError* err = NULL; - if(oobs_object_authenticate(OOBS_OBJECT(mTimeConfig), &err)) - { - mUserLogedIn = true; - return true; + mTimeDateCtl.setDateTime(mDateTimeWidget->dateTime()); } - else if(err) - { - QMessageBox::critical(this, tr("Authentication Error"), QString::fromUtf8(err->message)); - g_error_free(err); - } - - return false; + mTimeDateCtl.commit(); } diff --git a/lxqt-admin-time/timeadmindialog.h b/lxqt-admin-time/timeadmindialog.h index b33f0d50..f2e5b475 100644 --- a/lxqt-admin-time/timeadmindialog.h +++ b/lxqt-admin-time/timeadmindialog.h @@ -26,13 +26,8 @@ * END_COMMON_COPYRIGHT_HEADER */ #include -#include -#include -#include -#include #include "timedatectl.h" - class DateTime; class Timezone; @@ -55,17 +50,14 @@ private Q_SLOTS: void onChanged(bool); private: - bool logInUser(); void saveChangesToSystem(); void loadTimeZones(QStringList & timeZones, QString & currentTimezone); void showChangedStar(); private: TimeDateCtl mTimeDateCtl; - OobsTimeConfig* mTimeConfig; DateTime * mDateTimeWidget; Timezone * mTimezoneWidget; - bool mUserLogedIn; QString mWindowTitle; widgets_modified_t mWidgetsModified; }; diff --git a/lxqt-admin-time/timedatectl.cpp b/lxqt-admin-time/timedatectl.cpp index 214fd556..e049b56e 100644 --- a/lxqt-admin-time/timedatectl.cpp +++ b/lxqt-admin-time/timedatectl.cpp @@ -24,12 +24,21 @@ TimeDateCtl::TimeDateCtl() bool TimeDateCtl::commit() { + bool success = true; QProcess timedatectl; QStringList args; if(mTimeZoneChanged) { - args << "set-timezone" << mTimeZone; + timedatectl.start(QStringLiteral("timedatectl"), QStringList() << "set-timezone" << mTimeZone); + timedatectl.waitForFinished(); + success = timedatectl.exitCode() == 0; } - timedatectl.start(QStringLiteral("timedatectl"), args); - timedatectl.waitForFinished(); - return timedatectl.exitCode() == 0; + if(!success) + return success; + + if(mTimeChanged) { + timedatectl.start(QStringLiteral("timedatectl"), QStringList() << "set-time" << mDateTime.toString("yyyy-MM-dd hh:mm:ss")); + timedatectl.waitForFinished(); + success = timedatectl.exitCode() == 0; + } + return success; }