Skip to content

Commit 8c12f32

Browse files
committed
Version 0.8:
* Minor changes when showing day name in CallDetails. * Loading translation files from 'translations' folder instead of i18n resource. (Will be changed later.) * Main window is now able to resize properly (is going to be refactored later, though).
1 parent c885ee7 commit 8c12f32

File tree

9 files changed

+167
-29
lines changed

9 files changed

+167
-29
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.5)
22

3-
project(PerformanceMeasurer VERSION 0.7 LANGUAGES CXX)
3+
project(PerformanceMeasurer VERSION 0.8 LANGUAGES CXX)
44

55
set(CMAKE_AUTOUIC ON)
66
set(CMAKE_AUTOMOC ON)
@@ -10,7 +10,7 @@ set(CMAKE_CXX_STANDARD 17)
1010
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1111

1212
add_compile_definitions(PROGRAM_NAME="PerformanceMeasurer")
13-
add_compile_definitions(VERSION="0.7")
13+
add_compile_definitions(VERSION="0.8")
1414
add_compile_definitions(AUTHOR="Brayan MS")
1515
add_compile_definitions(THIS_PROGRAM_URL="https://github.com/brookiestein/PerformanceMeasurer")
1616
add_compile_definitions(OTHER_PROJECTS="https://github.com/brookiestein?tab=repositories")

PerformanceMeasurer_es_US.ts

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,17 @@
1414
<translation>Llamadas Registradas de Hoy</translation>
1515
</message>
1616
<message>
17-
<location filename="calldetails.cpp" line="70"/>
17+
<location filename="calldetails.cpp" line="12"/>
18+
<source>%1&apos;s Registered Calls</source>
19+
<translation type="unfinished"></translation>
20+
</message>
21+
<message>
22+
<location filename="calldetails.cpp" line="73"/>
1823
<source>Database couldn&apos;t be opened.</source>
1924
<translation>La base de datos no pudo ser abierta.</translation>
2025
</message>
2126
<message>
22-
<location filename="calldetails.cpp" line="76"/>
27+
<location filename="calldetails.cpp" line="79"/>
2328
<source>Couldn&apos;t execute statement.</source>
2429
<translation>No se pudo ejecutar la sentencia SQL.</translation>
2530
</message>
@@ -84,6 +89,11 @@
8489
<source>today</source>
8590
<translation type="unfinished"></translation>
8691
</message>
92+
<message>
93+
<location filename="chart.cpp" line="122"/>
94+
<source>Today</source>
95+
<translation type="unfinished"></translation>
96+
</message>
8797
</context>
8898
<context>
8999
<name>MainWindow</name>
@@ -196,82 +206,82 @@
196206
<location filename="mainwindow.ui" line="226"/>
197207
<location filename="build/debug/PerformanceMeasurer_autogen/include/ui_mainwindow.h" line="121"/>
198208
<location filename="build/release/PerformanceMeasurer_autogen/include/ui_mainwindow.h" line="121"/>
199-
<location filename="mainwindow.cpp" line="148"/>
209+
<location filename="mainwindow.cpp" line="254"/>
200210
<source>About</source>
201211
<translation>Acerca de</translation>
202212
</message>
203213
<message>
204-
<location filename="mainwindow.cpp" line="29"/>
214+
<location filename="mainwindow.cpp" line="46"/>
205215
<source>User: </source>
206216
<translation>Usuario: </translation>
207217
</message>
208218
<message>
209-
<location filename="mainwindow.cpp" line="71"/>
219+
<location filename="mainwindow.cpp" line="177"/>
210220
<source>You&apos;ve registered %1 %2 today.</source>
211221
<translation>Has registrado %1 %2 hoy.</translation>
212222
</message>
213223
<message>
214-
<location filename="mainwindow.cpp" line="72"/>
224+
<location filename="mainwindow.cpp" line="178"/>
215225
<source>call</source>
216226
<translation>llamada</translation>
217227
</message>
218228
<message>
219-
<location filename="mainwindow.cpp" line="72"/>
229+
<location filename="mainwindow.cpp" line="178"/>
220230
<source>calls</source>
221231
<translation>llamadas</translation>
222232
</message>
223233
<message>
224-
<location filename="mainwindow.cpp" line="76"/>
234+
<location filename="mainwindow.cpp" line="182"/>
225235
<source>%1 call at %2</source>
226236
<translation>%1 llamada a las %2</translation>
227237
</message>
228238
<message>
229-
<location filename="mainwindow.cpp" line="86"/>
239+
<location filename="mainwindow.cpp" line="192"/>
230240
<source>Date: %1, %2 %3</source>
231241
<translation>Fecha: %1, %2 %3</translation>
232242
</message>
233243
<message>
234-
<location filename="mainwindow.cpp" line="143"/>
244+
<location filename="mainwindow.cpp" line="249"/>
235245
<source>&lt;p&gt;Version: %1&lt;/p&gt;&lt;p&gt;Author: %2&lt;/p&gt;&lt;a href=&quot;%3&quot;&gt;This software&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;%4&quot;&gt;Other projects&lt;/a&gt;</source>
236246
<translation>&lt;p&gt;Versión: %1&lt;/p&gt;&lt;p&gt;Autor: %2&lt;/p&gt;&lt;a href=&quot;%3&quot;&gt;Este programa&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;%4&quot;&gt;Otros proyectos&lt;/a&gt;</translation>
237247
</message>
238248
<message>
239-
<location filename="mainwindow.cpp" line="162"/>
249+
<location filename="mainwindow.cpp" line="268"/>
240250
<source>You have to wait a couple of secs to register a new call.</source>
241251
<translation>Debes esperar algunos segundos antes de registrar una nueva llamada.</translation>
242252
</message>
243253
<message>
244-
<location filename="mainwindow.cpp" line="180"/>
254+
<location filename="mainwindow.cpp" line="286"/>
245255
<source>You have to wait a couple of secs to remove a call.</source>
246256
<translation>Debes esperar algunos segundos antes de eliminar una nueva llamada.</translation>
247257
</message>
248258
<message>
249-
<location filename="mainwindow.cpp" line="188"/>
259+
<location filename="mainwindow.cpp" line="294"/>
250260
<source>Registered calls cannot be below zero.</source>
251261
<translation>Llamadas registradas no pueden estar por debajo de cero.</translation>
252262
</message>
253263
<message>
254-
<location filename="mainwindow.cpp" line="214"/>
264+
<location filename="mainwindow.cpp" line="320"/>
255265
<source>Couldn&apos;t execute statement.</source>
256266
<translation>No se pudo ejecutar la sentencia SQL.</translation>
257267
</message>
258268
<message>
259-
<location filename="mainwindow.cpp" line="225"/>
269+
<location filename="mainwindow.cpp" line="331"/>
260270
<source>Calls have been saved.</source>
261271
<translation>Las llamadas han sido guardadas.</translation>
262272
</message>
263273
<message>
264-
<location filename="mainwindow.cpp" line="230"/>
274+
<location filename="mainwindow.cpp" line="336"/>
265275
<source>Last saved at %1</source>
266276
<translation>Último guardado a las %1</translation>
267277
</message>
268278
<message>
269-
<location filename="mainwindow.cpp" line="245"/>
279+
<location filename="mainwindow.cpp" line="351"/>
270280
<source>%1 minute%2%3 </source>
271281
<translation>%1 minuto%2%3 </translation>
272282
</message>
273283
<message>
274-
<location filename="mainwindow.cpp" line="248"/>
284+
<location filename="mainwindow.cpp" line="354"/>
275285
<source>%1 second%2</source>
276286
<translation>%1 segundo%2</translation>
277287
</message>

