From 5f4da8b536e997cf0fc0e08e93b3856b07c224c4 Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Mon, 6 Apr 2020 15:03:40 -0400 Subject: [PATCH] settingswidget: add option for enabling or disabling running the application on startup Change-Id: Ie8a9ed96b59c972c937037645c9972472fd32b16 --- src/settingswidget.cpp | 15 +++++++++++++++ src/settingswidget.h | 1 + src/settingswidget.ui | 36 ++++++++++++++++++++++++++++++++---- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/settingswidget.cpp b/src/settingswidget.cpp index 8bf57f6..f91fc63 100644 --- a/src/settingswidget.cpp +++ b/src/settingswidget.cpp @@ -234,6 +234,8 @@ SettingsWidget::SettingsWidget(QWidget* parent) connect(ui->closeOrMinCheckBox, &QAbstractButton::clicked, this, &SettingsWidget::slotSetClosedOrMin); + connect(ui->applicationOnStartUpCheckBox, &QAbstractButton::clicked, this, &SettingsWidget::slotSetRunOnStartUp); + connect(ui->downloadButton, &QAbstractButton::clicked, this, &SettingsWidget::openDownloadFolderSlot); connect(ui->checkUpdateButton, &QAbstractButton::clicked, this, &SettingsWidget::checkForUpdateSlot); @@ -909,6 +911,7 @@ SettingsWidget::populateGeneralSettings() Utils::setElidedText(ui->downloadButton, downloadPath); ui->closeOrMinCheckBox->setChecked(settings.value(SettingsKey::closeOrMinimized).toBool()); + ui->applicationOnStartUpCheckBox->setChecked(Utils::CheckStartupLink(L"Jami")); auto notifs = settings.value(SettingsKey::enableNotifications).toBool(); ui->notificationCheckBox->setChecked(notifs); @@ -952,6 +955,18 @@ SettingsWidget::slotSetClosedOrMin(bool state) settings.setValue(SettingsKey::closeOrMinimized, state); } +void +SettingsWidget::slotSetRunOnStartUp(bool state) +{ + if (Utils::CheckStartupLink(L"Jami")) { + if (!state) { + Utils::DeleteStartupLink(L"Jami"); + } + } else if (state) { + Utils::CreateStartupLink(L"Jami"); + } +} + void SettingsWidget::checkForUpdateSlot() { diff --git a/src/settingswidget.h b/src/settingswidget.h index 2e3b5b1..982bd50 100644 --- a/src/settingswidget.h +++ b/src/settingswidget.h @@ -132,6 +132,7 @@ private slots: void slotSetNotifications(bool state); void checkForUpdateSlot(); void slotSetClosedOrMin(bool state); + void slotSetRunOnStartUp(bool state); void openDownloadFolderSlot(); void openRecordFolderSlot(); void slotAlwaysRecordingClicked(bool state); diff --git a/src/settingswidget.ui b/src/settingswidget.ui index 4291f85..6ae04e7 100644 --- a/src/settingswidget.ui +++ b/src/settingswidget.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>919</width> - <height>690</height> + <width>890</width> + <height>656</height> </rect> </property> <property name="windowTitle"> @@ -39,8 +39,8 @@ <rect> <x>0</x> <y>0</y> - <width>917</width> - <height>688</height> + <width>888</width> + <height>654</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_2"> @@ -668,6 +668,34 @@ </item> </layout> </item> + <item> + <layout class="QHBoxLayout" name="applicationOnStartUpLayout"> + <item> + <widget class="ToggleSwitch" name="applicationOnStartUpCheckBox" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>30</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>10</pointsize> + </font> + </property> + <property name="text" stdset="0"> + <string>Run on Startup</string> + </property> + </widget> + </item> + </layout> + </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_22"> <property name="leftMargin"> -- GitLab