diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-09-27 13:29:44 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2014-12-15 22:52:45 +0100 |
commit | b08620dd304f54943c057405da49d44102ebcc77 (patch) | |
tree | 55d53f7bb87b50e76941622c1115a23762536367 /utils/regtools/qeditor | |
parent | 3b4e63173d5f762a368d159e21f76e2df3fcf8ab (diff) | |
download | rockbox-b08620dd304f54943c057405da49d44102ebcc77.tar.gz rockbox-b08620dd304f54943c057405da49d44102ebcc77.zip |
qeditor: introduce a message widget to display non-interactive messages
Change-Id: Iad43efa1f09428389fbd09403c1ae20d2805f1c5
Reviewed-on: http://gerrit.rockbox.org/987
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
Diffstat (limited to 'utils/regtools/qeditor')
-rw-r--r-- | utils/regtools/qeditor/regtab.cpp | 10 | ||||
-rw-r--r-- | utils/regtools/qeditor/regtab.h | 2 | ||||
-rw-r--r-- | utils/regtools/qeditor/utils.cpp | 80 | ||||
-rw-r--r-- | utils/regtools/qeditor/utils.h | 28 |
4 files changed, 120 insertions, 0 deletions
diff --git a/utils/regtools/qeditor/regtab.cpp b/utils/regtools/qeditor/regtab.cpp index c92dad49d5..32d08a73d3 100644 --- a/utils/regtools/qeditor/regtab.cpp +++ b/utils/regtools/qeditor/regtab.cpp | |||
@@ -149,8 +149,10 @@ RegTab::RegTab(Backend *backend, QWidget *parent) | |||
149 | data_sel_layout->addWidget(m_data_sel_reload); | 149 | data_sel_layout->addWidget(m_data_sel_reload); |
150 | data_sel_group->setLayout(data_sel_layout); | 150 | data_sel_group->setLayout(data_sel_layout); |
151 | m_data_soc_label->setFrameStyle(QFrame::StyledPanel | QFrame::Raised); | 151 | m_data_soc_label->setFrameStyle(QFrame::StyledPanel | QFrame::Raised); |
152 | m_msg = new MessageWidget(this); | ||
152 | 153 | ||
153 | m_right_panel->addWidget(data_sel_group, 0); | 154 | m_right_panel->addWidget(data_sel_group, 0); |
155 | m_right_panel->addWidget(m_msg, 0); | ||
154 | m_right_content = 0; | 156 | m_right_content = 0; |
155 | SetPanel(new EmptyRegTabPanel); | 157 | SetPanel(new EmptyRegTabPanel); |
156 | QWidget *w = new QWidget; | 158 | QWidget *w = new QWidget; |
@@ -176,6 +178,9 @@ RegTab::RegTab(Backend *backend, QWidget *parent) | |||
176 | connect(m_data_sel_reload, SIGNAL(clicked(bool)), this, SLOT(OnBackendReload(bool))); | 178 | connect(m_data_sel_reload, SIGNAL(clicked(bool)), this, SLOT(OnBackendReload(bool))); |
177 | connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int))); | 179 | connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int))); |
178 | 180 | ||
181 | SetMessage(MessageWidget::Information, | ||
182 | "You can browse the registers. Select a data source to analyse the values."); | ||
183 | |||
179 | OnSocListChanged(); | 184 | OnSocListChanged(); |
180 | SetDataSocName(""); | 185 | SetDataSocName(""); |
181 | UpdateTabName(); | 186 | UpdateTabName(); |
@@ -310,6 +315,11 @@ void RegTab::DisplaySoc(const SocRef& ref) | |||
310 | SetPanel(new SocDisplayPanel(this, ref)); | 315 | SetPanel(new SocDisplayPanel(this, ref)); |
311 | } | 316 | } |
312 | 317 | ||
318 | void RegTab::SetMessage(MessageWidget::MessageType type, const QString& msg) | ||
319 | { | ||
320 | m_msg->SetMessage(type, msg); | ||
321 | } | ||
322 | |||
313 | void RegTab::SetPanel(RegTabPanel *panel) | 323 | void RegTab::SetPanel(RegTabPanel *panel) |
314 | { | 324 | { |
315 | delete m_right_content; | 325 | delete m_right_content; |
diff --git a/utils/regtools/qeditor/regtab.h b/utils/regtools/qeditor/regtab.h index c19af0aeba..f088e7a8df 100644 --- a/utils/regtools/qeditor/regtab.h +++ b/utils/regtools/qeditor/regtab.h | |||
@@ -78,6 +78,7 @@ protected: | |||
78 | void SetPanel(RegTabPanel *panel); | 78 | void SetPanel(RegTabPanel *panel); |
79 | void UpdateSocFilename(); | 79 | void UpdateSocFilename(); |
80 | void UpdateTabName(); | 80 | void UpdateTabName(); |
81 | void SetMessage(MessageWidget::MessageType type, const QString& msg); | ||
81 | 82 | ||
82 | QComboBox *m_soc_selector; | 83 | QComboBox *m_soc_selector; |
83 | BackendSelector *m_backend_selector; | 84 | BackendSelector *m_backend_selector; |
@@ -93,6 +94,7 @@ protected: | |||
93 | IoBackend *m_io_backend; | 94 | IoBackend *m_io_backend; |
94 | QTabWidget *m_type_selector; | 95 | QTabWidget *m_type_selector; |
95 | QListWidget *m_analysers_list; | 96 | QListWidget *m_analysers_list; |
97 | MessageWidget *m_msg; | ||
96 | 98 | ||
97 | private slots: | 99 | private slots: |
98 | void SetReadOnlyIndicator(); | 100 | void SetReadOnlyIndicator(); |
diff --git a/utils/regtools/qeditor/utils.cpp b/utils/regtools/qeditor/utils.cpp index cf8f104334..677d24dd7f 100644 --- a/utils/regtools/qeditor/utils.cpp +++ b/utils/regtools/qeditor/utils.cpp | |||
@@ -964,3 +964,83 @@ void BackendSelector::ChangeBackend(IoBackend *new_backend) | |||
964 | delete m_io_backend; | 964 | delete m_io_backend; |
965 | m_io_backend = new_backend; | 965 | m_io_backend = new_backend; |
966 | } | 966 | } |
967 | |||
968 | /** | ||
969 | * MessageWidget | ||
970 | */ | ||
971 | MessageWidget::MessageWidget(QWidget *parent) | ||
972 | :QFrame(parent) | ||
973 | { | ||
974 | setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); | ||
975 | |||
976 | m_icon = new QLabel(this); | ||
977 | m_icon->hide(); | ||
978 | m_text = new QLabel(this); | ||
979 | m_text->setTextFormat(Qt::RichText); | ||
980 | m_close = new QToolButton(this); | ||
981 | m_close->setText("close"); | ||
982 | m_close->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton)); | ||
983 | m_close->setAutoRaise(true); | ||
984 | |||
985 | QHBoxLayout *layout = new QHBoxLayout(this); | ||
986 | layout->addWidget(m_icon, 0); | ||
987 | layout->addWidget(m_text, 1); | ||
988 | layout->addWidget(m_close, 0); | ||
989 | |||
990 | connect(m_close, SIGNAL(clicked(bool)), this, SLOT(OnClose(bool))); | ||
991 | |||
992 | hide(); | ||
993 | } | ||
994 | |||
995 | MessageWidget::~MessageWidget() | ||
996 | { | ||
997 | } | ||
998 | |||
999 | void MessageWidget::UpdateType() | ||
1000 | { | ||
1001 | /* style stolen from KMessageWidget */ | ||
1002 | QColor bg, border; | ||
1003 | switch(m_type) | ||
1004 | { | ||
1005 | case Positive: | ||
1006 | bg.setRgb(140, 228, 124); | ||
1007 | border.setRgb(56, 175, 58); | ||
1008 | break; | ||
1009 | case Information: | ||
1010 | bg.setRgb(161, 178, 202); | ||
1011 | border.setRgb(59, 79, 175); | ||
1012 | break; | ||
1013 | case Warning: | ||
1014 | bg.setRgb(228, 227, 127); | ||
1015 | border.setRgb(175, 169, 61); | ||
1016 | break; | ||
1017 | case Error: | ||
1018 | bg.setRgb(233, 199, 196); | ||
1019 | border.setRgb(175, 74, 60); | ||
1020 | break; | ||
1021 | default: | ||
1022 | break; | ||
1023 | } | ||
1024 | setStyleSheet(QString( | ||
1025 | "QFrame { background-color: %1;" | ||
1026 | "border-radius: 5px;" | ||
1027 | "border: 1px solid %2;" | ||
1028 | "}" | ||
1029 | "QLabel { border: none; }") | ||
1030 | .arg(bg.name()) | ||
1031 | .arg(border.name())); | ||
1032 | } | ||
1033 | |||
1034 | void MessageWidget::SetMessage(MessageType type, const QString& msg) | ||
1035 | { | ||
1036 | m_type = type; | ||
1037 | m_text->setText(msg); | ||
1038 | UpdateType(); | ||
1039 | show(); | ||
1040 | } | ||
1041 | |||
1042 | void MessageWidget::OnClose(bool clicked) | ||
1043 | { | ||
1044 | Q_UNUSED(clicked); | ||
1045 | hide(); | ||
1046 | } | ||
diff --git a/utils/regtools/qeditor/utils.h b/utils/regtools/qeditor/utils.h index 8bb1a70d7f..ec3175b5da 100644 --- a/utils/regtools/qeditor/utils.h +++ b/utils/regtools/qeditor/utils.h | |||
@@ -338,4 +338,32 @@ private slots: | |||
338 | void OnDataSelChanged(int index); | 338 | void OnDataSelChanged(int index); |
339 | }; | 339 | }; |
340 | 340 | ||
341 | class MessageWidget : public QFrame | ||
342 | { | ||
343 | Q_OBJECT | ||
344 | public: | ||
345 | enum MessageType | ||
346 | { | ||
347 | Positive, | ||
348 | Information, | ||
349 | Warning, | ||
350 | Error | ||
351 | }; | ||
352 | |||
353 | MessageWidget(QWidget *parent = 0); | ||
354 | virtual ~MessageWidget(); | ||
355 | void SetMessage(MessageType type, const QString& msg); | ||
356 | |||
357 | protected: | ||
358 | void UpdateType(); | ||
359 | |||
360 | QLabel *m_icon; | ||
361 | QLabel *m_text; | ||
362 | QToolButton *m_close; | ||
363 | MessageType m_type; | ||
364 | |||
365 | private slots: | ||
366 | void OnClose(bool clicked); | ||
367 | }; | ||
368 | |||
341 | #endif /* AUX_H */ | 369 | #endif /* AUX_H */ |