diff options
Diffstat (limited to 'utils/regtools/qeditor/regtab.cpp')
-rw-r--r-- | utils/regtools/qeditor/regtab.cpp | 38 |
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 | ||
241 | void RegTab::SetReadOnlyIndicator() | 254 | void RegTab::SetReadOnlyIndicator() |
@@ -267,6 +280,7 @@ void RegTab::OnAnalyserClicked(QListWidgetItem *current) | |||
267 | 280 | ||
268 | void RegTab::DisplayNode(const soc_desc::node_inst_t& ref) | 281 | void 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()) |