Skip to content

Commit 21b8763

Browse files
author
ThePBone
committed
Add option to delay autostart by 5 seconds
1 parent 0730a74 commit 21b8763

File tree

6 files changed

+32
-12
lines changed

6 files changed

+32
-12
lines changed

dialog/firstlaunchwizard.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ FirstLaunchWizard::FirstLaunchWizard(AppConfigWrapper* _appconf, MainWindow* mai
9393
auto systray_autostart_radio = [this,autostart_path,mainwin]{
9494
if(ui->p3_systray_minOnBoot->isChecked()){
9595
AutostartManager::saveDesktopFile(autostart_path,mainwin->GetExecutablePath(),
96-
ui->p3_systray_autostartViper->isChecked());
96+
ui->p3_systray_autostartViper->isChecked(),
97+
AutostartManager::inspectDesktopFile(autostart_path,AutostartManager::Delayed));
9798
}
9899
else QFile(autostart_path).remove();
99100
ui->p3_systray_autostartViper->setEnabled(ui->p3_systray_minOnBoot->isChecked());

dialog/settings.ui

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
<item>
114114
<widget class="QStackedWidget" name="stackedWidget">
115115
<property name="currentIndex">
116-
<number>1</number>
116+
<number>4</number>
117117
</property>
118118
<widget class="QWidget" name="general">
119119
<layout class="QVBoxLayout" name="verticalLayout_2">
@@ -806,6 +806,13 @@
806806
</property>
807807
</widget>
808808
</item>
809+
<item>
810+
<widget class="QCheckBox" name="systray_delay">
811+
<property name="text">
812+
<string>Delay autostart by 5 seconds</string>
813+
</property>
814+
</widget>
815+
</item>
809816
</layout>
810817
</widget>
811818
</item>

dialog/settingsdlg.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,16 @@ SettingsDlg::SettingsDlg(MainWindow* mainwin,QWidget *parent) :
145145
auto autostart_update = [this,mainwin,autostart_path]{
146146
if(ui->systray_minOnBoot->isChecked()){
147147
AutostartManager::saveDesktopFile(autostart_path,mainwin->GetExecutablePath(),
148-
ui->systray_autostartViper->isChecked());
148+
ui->systray_autostartViper->isChecked(),
149+
ui->systray_delay->isChecked());
149150
}
150151
else QFile(autostart_path).remove();
151152
ui->systray_autostartViper->setEnabled(ui->systray_minOnBoot->isChecked());
153+
ui->systray_delay->setEnabled(ui->systray_minOnBoot->isChecked());
152154
};
153155
connect(ui->systray_minOnBoot,&QPushButton::clicked,this,autostart_update);
154156
connect(ui->systray_autostartViper,&QPushButton::clicked,this,autostart_update);
155-
157+
connect(ui->systray_delay,&QPushButton::clicked,this,autostart_update);
156158

157159
auto change_theme_mode = [this]{
158160
if(lockslot)return;
@@ -425,10 +427,13 @@ void SettingsDlg::refreshAll(){
425427

426428
bool autostart_enabled = AutostartManager::inspectDesktopFile(autostart_path,AutostartManager::Exists);
427429
bool autostartviper_enabled = AutostartManager::inspectDesktopFile(autostart_path,AutostartManager::UsesViperAutostart);
430+
bool autostart_delayed = AutostartManager::inspectDesktopFile(autostart_path,AutostartManager::Delayed);
428431

429432
ui->systray_minOnBoot->setChecked(autostart_enabled);
430433
ui->systray_autostartViper->setEnabled(autostart_enabled);
431434
ui->systray_autostartViper->setChecked(autostartviper_enabled);
435+
ui->systray_delay->setEnabled(autostart_enabled);
436+
ui->systray_delay->setChecked(autostart_delayed);
432437

433438
ui->deftab_favorite->setChecked(!appconf->getConv_DefTab());
434439
ui->deftab_filesys->setChecked(appconf->getConv_DefTab());

mainwindow.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ MainWindow::MainWindow(QString exepath, bool statupInTray, bool allowMultipleIns
155155
if(!m_appwrapper->getIntroShown())
156156
LaunchFirstRunSetup();
157157
else
158-
RunDiagnosticChecks();
158+
QTimer::singleShot(300,this,[this]{
159+
RunDiagnosticChecks();
160+
});
159161

160162
//setStyle(new PhantomStyle);
161163
}

misc/autostartmanager.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ AutostartManager::AutostartManager()
1010
}
1111

1212
void AutostartManager::saveDesktopFile(QString path, const QString& exepath,
13-
bool enableAutostartViper){
13+
bool enableAutostartViper, bool delayed){
1414
ConfigContainer* conf = new ConfigContainer();
15-
conf->setValue("Exec",QString("%1 --tray%2").arg(exepath).arg(enableAutostartViper ? " --startviper" : ""));
15+
conf->setValue("Exec",QString("%0%1 --tray%2%3")
16+
.arg(delayed ? "sleep 5s && " : "")
17+
.arg(exepath)
18+
.arg(enableAutostartViper ? " --startviper" : "")
19+
.arg(delayed ? " &" : ""));
1620
conf->setValue("Name","Viper4Linux2-GUI Systray");
1721
conf->setValue("StartupNotify",false);
1822
conf->setValue("Terminal",false);
@@ -28,14 +32,14 @@ void AutostartManager::saveDesktopFile(QString path, const QString& exepath,
2832

2933
bool AutostartManager::inspectDesktopFile(const QString& path, InspectionMode mode){
3034
ConfigContainer conf;
35+
conf.setConfigMap(ConfigIO::readFile(path));
3136
switch(mode){
3237
case UsesViperAutostart:
33-
conf.setConfigMap(ConfigIO::readFile(path));
3438
return conf.getString("Exec").contains("--startviper");
35-
break;
39+
case Delayed:
40+
return conf.getString("Exec").contains("sleep 5s");
3641
case Exists:
3742
return QFile::exists(path);
38-
break;
3943
}
4044
return false;
4145
}

misc/autostartmanager.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ class AutostartManager
2222
public:
2323
typedef enum InspectionMode{
2424
UsesViperAutostart,
25-
Exists
25+
Exists,
26+
Delayed,
2627
}InspectionMode;
2728
AutostartManager();
28-
static void saveDesktopFile(QString path, const QString& exepath, bool enableAutostartViper);
29+
static void saveDesktopFile(QString path, const QString& exepath, bool enableAutostartViper, bool delayed);
2930
static bool inspectDesktopFile(const QString& path, InspectionMode mode);
3031
static QString getAutostartPath(const QString& filename);
3132
};

0 commit comments

Comments
 (0)