calldetails.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#include "calldetails.hpp"
22
#include "ui_calldetails.h"
33

4-
CallDetails::CallDetails(Database& db, const QString& datetime, QWidget* parent) :
4+
CallDetails::CallDetails(Database& db, const QString& datetime, const QString& dayname, QWidget* parent) :
55
QWidget(parent)
66
, m_ui(new Ui::CallDetails)
77
, m_db(db)
88
, m_datetime(datetime)
9+
, m_dayname(dayname)
910
{
1011
m_ui->setupUi(this);
12+
this->setWindowTitle(tr("%1's Registered Calls").arg(dayname));
1113
m_tw = m_ui->tableWidget;
1214

1315
setWindowIcon(QIcon("assets/icon.ico"));
@@ -28,6 +30,7 @@ void CallDetails::closeEvent(QCloseEvent* event)
2830

2931
void CallDetails::resizeEvent(QResizeEvent* event)
3032
{
33+
// Because resizeEvent() gets called when window is first created. Let's leave Qt do its stuff first and then me.
3134
static bool firstTime {true};
3235
if (firstTime) {
3336
firstTime = false;

calldetails.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ class CallDetails : public QWidget
2222
QTableWidget* m_tw;
2323
Database& m_db;
2424
QString m_datetime;
25+
QString m_dayname;
2526

2627
void prepareTableWidget();
2728
void setCalls();
2829
public:
29-
CallDetails(Database& db, const QString& datetime, QWidget* parent = nullptr);
30+
CallDetails(Database& db, const QString& datetime, const QString& dayname, QWidget* parent = nullptr);
3031
~CallDetails();
3132
protected:
3233
void closeEvent(QCloseEvent* event);

chart.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ void Chart::hovered(bool status, int index)
118118
void Chart::clicked(int index)
119119
{
120120
auto datetime { m_dates[index] };
121-
CallDetails cd(m_db, datetime);
121+
bool isToday { (index + 1) == QDate::currentDate().dayOfWeek() };
122+
QString dayname { isToday ? tr("Today") : m_categories[index].toStdString().c_str() };
123+
CallDetails cd(m_db, datetime, dayname);
122124
QEventLoop loop;
123125
connect(&cd, &CallDetails::closed, &loop, &QEventLoop::quit);
124126
cd.show();

main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ int main(int argc, char *argv[])
1313
const QStringList uiLanguages = QLocale::system().uiLanguages();
1414
for (const QString &locale : uiLanguages) {
1515
const QString baseName = "PerformanceMeasurer_" + QLocale(locale).name();
16-
if (translator.load(":/i18n/" + baseName)) {
16+
if (translator.load("translations/" + baseName)) {
1717
a.installTranslator(&translator);
1818
break;
1919
}

mainwindow.cpp

Lines changed: 106 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@ MainWindow::MainWindow(QWidget *parent)
1313
m_ui->lastCallLabel->setText("");
1414
m_ui->currentBarSetValue->setText("");
1515

16+
initialWindowWidth = this->size().width();
17+
initialWindowHeight = this->size().height();
18+
initialDatetimeLabelX = m_ui->datetimeLabel->x();
19+
initialMessageLabelY = m_ui->messageLabel->y();
20+
initialLastSavedLabelY = m_ui->lastSavedLabel->y();
21+
initialRemainingTimeLabelY = m_ui->remainingTimeLabel->y();
22+
initialLastCallLabelX = m_ui->lastCallLabel->x();
23+
initialLastCallLabelY = m_ui->lastCallLabel->y();
24+
initialCurrentBarSetValueX = m_ui->currentBarSetValue->x();
25+
initialCurrentBarSetValueY = m_ui->currentBarSetValue->y();
26+
initialChartWidth = 675; // Hardcoded because we set chart's rect from here.
27+
initialChartHeight = 381; // Same.
28+
initialChartX = 280;
29+
initialChartY = 30;
30+
initialSaveButtonX = m_ui->saveButton->x();
31+
initialSaveButtonY = m_ui->saveButton->y();
32+
1633
connect(&m_db, &Database::error, this, &MainWindow::error);
1734
connect(m_ui->actionAbout, &QAction::triggered, this, &MainWindow::about);
1835
connect(m_ui->newButton, &QPushButton::clicked, this, &MainWindow::newCall);
@@ -29,7 +46,7 @@ MainWindow::MainWindow(QWidget *parent)
2946
m_ui->usernameLabel->setText(tr("User: ") + m_username);
3047

3148
m_chart = new Chart(m_db, m_username, m_ui->centralwidget);
32-
m_chart->setGeometry(QRect(280, 30, 675, 381));
49+
m_chart->setGeometry(QRect(initialChartX, initialChartY, initialChartWidth, initialChartHeight));
3350
connect(m_chart, &Chart::updateHoveredLabel, this, &MainWindow::updateHoveredLabel);
3451

3552
setDateTime();
@@ -59,13 +76,100 @@ MainWindow::~MainWindow()
5976

6077
void MainWindow::resizeEvent(QResizeEvent* event)
6178
{
79+
// Because resizeEvent() gets called when window is first created. Let's leave Qt do its stuff first and then me.
6280
static bool firstTime {true};
6381
if (firstTime) {
6482
firstTime = false;
6583
return;
6684
}
6785

68-
86+
auto newSize {event->size()};
87+
88+
/*
89+
* Some widget's sizes are calculated based on initial parent window width/height - initial actual widget width/height.
90+
* So do x and y positions.
91+
*/
92+
93+
auto datetimeLabelRect = QRect(
94+
newSize.width() - (initialWindowWidth - initialDatetimeLabelX),
95+
m_ui->datetimeLabel->y(),
96+
m_ui->datetimeLabel->rect().width(),
97+
m_ui->datetimeLabel->rect().height()
98+
);
99+
100+
auto messageLabelRect = QRect(
101+
m_ui->messageLabel->x(),
102+
newSize.height() / 2 - 70,
103+
m_ui->messageLabel->rect().width(),
104+
m_ui->messageLabel->rect().height()
105+
);
106+
107+
auto newButtonRect = QRect(
108+
m_ui->newButton->x(),
109+
newSize.height() / 2 - 30, // messageLabel's y + 50.
110+
m_ui->newButton->rect().width(),
111+
m_ui->newButton->rect().height()
112+
);
113+
114+
auto removeButtonRect = QRect(
115+
m_ui->removeButton->x(),
116+
newSize.height() / 2 - 30, // messageLabel's y + 50.
117+
m_ui->removeButton->rect().width(),
118+
m_ui->removeButton->rect().height()
119+
);
120+
121+
auto lastSavedLabelRect = QRect(
122+
m_ui->lastSavedLabel->x(),
123+
newSize.height() - (initialWindowHeight - initialLastSavedLabelY),
124+
m_ui->lastSavedLabel->rect().width(),
125+
m_ui->lastSavedLabel->rect().height()
126+
);
127+
128+
auto remainingTimeLabelRect = QRect(
129+
m_ui->remainingTimeLabel->x(),
130+
newSize.height() - (initialWindowHeight - initialRemainingTimeLabelY),
131+
m_ui->remainingTimeLabel->rect().width(),
132+
m_ui->remainingTimeLabel->rect().height()
133+
);
134+
135+
auto lastRegisteredCallLabelRect = QRect(
136+
newSize.width() - (initialWindowWidth - initialLastCallLabelX),
137+
newSize.height() - (initialWindowHeight - initialLastCallLabelY),
138+
m_ui->lastCallLabel->rect().width(),
139+
m_ui->lastCallLabel->rect().height()
140+
);
141+
142+
auto currentBarSetValueRect = QRect(
143+
newSize.width() - (initialWindowWidth - initialCurrentBarSetValueX),
144+
newSize.height() - (initialWindowHeight - initialCurrentBarSetValueY),
145+
m_ui->currentBarSetValue->rect().width(),
146+
m_ui->currentBarSetValue->rect().height()
147+
);
148+
149+
auto chartRect = QRect(
150+
initialChartX,
151+
initialChartY,
152+
newSize.width() - (initialWindowWidth - initialChartWidth),
153+
newSize.height() - (initialWindowHeight - initialChartHeight)
154+
);
155+
156+
auto saveButtonRect = QRect(
157+
newSize.width() - (initialWindowWidth - initialSaveButtonX),
158+
newSize.height() - (initialWindowHeight - initialSaveButtonY),
159+
m_ui->saveButton->rect().width(),
160+
m_ui->saveButton->rect().height()
161+
);
162+
163+
m_ui->datetimeLabel->setGeometry(datetimeLabelRect);
164+
m_ui->messageLabel->setGeometry(messageLabelRect);
165+
m_ui->newButton->setGeometry(newButtonRect);
166+
m_ui->removeButton->setGeometry(removeButtonRect);
167+
m_ui->lastSavedLabel->setGeometry(lastSavedLabelRect);
168+
m_ui->remainingTimeLabel->setGeometry(remainingTimeLabelRect);
169+
m_ui->lastCallLabel->setGeometry(lastRegisteredCallLabelRect);
170+
m_ui->currentBarSetValue->setGeometry(currentBarSetValueRect);
171+
m_chart->setGeometry(chartRect);
172+
m_ui->saveButton->setGeometry(saveButtonRect);
69173
}
70174

71175
void MainWindow::setLabel(bool justMessageLabel, const QString& prefix = "")

mainwindow.hpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
#include <QTime>
1919
#include <QTimer>
2020

21-
#include "database.hpp"
2221
#include "chart.hpp"
22+
#include "database.hpp"
2323

2424
QT_BEGIN_NAMESPACE
2525
namespace Ui { class MainWindow; }
@@ -45,6 +45,24 @@ class MainWindow : public QMainWindow
4545
bool m_lock;
4646
Database m_db;
4747

48+
// The following variables are helpers to properly resize the window.
49+
int initialWindowWidth;
50+
int initialWindowHeight;
51+
int initialDatetimeLabelX;
52+
int initialMessageLabelY;
53+
int initialLastSavedLabelY;
54+
int initialRemainingTimeLabelY;
55+
int initialLastCallLabelX;
56+
int initialLastCallLabelY;
57+
int initialCurrentBarSetValueX;
58+
int initialCurrentBarSetValueY;
59+
int initialChartX;
60+
int initialChartY;
61+
int initialChartWidth;
62+
int initialChartHeight;
63+
int initialSaveButtonX;
64+
int initialSaveButtonY;
65+
4866
void setLabel(bool justMessageLabel, const QString& prefix);
4967
void setDateTime();
5068
void setTodaysCalls();

mainwindow.ui

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
</property>
1919
<property name="maximumSize">
2020
<size>
21-
<width>964</width>
22-
<height>496</height>
21+
<width>16777215</width>
22+
<height>16777215</height>
2323
</size>
2424
</property>
2525
<property name="windowTitle">

0 commit comments

Comments
 (0)