forked from len0rd/rockbox
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>
This commit is contained in:
parent
3b4e63173d
commit
b08620dd30
4 changed files with 120 additions and 0 deletions
|
@ -149,8 +149,10 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
|
||||||
data_sel_layout->addWidget(m_data_sel_reload);
|
data_sel_layout->addWidget(m_data_sel_reload);
|
||||||
data_sel_group->setLayout(data_sel_layout);
|
data_sel_group->setLayout(data_sel_layout);
|
||||||
m_data_soc_label->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
|
m_data_soc_label->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
|
||||||
|
m_msg = new MessageWidget(this);
|
||||||
|
|
||||||
m_right_panel->addWidget(data_sel_group, 0);
|
m_right_panel->addWidget(data_sel_group, 0);
|
||||||
|
m_right_panel->addWidget(m_msg, 0);
|
||||||
m_right_content = 0;
|
m_right_content = 0;
|
||||||
SetPanel(new EmptyRegTabPanel);
|
SetPanel(new EmptyRegTabPanel);
|
||||||
QWidget *w = new QWidget;
|
QWidget *w = new QWidget;
|
||||||
|
@ -176,6 +178,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,
|
||||||
|
"You can browse the registers. Select a data source to analyse the values.");
|
||||||
|
|
||||||
OnSocListChanged();
|
OnSocListChanged();
|
||||||
SetDataSocName("");
|
SetDataSocName("");
|
||||||
UpdateTabName();
|
UpdateTabName();
|
||||||
|
@ -310,6 +315,11 @@ 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)
|
||||||
|
{
|
||||||
|
m_msg->SetMessage(type, msg);
|
||||||
|
}
|
||||||
|
|
||||||
void RegTab::SetPanel(RegTabPanel *panel)
|
void RegTab::SetPanel(RegTabPanel *panel)
|
||||||
{
|
{
|
||||||
delete m_right_content;
|
delete m_right_content;
|
||||||
|
|
|
@ -78,6 +78,7 @@ 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);
|
||||||
|
|
||||||
QComboBox *m_soc_selector;
|
QComboBox *m_soc_selector;
|
||||||
BackendSelector *m_backend_selector;
|
BackendSelector *m_backend_selector;
|
||||||
|
@ -93,6 +94,7 @@ protected:
|
||||||
IoBackend *m_io_backend;
|
IoBackend *m_io_backend;
|
||||||
QTabWidget *m_type_selector;
|
QTabWidget *m_type_selector;
|
||||||
QListWidget *m_analysers_list;
|
QListWidget *m_analysers_list;
|
||||||
|
MessageWidget *m_msg;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void SetReadOnlyIndicator();
|
void SetReadOnlyIndicator();
|
||||||
|
|
|
@ -964,3 +964,83 @@ void BackendSelector::ChangeBackend(IoBackend *new_backend)
|
||||||
delete m_io_backend;
|
delete m_io_backend;
|
||||||
m_io_backend = new_backend;
|
m_io_backend = new_backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MessageWidget
|
||||||
|
*/
|
||||||
|
MessageWidget::MessageWidget(QWidget *parent)
|
||||||
|
:QFrame(parent)
|
||||||
|
{
|
||||||
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
|
||||||
|
|
||||||
|
m_icon = new QLabel(this);
|
||||||
|
m_icon->hide();
|
||||||
|
m_text = new QLabel(this);
|
||||||
|
m_text->setTextFormat(Qt::RichText);
|
||||||
|
m_close = new QToolButton(this);
|
||||||
|
m_close->setText("close");
|
||||||
|
m_close->setIcon(style()->standardIcon(QStyle::SP_DialogCloseButton));
|
||||||
|
m_close->setAutoRaise(true);
|
||||||
|
|
||||||
|
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||||
|
layout->addWidget(m_icon, 0);
|
||||||
|
layout->addWidget(m_text, 1);
|
||||||
|
layout->addWidget(m_close, 0);
|
||||||
|
|
||||||
|
connect(m_close, SIGNAL(clicked(bool)), this, SLOT(OnClose(bool)));
|
||||||
|
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageWidget::~MessageWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessageWidget::UpdateType()
|
||||||
|
{
|
||||||
|
/* style stolen from KMessageWidget */
|
||||||
|
QColor bg, border;
|
||||||
|
switch(m_type)
|
||||||
|
{
|
||||||
|
case Positive:
|
||||||
|
bg.setRgb(140, 228, 124);
|
||||||
|
border.setRgb(56, 175, 58);
|
||||||
|
break;
|
||||||
|
case Information:
|
||||||
|
bg.setRgb(161, 178, 202);
|
||||||
|
border.setRgb(59, 79, 175);
|
||||||
|
break;
|
||||||
|
case Warning:
|
||||||
|
bg.setRgb(228, 227, 127);
|
||||||
|
border.setRgb(175, 169, 61);
|
||||||
|
break;
|
||||||
|
case Error:
|
||||||
|
bg.setRgb(233, 199, 196);
|
||||||
|
border.setRgb(175, 74, 60);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
setStyleSheet(QString(
|
||||||
|
"QFrame { background-color: %1;"
|
||||||
|
"border-radius: 5px;"
|
||||||
|
"border: 1px solid %2;"
|
||||||
|
"}"
|
||||||
|
"QLabel { border: none; }")
|
||||||
|
.arg(bg.name())
|
||||||
|
.arg(border.name()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessageWidget::SetMessage(MessageType type, const QString& msg)
|
||||||
|
{
|
||||||
|
m_type = type;
|
||||||
|
m_text->setText(msg);
|
||||||
|
UpdateType();
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessageWidget::OnClose(bool clicked)
|
||||||
|
{
|
||||||
|
Q_UNUSED(clicked);
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
|
@ -338,4 +338,32 @@ private slots:
|
||||||
void OnDataSelChanged(int index);
|
void OnDataSelChanged(int index);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MessageWidget : public QFrame
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
enum MessageType
|
||||||
|
{
|
||||||
|
Positive,
|
||||||
|
Information,
|
||||||
|
Warning,
|
||||||
|
Error
|
||||||
|
};
|
||||||
|
|
||||||
|
MessageWidget(QWidget *parent = 0);
|
||||||
|
virtual ~MessageWidget();
|
||||||
|
void SetMessage(MessageType type, const QString& msg);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void UpdateType();
|
||||||
|
|
||||||
|
QLabel *m_icon;
|
||||||
|
QLabel *m_text;
|
||||||
|
QToolButton *m_close;
|
||||||
|
MessageType m_type;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void OnClose(bool clicked);
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* AUX_H */
|
#endif /* AUX_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue