blob: 01a0afa2170b1caa7d92914339a07bae4c7bd4cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
/*
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
This file is part of Mod Organizer.
Mod Organizer is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Mod Organizer is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
#include "tutorabledialog.h"
#include "nxmaccessmanager.h"
#include <iplugin.h>
#include <QListWidgetItem>
class PluginContainer;
class Settings;
namespace Ui {
class SettingsDialog;
}
/**
* dialog used to change settings for Mod Organizer. On top of the
* settings managed by the "Settings" class, this offers a button to open the
* CategoriesDialog
**/
class SettingsDialog : public MOBase::TutorableDialog
{
Q_OBJECT
public:
explicit SettingsDialog(
PluginContainer *pluginContainer, Settings* settings, QWidget *parent = 0);
~SettingsDialog();
/**
* @brief get stylesheet of settings buttons with colored background
* @return string of stylesheet
*/
QString getColoredButtonStyleSheet() const;
Ui::SettingsDialog *ui;
public slots:
virtual void accept();
signals:
void retryApiConnection();
private:
void storeSettings(QListWidgetItem *pluginItem);
void normalizePath(QLineEdit *lineEdit);
public:
QString getExecutableBlacklist() { return m_ExecutableBlacklist; }
void setExecutableBlacklist(QString blacklist) { m_ExecutableBlacklist = blacklist; }
bool getResetGeometries();
bool getApiKeyChanged();
private slots:
void on_associateButton_clicked();
void on_baseDirEdit_editingFinished();
void on_browseBaseDirBtn_clicked();
void on_browseCacheDirBtn_clicked();
void on_browseDownloadDirBtn_clicked();
void on_browseGameDirBtn_clicked();
void on_browseModDirBtn_clicked();
void on_browseOverwriteDirBtn_clicked();
void on_browseProfilesDirBtn_clicked();
void on_bsaDateBtn_clicked();
void on_cacheDirEdit_editingFinished();
void on_clearCacheButton_clicked();
void on_downloadDirEdit_editingFinished();
void on_execBlacklistBtn_clicked();
void on_modDirEdit_editingFinished();
void on_nexusConnect_clicked();
void on_nexusDisconnect_clicked();
void on_nexusManualKey_clicked();
void on_overwriteDirEdit_editingFinished();
void on_pluginsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
void on_profilesDirEdit_editingFinished();
void on_resetGeometryBtn_clicked();
void deleteBlacklistItem();
private:
Settings* m_settings;
PluginContainer *m_PluginContainer;
bool m_GeometriesReset;
bool m_keyChanged;
QString m_ExecutableBlacklist;
std::unique_ptr<NexusSSOLogin> m_nexusLogin;
std::unique_ptr<NexusKeyValidator> m_nexusValidator;
void validateKey(const QString& key);
bool setKey(const QString& key);
bool clearKey();
void updateNexusState();
void updateNexusButtons();
void updateNexusData();
void onSSOKeyChanged(const QString& key);
void onSSOStateChanged(NexusSSOLogin::States s, const QString& e);
void onValidatorStateChanged(NexusKeyValidator::States s, const QString& e);
void onValidatorFinished(const APIUserAccount& user);
void addNexusLog(const QString& s);
};
#endif // SETTINGSDIALOG_H
|