Skip to content

Commit 202f2fb

Browse files
committed
2 parents 67daa2a + da2f0d1 commit 202f2fb

File tree

11 files changed

+76
-25
lines changed

11 files changed

+76
-25
lines changed

gui/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,11 @@ set(PROJECT_SOURCES
5151
json_utils.cpp
5252
cool_progressbar.h
5353
cool_progressbar.cpp
54+
davis.rc
5455
)
5556

5657
qt5_add_resources(PROJECT_SOURCES res.qrc)
57-
58+
set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/davis.rc")
5859
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
5960
qt_add_executable(gui
6061

gui/davis_gui.cpp

Lines changed: 60 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,33 @@
44
#include "../davis_one/davis.h"
55

66
#include <QApplication>
7-
#include "QDragEnterEvent"
8-
#include "QMimeData"
9-
#include "QDebug"
10-
#include "QFileInfo"
11-
#include "QPainter"
12-
#include "QMenuBar"
13-
#include "QHBoxLayout"
14-
#include "QPushButton"
15-
#include "QPainterPath"
16-
#include "QFileDialog"
17-
#include "QTextStream"
7+
#include <QDragEnterEvent>
8+
#include <QMimeData>
9+
#include <QDebug>
10+
#include <QFileInfo>
11+
#include <QPainter>
12+
#include <QMenuBar>
13+
#include <QHBoxLayout>
14+
#include <QPushButton>
15+
#include <QPainterPath>
16+
#include <QFileDialog>
17+
#include <QTextStream>
1818
#include <QClipboard>
1919
#include <QPropertyAnimation>
2020
#include <QParallelAnimationGroup>
2121
#include <QStateMachine>
2222
#include <QSignalTransition>
23-
#include <QGraphicsColorizeEffect>
24-
#include <QJsonArray>
25-
#include "QDateTime"
23+
#include <QDateTime>
2624
#include <QProcess>
27-
#include <QJsonObject>
2825
#include <QProgressBar>
2926
#include <QTimer>
3027
#include <QtConcurrent/QtConcurrent>
28+
#include <QScreen>
3129
#include "json_utils.h"
3230

3331

34-
3532
const int ANIMATION_DURATION = 300;
3633

37-
3834
DavisGUI::DavisGUI(QWidget* parent)
3935
: QMainWindow(parent)
4036
, ui(new Ui::DavisGUI) {
@@ -154,27 +150,31 @@ DavisGUI::DavisGUI(QWidget* parent)
154150
connect(this, &DavisGUI::hideProgressBar, barCool, &coolProgressBar::stopAnimation);
155151

156152
qpbOpen = new AnimatedButton("Open", QColor(120, 120, 120), QColor(42, 130, 218), this);
157-
qpbOpen->setGeometry(70, 180, 90, 30);
153+
qpbOpen->setGeometry(65, 180, 90, 30);
158154
qpbOpen->setOriginalGeometry(qpbOpen->geometry());
159155

160156
qpbBuffer = new AnimatedButton("Copy from buffer or Ctrl+V",
161157
QColor(120, 120, 120),
162158
QColor(42, 130, 218),
163159
this);
164-
qpbBuffer->setGeometry(170, 180, 170, 30);
160+
qpbBuffer->setGeometry(165, 180, 170, 30);
165161
qpbBuffer->setOriginalGeometry(qpbBuffer->geometry());
166162

167163
connect(qpbOpen, &QPushButton::released, this, &DavisGUI::selectAndShowFiles);
168164
connect(qpbBuffer, &QPushButton::released, this, &DavisGUI::pasteFromClipboard);
165+
166+
settingsFilePath = "settings.json";
167+
QJsonObject settings = loadSettings(settingsFilePath);
168+
applySettings(settings);
169169
}
170170

171171
DavisGUI::~DavisGUI() {
172+
saveSettings(settingsFilePath);
172173
delete ui;
173174
}
174175

175176
void DavisGUI::show() {
176177
QMainWindow::show();
177-
setMaxStyleWindow(0);
178178
}
179179

180180
void DavisGUI::hideElementsDuringResize() {
@@ -188,6 +188,46 @@ void DavisGUI::hideElementsDuringResize() {
188188
update();
189189
}
190190

191+
void DavisGUI::saveSettings(const QString& fileName) {
192+
QJsonObject settings;
193+
settings["windowPosX"] = pos().x();
194+
settings["windowPosY"] = pos().y();
195+
settings["isMinStyleWindow"] = m_isMinStyleWindow;
196+
197+
bool isSaved = jsn::saveJsonObjectToFile(fileName, settings);
198+
if (!isSaved) {
199+
qWarning("Couldn't save settings file.");
200+
}
201+
return;
202+
}
203+
204+
QJsonObject DavisGUI::loadSettings(const QString& fileName) {
205+
QJsonObject settings;
206+
bool isOpen = jsn::getJsonObjectFromFile(fileName, settings);
207+
if (!isOpen) {
208+
QScreen* screen = QGuiApplication::primaryScreen();
209+
QRect screenGeometry = screen->geometry();
210+
int x = (screenGeometry.width() - width()) / 2;
211+
int y = (screenGeometry.height() - height()) / 2;
212+
settings["windowPosX"] = x;
213+
settings["windowPosY"] = y;
214+
settings["isMinStyleWindow"] = false;;
215+
}
216+
return settings;
217+
}
218+
219+
void DavisGUI::applySettings(const QJsonObject& settings) {
220+
m_isMinStyleWindow = settings["isMinStyleWindow"].toBool();
221+
if (m_isMinStyleWindow) {
222+
setMinStyleWindow(0);
223+
} else {
224+
setMaxStyleWindow(0);
225+
}
226+
int x = settings["windowPosX"].toInt();
227+
int y = settings["windowPosY"].toInt();
228+
move(x, y);
229+
}
230+
191231
void DavisGUI::readJsonToPlot(const QString& pathToFile) {
192232
QJsonObject user_stamp_keys;
193233
if (jsn::getJsonObjectFromFile("user_keys_list.json", user_stamp_keys) == false) {

gui/davis_gui.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "about_window.h"
66
#include "QAction"
77
#include "animated_button.h"
8+
#include <QJsonObject>
89
#include "QJsonArray"
910
#include "cool_progressbar.h"
1011

@@ -43,6 +44,9 @@ class DavisGUI : public QMainWindow {
4344
QString& outY);
4445
void visualizeFiles(const QStringList& file_list);
4546
void hideElementsDuringResize();
47+
void saveSettings(const QString& fileName);
48+
QJsonObject loadSettings(const QString& fileName);
49+
void applySettings(const QJsonObject& settings);
4650
void readJsonToPlot(const QString& pathToFile);
4751

4852
private slots:
@@ -60,6 +64,7 @@ class DavisGUI : public QMainWindow {
6064
bool m_isMinStyleWindow;
6165
AnimatedButton* qpbBuffer;
6266
AnimatedButton* qpbOpen;
67+
QString settingsFilePath;
6368
QJsonArray service_json_keys;
6469
coolProgressBar* barCool;
6570

gui/davis_gui.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<string notr="true">background-color: rgb(255, 255, 0) ;</string>
5959
</property>
6060
<property name="text">
61-
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:16pt; color:#969696;&quot;&gt;drag &amp;amp; drop&lt;br/&gt;text file(s) containing&lt;br/&gt;numbers for visualize&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
61+
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:25pt; font-weight:700; color:#969696;&quot;&gt;drag &amp;amp; drop&lt;/span&gt;&lt;span style=&quot; font-size:16pt; color:#969696;&quot;&gt;&lt;br/&gt;text file(s) containing&lt;br/&gt;numbers for visualize&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
6262
</property>
6363
</widget>
6464
<widget class="QLabel" name="label_doc">

gui/json_utils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ bool getJsonArrayFromFile(const QString& path,
2121

2222
bool saveJsonObjectToFile(const QString& path,
2323
const QJsonObject& json_object,
24-
QJsonDocument::JsonFormat format);
24+
QJsonDocument::JsonFormat format = QJsonDocument::Indented);
2525

2626
bool saveJsonArrayToFile(const QString& path,
2727
const QJsonArray& json_object,
28-
QJsonDocument::JsonFormat format);
28+
QJsonDocument::JsonFormat format = QJsonDocument::Indented);
2929

3030
QPair<bool, QJsonObject> getJsonObjectFromFileIfUserKeysExist(const QString& path,
3131
const QJsonArray& service_keys,

gui/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
#include "QDebug"
66
#include "QUrl"
77
#include "QStyleFactory"
8-
98
#include <QApplication>
109

10+
1111
void applyDark() {
1212
qApp->setStyle(QStyleFactory::create("Fusion"));
1313
QPalette darkPalette;

gui/res/icon/D-256x256.ico

42.3 KB
Binary file not shown.

gui/res/icon/D-32x32.ico

4.19 KB
Binary file not shown.

gui/res/icon/davis256x256.ico

11.6 KB
Binary file not shown.

gui/res/icon/davis32x32.ico

4.19 KB
Binary file not shown.

0 commit comments

Comments
 (0)