forked from palindromiq/YATE
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettingsdialog.cpp
More file actions
114 lines (95 loc) · 2.92 KB
/
Copy pathsettingsdialog.cpp
File metadata and controls
114 lines (95 loc) · 2.92 KB
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
#include "settingsdialog.h"
#include "ui_settingsdialog.h"
#include <QSettings>
#include <QFileDialog>
#include <QDropEvent>
#include <QDragEnterEvent>
#include <QMimeData>
#include <QStandardPaths>
#include "globals.h"
#include "yatewindow.h"
namespace Yate {
SettingsDialog::SettingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SettingsDialog), settings_(new QSettings(this))
{
ui->setupUi(this);
reloadSettings();
setAcceptDrops(true);
}
void SettingsDialog::setEEFilePath(QString &path)
{
ui->lblLogFilePath->setText(path);
}
void SettingsDialog::reloadSettings()
{
if (!settings_->value(SETTINGS_KEY_EE_LOG).isNull()) {
QString pth = settings_->value(SETTINGS_KEY_EE_LOG).toString();
setEEFilePath(pth);
}
if (!settings_->value(SETTINGS_KEY_FEEDBACK_FONT).isNull()) {
int font = settings_->value(SETTINGS_KEY_FEEDBACK_FONT).toInt();
ui->spnFeedbackFont->setValue(font);
}
}
void SettingsDialog::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls()) {
e->acceptProposedAction();
}
}
void SettingsDialog::dropEvent(QDropEvent *e)
{
foreach (const QUrl &url, e->mimeData()->urls()) {
QString fileName = url.toLocalFile();
setEEFilePath(fileName);
break;
}
}
SettingsDialog::~SettingsDialog()
{
delete ui;
}
void SettingsDialog::on_btnSave_clicked()
{
this->accept();
if(!ui->lblLogFilePath->text().isEmpty()) {
settings_->setValue(SETTINGS_KEY_EE_LOG, ui->lblLogFilePath->text().trimmed());
YATEWindow *parentW = dynamic_cast<YATEWindow*>(parentWidget());
if (parentW) {
parentW->setLogFilePath(ui->lblLogFilePath->text().trimmed());
}
}
settings_->setValue(SETTINGS_KEY_FEEDBACK_FONT, ui->spnFeedbackFont->value());
}
void SettingsDialog::on_btnCancel_clicked()
{
this->reject();
}
void SettingsDialog::on_btnBrowseLogPath_clicked()
{
QString newPath = QFileDialog::getOpenFileName(this, tr("EE.log file"), QFileInfo( ui->lblLogFilePath->text()).dir().absolutePath(), tr("Log File (*.log)"));
if(newPath.length()) {
setEEFilePath(newPath);
}
}
void SettingsDialog::on_btnResetFeedback_clicked()
{
settings_->remove(SETTINGS_KEY_FEEDBACK_POS_X);
settings_->remove(SETTINGS_KEY_FEEDBACK_POS_Y);
}
void SettingsDialog::on_btnDefaultPath_clicked()
{
QString appDataPath;
QStringList appDataLocations = QStandardPaths::standardLocations(QStandardPaths::AppLocalDataLocation);
if (!appDataLocations.length()) {
appDataPath = QDir::homePath() + QDir::separator() + "AppData" + QDir::separator() + "Local";
} else {
appDataPath = appDataLocations.first();
appDataPath = QFileInfo(appDataPath).dir().absolutePath(); // Up one directory
appDataPath = QFileInfo(appDataPath).dir().absolutePath(); // Up one directory
}
QString path = QDir(appDataPath).filePath(PATH_EE_LOG_RELATIVE);
setEEFilePath(path);
}
}