summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-09-27 13:29:44 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2014-12-15 22:52:45 +0100
commitb08620dd304f54943c057405da49d44102ebcc77 (patch)
tree55d53f7bb87b50e76941622c1115a23762536367 /utils/regtools/qeditor
parent3b4e63173d5f762a368d159e21f76e2df3fcf8ab (diff)
downloadrockbox-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.cpp10
-rw-r--r--utils/regtools/qeditor/regtab.h2
-rw-r--r--utils/regtools/qeditor/utils.cpp80
-rw-r--r--utils/regtools/qeditor/utils.h28
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
318void RegTab::SetMessage(MessageWidget::MessageType type, const QString& msg)
319{
320 m_msg->SetMessage(type, msg);
321}
322
313void RegTab::SetPanel(RegTabPanel *panel) 323void 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
97private slots: 99private 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 */
971MessageWidget::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
995MessageWidget::~MessageWidget()
996{
997}
998
999void 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
1034void MessageWidget::SetMessage(MessageType type, const QString& msg)
1035{
1036 m_type = type;
1037 m_text->setText(msg);
1038 UpdateType();
1039 show();
1040}
1041
1042void 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
341class MessageWidget : public QFrame
342{
343 Q_OBJECT
344public:
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
357protected:
358 void UpdateType();
359
360 QLabel *m_icon;
361 QLabel *m_text;
362 QToolButton *m_close;
363 MessageType m_type;
364
365private slots:
366 void OnClose(bool clicked);
367};
368
341#endif /* AUX_H */ 369#endif /* AUX_H */