summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/regtab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/regtools/qeditor/regtab.cpp')
-rw-r--r--utils/regtools/qeditor/regtab.cpp38
1 files changed, 26 insertions, 12 deletions
diff --git a/utils/regtools/qeditor/regtab.cpp b/utils/regtools/qeditor/regtab.cpp
index 2653908d41..c6a1f41ee9 100644
--- a/utils/regtools/qeditor/regtab.cpp
+++ b/utils/regtools/qeditor/regtab.cpp
@@ -75,10 +75,11 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
75 QVBoxLayout *left_layout = new QVBoxLayout; 75 QVBoxLayout *left_layout = new QVBoxLayout;
76 left->setLayout(left_layout); 76 left->setLayout(left_layout);
77 77
78 QGroupBox *top_group = new QGroupBox("SOC selection"); 78 QGroupBox *top_group = new QGroupBox("");
79 QVBoxLayout *top_group_layout = new QVBoxLayout; 79 QHBoxLayout *top_group_layout = new QHBoxLayout;
80 m_soc_selector = new QComboBox; 80 m_soc_selector = new QComboBox;
81 top_group_layout->addWidget(m_soc_selector); 81 top_group_layout->addWidget(new QLabel("SOC:"));
82 top_group_layout->addWidget(m_soc_selector, 1);
82 top_group->setLayout(top_group_layout); 83 top_group->setLayout(top_group_layout);
83 84
84 m_reg_tree = new QTreeWidget(); 85 m_reg_tree = new QTreeWidget();
@@ -96,7 +97,7 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
96 left_layout->addWidget(m_type_selector); 97 left_layout->addWidget(m_type_selector);
97 98
98 m_right_panel = new QVBoxLayout; 99 m_right_panel = new QVBoxLayout;
99 QGroupBox *data_sel_group = new QGroupBox("Data selection"); 100 QGroupBox *data_sel_group = new QGroupBox("");
100 QHBoxLayout *data_sel_layout = new QHBoxLayout; 101 QHBoxLayout *data_sel_layout = new QHBoxLayout;
101 m_backend_selector = new BackendSelector(m_backend, this); 102 m_backend_selector = new BackendSelector(m_backend, this);
102 m_backend_selector->SetNothingMessage("<i>Select a data source to analyse its content.</i>"); 103 m_backend_selector->SetNothingMessage("<i>Select a data source to analyse its content.</i>");
@@ -108,6 +109,7 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
108 m_data_sel_reload = new QPushButton(this); 109 m_data_sel_reload = new QPushButton(this);
109 m_data_sel_reload->setIcon(QIcon::fromTheme("view-refresh")); 110 m_data_sel_reload->setIcon(QIcon::fromTheme("view-refresh"));
110 m_data_sel_reload->setToolTip("Reload data"); 111 m_data_sel_reload->setToolTip("Reload data");
112 data_sel_layout->addWidget(new QLabel("Data:"));
111 data_sel_layout->addWidget(m_backend_selector); 113 data_sel_layout->addWidget(m_backend_selector);
112 data_sel_layout->addWidget(m_readonly_check); 114 data_sel_layout->addWidget(m_readonly_check);
113 data_sel_layout->addWidget(m_data_soc_label); 115 data_sel_layout->addWidget(m_data_soc_label);
@@ -146,7 +148,9 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
146 connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int))); 148 connect(m_type_selector, SIGNAL(currentChanged(int)), this, SLOT(OnTypeChanged(int)));
147 149
148 m_msg_select_id = SetMessage(MessageWidget::Information, 150 m_msg_select_id = SetMessage(MessageWidget::Information,
149 "You can browse the registers. Select a data source to analyse the values."); 151 "You can browse the registers using the left panel. "
152 "Select a data source at the top to analyse the values. "
153 "You can also use the analyzers available in the left panel, if any.");
150 m_msg_error_id = 0; 154 m_msg_error_id = 0;
151 155
152 QList< SocFileRef > socs = m_backend->GetSocFileList(); 156 QList< SocFileRef > socs = m_backend->GetSocFileList();
@@ -215,8 +219,7 @@ void RegTab::UpdateTabName()
215 else if(hwstub) 219 else if(hwstub)
216 { 220 {
217 HWStubDevice *dev = hwstub->GetDevice(); 221 HWStubDevice *dev = hwstub->GetDevice();
218 SetTabName(QString("HWStub %1.%2").arg(dev->GetBusNumber()) 222 SetTabName(dev->GetFriendlyName());
219 .arg(dev->GetDevAddress()));
220 } 223 }
221#endif 224#endif
222 else 225 else
@@ -231,11 +234,21 @@ void RegTab::OnBackendSelect(IoBackend *backend)
231 HideMessage(m_msg_select_id); 234 HideMessage(m_msg_select_id);
232 HideMessage(m_msg_error_id); 235 HideMessage(m_msg_error_id);
233 m_io_backend = backend; 236 m_io_backend = backend;
234 SetReadOnlyIndicator(); 237 /* Check if the backend is valid, otherwise it might confuse the user */
235 SetDataSocName(m_io_backend->GetSocName()); 238 if(m_io_backend->IsValid())
236 OnDataSocActivated(m_io_backend->GetSocName()); 239 {
237 OnDataChanged(); 240 SetReadOnlyIndicator();
238 UpdateTabName(); 241 SetDataSocName(m_io_backend->GetSocName());
242 OnDataSocActivated(m_io_backend->GetSocName());
243 OnDataChanged();
244 UpdateTabName();
245 }
246 /* But don't display it for the dummy backend either */
247 else if(dynamic_cast< DummyIoBackend * >(m_io_backend) == 0)
248 {
249 m_msg_error_id = SetMessage(MessageWidget::Error,
250 "Data source is not available.");
251 }
239} 252}
240 253
241void RegTab::SetReadOnlyIndicator() 254void RegTab::SetReadOnlyIndicator()
@@ -267,6 +280,7 @@ void RegTab::OnAnalyserClicked(QListWidgetItem *current)
267 280
268void RegTab::DisplayNode(const soc_desc::node_inst_t& ref) 281void RegTab::DisplayNode(const soc_desc::node_inst_t& ref)
269{ 282{
283 HideMessage(m_msg_select_id);
270 if(ref.node().is_root()) 284 if(ref.node().is_root())
271 SetPanel(new SocDisplayPanel(this, m_io_backend, ref.soc())); 285 SetPanel(new SocDisplayPanel(this, m_io_backend, ref.soc()));
272 else if(ref.node().reg().valid()) 286 else if(ref.node().reg().valid())