-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainwindow.h
127 lines (104 loc) · 5.81 KB
/
mainwindow.h
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
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWidget>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QHBoxLayout>
#include <QToolBar>
#include <QStatusBar>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QGroupBox>
#include <QPushButton>
#include <QLabel>
#include <QSlider>
#include <QTimer>
#include "CutdownTimer.h"
#include <QtNetwork/QNetworkReply>
#include <QMessageBox>
#include <QDir>
#include <QFileDialog>
#include <QDesktopWidget>
#include <QPixmap>
#include <QTableView>
#include "httprequestworker.h"
#include "plane.h"
#include <QList>
#include <QTableView>
#include <QStandardItemModel>
#include <QDebug>
/*! Klasa MainWindow - odpowiada za wygląd głownego okna programu, budowe layout-u, połączenie elementów okna z metodami.
*
* W obrębie klasy wykonywane są wszystkie działania związane z działaniami w głównym oknie programu. Stanowi ona
* UI dla użytkownika.
*
* Klasa posiada:
* prywatne sloty - pozwalające na otrzymywanie inforamcji;
* signały - do przesyłania danych do metod i innych klas;
* zmienne oraz wskażniki prywatne - potrzebne do poprawnego działania metod klasy oraz wywoływania;
* chronione funkcje - odpowiadające za akcje wewnątrz klasy;
* konstruktor jawny.
Michał Kluska & Maciek Kucharski, czerwiec 2017
*/
class MainWindow : public QMainWindow
{
Q_OBJECT
protected:
void setConnections(); ///< metoda do inicjalizacji połoczeń SIGNAL-SLOT
public:
MainWindow(QWidget *parent = 0); ///< konstruktor obiektu klasy MainWindow
~MainWindow(); ///< destruktor obiektu klasy MainWindow
private:
QPixmap image; ///< zmienna zapamiętująca obraz
HttpRequestWorker *worker; ///< wskaźnik na worker-a obsługujący zapytania REST
QStandardItemModel *model; ///< wskaźnik na model danych wyświetlanych w tabeli
bool isFirstTime; ///< zmienna początkowa inicjująca pobieranie danych
int searchForBeginning(int firstCountryLetterIndex, QString message); ///< metoda szukająca poczatku rekordu
int searchForEnd(int firstCountryLetterIndex, QString message); ///< metoda szukająca końca rekordu
QString selectRecord(int firstRecordLetterIndex, int lastRecordLetterIndex, QString message); ///< metoda zwracająca rekord
plane* parsingData(QString planeRecordData); ///< metoda zwracająca obiekt klasy plane uzupełniony parametrami
bool toBoolean(QString); ///< metoda konwertująca wartość typu QString na wartość logiczną typu bool
//wskazniki od wytworzenia okienka
QWidget* _mainWidget; ///< wskaźnik na główny widget
QGridLayout* _mainLayout; ///< wskaźnik na główny layout
QMenuBar* _menuBar; ///< wskaźnik na pasek menu
QMenu* _mainManu; ///< wskaźnik na menu główne
QMenu* _helpManu; ///< wskaźnik na menu pomocy
//elementy GUI
QTableView* _tabele; ///< wskaźnik na tabelę danych
QGroupBox* _rightPart; ///< wskaźnik na groupbox-a w prawej części okna
QVBoxLayout* _rightPartLayout; ///< wskaźnik na prawą część layout-u
QGroupBox* _timerGroup; ///< wskaźnik na groupbox-a panelu czasu
QGroupBox* _displTimeGroup; ///< wskaźnik na groupbox-a do wyświetlacza nastawy czasu odświeżnia
QHBoxLayout* _timeDispLayout; ///< wskaźnik na layout z wyświetlaniem nastawy czasu odświeżnia
QLabel* _timeText; ///< wskaźnik na etykiete czasu
QLabel* _timeText2; ///< wskaźnik na etykiete czasu 2
QLabel* _timeText3; ///< wskaźnik na etykiete czasu 3
QLabel* _timerInd; ///< wskaźnik na etykiete wyświetlacza czasu do kolejnego odświeżania
QLabel* _timeInd; ///< wskaźnik na etykiete wyświetlania interału czasu odświeżania
QVBoxLayout* _timerSetLayout; ///< wskaźnik na layout z elementami zegara
QPushButton* _acceptTimeButton; ///< wskaźnik na przycisk do akceptacji czasu
QSlider* _timeSlider; ///< wskaźnik na suwak do zmiany czasu
QTimer* _timer; ///< wskaźnik na zegar
CutdownTimer* _cutdownTimer; ///< wskażnik na licznik liczący w dół
protected:
QAction* actionUpdate; ///< wskaźnik na przycisk menu z akcją aktualizacji
QAction* actionExite; ///< wskaźnik na przycisk menu z akcją wyjścia
QAction* actionSaveWindow; ///< wskaźnik na przycisk menu z akcją zapisu zrzutu okna
QAction* actionAboutApp; ///< wskaźnik na przycisk menu z akcją o aplikacji
QAction* actionMinimized; ///< wskaźnik na przycisk menu z akcja minimalizacji okna
private slots:
void updateData(); ///< metoda aktualizująca dane o samolotach
void handle_result(); ///< metoda przyjmująca odebrane dane
void takeScreen(); ///< metoda do wykonywania screenshot-a
void saveScreen(); ///< metoda do zapisywania screen-ów
void aboutApp(); ///< metoda do wyświetlania inforamcji o aplikacji
void prepareTimer(); ///< metoda do przygotowyania zegara
void updateTrigged(); ///< metoda do wyzwalania aktualizacji
void displRemaningTime(); ///< metoda do wyświetlania pozostałego czasu
signals:
void go(); ///< sygnał uruchamiający timery
};
#endif // MAINWINDOW_H