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

Last change on this file since 60 was 60, checked in by Thomas Fuhrmann, 5 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.