source: flair-src/branches/mavlink/tools/FlairGCS/src/ListWidget.h@ 62

Last change on this file since 62 was 60, checked in by Thomas Fuhrmann, 8 years ago

Improve ListWidget + code cleanup + doxygen comments

File size: 3.2 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file ListWidget.h
7 * \brief Class displaying a QListWidget on the ground station
8 * \author Thomas Fuhrmann, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2016/07/26
10 * \version 1.0
11 */
12#ifndef LISTWIDGET_H
13#define LISTWIDGET_H
14
15#include "FormLayout.h"
16
17class QListWidget;
18class Layout;
19class QStringList;
20class QListWidgetItem;
21class QPalette;
22
23/*! \class ListWidget
24 *
25 * \brief Class displaying a QListWidget on the ground station
26 *
27 */
28class ListWidget : public FormLayout {
29 Q_OBJECT
30
31public:
32 /**
33 * \brief Default constructor
34 *
35 * \param parent The parent widget
36 * \param[in] row The row where to position the widget
37 * \param[in] col The col where to position the widget
38 * \param[in] name The name of the widget
39 */
40 ListWidget(Layout *parent, int row, int col, QString name);
41 /**
42 * \brief Constructor with a list of default items
43 *
44 * \param parent The parent widget
45 * \param[in] row The row where to position the widget
46 * \param[in] col The col where to position the widget
47 * \param[in] name The name of the widget
48 * \param items List of items to display at creation
49 */
50 ListWidget(Layout *parent, int row, int col, QString name,
51 QStringList &items);
52 /**
53 * \brief Destructor
54 */
55 ~ListWidget();
56
57private:
58 /**
59 * \brief Check if the widget is up to date.
60 *
61 * \return True if uptodate, False otherwise.
62 */
63 bool IsUptodate(void);
64 /**
65 * \brief Sets the isUpToDate internal flag.
66 */
67 void SetUptodate(void);
68 /**
69 * \brief Handler to process a new xml file.
70 *
71 * \param[in] dom The dom containing the xml file.
72 */
73 void XmlEvent(QDomElement dom);
74 /**
75 * \brief Reset the widget, load the internal parameters.
76 */
77
78 void Reset(void);
79 /**
80 * \brief Handler to process the loading of the internal xml file.
81 *
82 * \param[in] dom The dom containing the xml file.
83 */
84 void LoadEvent(QDomElement dom);
85 /**
86 * \brief Save the user interface variables state in the internal members.
87 */
88 void ui_to_var(void);
89 /**
90 * \brief Save the user interface variables state in the internal xml file.
91 */
92 void ui_to_xml(void);
93 /**
94 * Pointer to the managed QListWidget widget.
95 */
96 QListWidget *listwidget;
97 /**
98 * The row of the currently selected item.
99 */
100 int currentItemRow;
101 /**
102 * Flag to know if the widget is up to date.
103 */
104 bool isUpToDate;
105 /**
106 * Redefined color palette.
107 * The highlight item's text appears in red.
108 */
109 QPalette palListRed;
110 /**
111 * Redefined color palette.
112 * The highlight item's text appears in white (default).
113 */
114 QPalette palListDefault;
115
116private slots:
117 /**
118 * \brief Handle the change of the selected item.
119 *
120 * When the selected item has changed, the text of the newly selected item appears in red,
121 * to notify the user to apply the modification.
122 *
123 * \param[in] current_row The row of the currently selected item.
124 */
125 void SelectedItemChanged(int current_row);
126};
127
128#endif // LISTWIDGET_H
Note: See TracBrowser for help on using the repository browser.