1
0
Fork 0
forked from len0rd/rockbox

qeditor: message widget now supports IDs, useful to clear messages

Change-Id: Ibe0a8909128469a71a25415761860e06fc9f1e67
Reviewed-on: http://gerrit.rockbox.org/1006
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
This commit is contained in:
Amaury Pouly 2014-10-07 14:30:24 +02:00
parent cef5e1018e
commit 7749c4d0e9
4 changed files with 37 additions and 6 deletions

View file

@ -179,8 +179,9 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
connect(m_data_sel_reload, SIGNAL(clicked(bool)), this, SLOT(OnBackendReload(bool))); connect(m_data_sel_reload, SIGNAL(clicked(bool)), this, SLOT(OnBackendReload(bool)));
connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int))); connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int)));
SetMessage(MessageWidget::Information, m_msg_select_id = SetMessage(MessageWidget::Information,
"You can browse the registers. Select a data source to analyse the values."); "You can browse the registers. Select a data source to analyse the values.");
m_msg_error_id = 0;
OnSocListChanged(); OnSocListChanged();
SetDataSocName(""); SetDataSocName("");
@ -222,6 +223,12 @@ void RegTab::OnDataSocActivated(const QString& str)
int index = m_soc_selector->findText(str); int index = m_soc_selector->findText(str);
if(index != -1) if(index != -1)
m_soc_selector->setCurrentIndex(index); m_soc_selector->setCurrentIndex(index);
else if(str.size() > 0)
{
m_msg_error_id = SetMessage(MessageWidget::Error,
"Description file for this SoC is not available.");
SetPanel(new EmptyRegTabPanel);
}
} }
void RegTab::UpdateTabName() void RegTab::UpdateTabName()
@ -252,6 +259,9 @@ void RegTab::UpdateTabName()
void RegTab::OnBackendSelect(IoBackend *backend) void RegTab::OnBackendSelect(IoBackend *backend)
{ {
/* Hide "Please select two SoC" and errors message */
HideMessage(m_msg_select_id);
HideMessage(m_msg_error_id);
m_io_backend = backend; m_io_backend = backend;
SetReadOnlyIndicator(); SetReadOnlyIndicator();
SetDataSocName(m_io_backend->GetSocName()); SetDataSocName(m_io_backend->GetSocName());
@ -316,9 +326,14 @@ void RegTab::DisplaySoc(const SocRef& ref)
SetPanel(new SocDisplayPanel(this, ref)); SetPanel(new SocDisplayPanel(this, ref));
} }
void RegTab::SetMessage(MessageWidget::MessageType type, const QString& msg) int RegTab::SetMessage(MessageWidget::MessageType type, const QString& msg)
{ {
m_msg->SetMessage(type, msg); return m_msg->SetMessage(type, msg);
}
void RegTab::HideMessage(int id)
{
m_msg->HideMessage(id);
} }
void RegTab::SetPanel(RegTabPanel *panel) void RegTab::SetPanel(RegTabPanel *panel)

View file

@ -78,7 +78,8 @@ protected:
void SetPanel(RegTabPanel *panel); void SetPanel(RegTabPanel *panel);
void UpdateSocFilename(); void UpdateSocFilename();
void UpdateTabName(); void UpdateTabName();
void SetMessage(MessageWidget::MessageType type, const QString& msg); int SetMessage(MessageWidget::MessageType type, const QString& msg);
void HideMessage(int id);
QComboBox *m_soc_selector; QComboBox *m_soc_selector;
BackendSelector *m_backend_selector; BackendSelector *m_backend_selector;
@ -95,6 +96,8 @@ protected:
QTabWidget *m_type_selector; QTabWidget *m_type_selector;
QListWidget *m_analysers_list; QListWidget *m_analysers_list;
MessageWidget *m_msg; MessageWidget *m_msg;
int m_msg_select_id;
int m_msg_error_id;
private slots: private slots:
void SetReadOnlyIndicator(); void SetReadOnlyIndicator();

View file

@ -998,6 +998,8 @@ MessageWidget::MessageWidget(QWidget *parent)
layout->addWidget(m_text, 1); layout->addWidget(m_text, 1);
layout->addWidget(m_close, 0); layout->addWidget(m_close, 0);
m_id = 0;
connect(m_close, SIGNAL(clicked(bool)), this, SLOT(OnClose(bool))); connect(m_close, SIGNAL(clicked(bool)), this, SLOT(OnClose(bool)));
hide(); hide();
@ -1042,12 +1044,19 @@ void MessageWidget::UpdateType()
.arg(border.name())); .arg(border.name()));
} }
void MessageWidget::SetMessage(MessageType type, const QString& msg) int MessageWidget::SetMessage(MessageType type, const QString& msg)
{ {
m_type = type; m_type = type;
m_text->setText(msg); m_text->setText(msg);
UpdateType(); UpdateType();
show(); show();
return ++m_id;
}
void MessageWidget::HideMessage(int id)
{
if(m_id == id)
OnClose(true);
} }
void MessageWidget::OnClose(bool clicked) void MessageWidget::OnClose(bool clicked)

View file

@ -355,7 +355,10 @@ public:
MessageWidget(QWidget *parent = 0); MessageWidget(QWidget *parent = 0);
virtual ~MessageWidget(); virtual ~MessageWidget();
void SetMessage(MessageType type, const QString& msg); /* returns message ID */
int SetMessage(MessageType type, const QString& msg);
/* clear message if ID match, nop otherwise */
void HideMessage(int id);
protected: protected:
void UpdateType(); void UpdateType();
@ -364,6 +367,7 @@ protected:
QLabel *m_text; QLabel *m_text;
QToolButton *m_close; QToolButton *m_close;
MessageType m_type; MessageType m_type;
int m_id;
private slots: private slots:
void OnClose(bool clicked); void OnClose(bool clicked);