summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/regtab.cpp
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-09-18 21:36:17 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2014-09-19 10:58:33 +0200
commit970c2482dd22a84a5973b73621d0dd06e6f45a25 (patch)
tree3131c033b3f3e385eceed7beb16e8b143ff0caf1 /utils/regtools/qeditor/regtab.cpp
parentdbb59291e745c7cc640a35fc40faa083648793bf (diff)
downloadrockbox-970c2482dd22a84a5973b73621d0dd06e6f45a25.zip
rockbox-970c2482dd22a84a5973b73621d0dd06e6f45a25.tar.gz
rockbox-970c2482dd22a84a5973b73621d0dd06e6f45a25.tar.bz2
rockbox-970c2482dd22a84a5973b73621d0dd06e6f45a25.tar.xz
qeditor: rework modified indicator, register tab names depend on content
Because Qt doesn't support QObject multiple inherance, it is a bit tricky to have a base class which interact with the UI. The register tab name now display: - file dump name (for dumps) - hwstub device path (for hwstub) And the register editor display the filename Change-Id: If2579992098c02627c67d560c824f1668e73bc45 Reviewed-on: http://gerrit.rockbox.org/979 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
Diffstat (limited to 'utils/regtools/qeditor/regtab.cpp')
-rw-r--r--utils/regtools/qeditor/regtab.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/utils/regtools/qeditor/regtab.cpp b/utils/regtools/qeditor/regtab.cpp
index 132308e..f6a7267 100644
--- a/utils/regtools/qeditor/regtab.cpp
+++ b/utils/regtools/qeditor/regtab.cpp
@@ -160,6 +160,11 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
SetDataSocName("");
}
+QWidget *RegTab::GetWidget()
+{
+ return this;
+}
+
RegTab::~RegTab()
{
/* backend will be deleted by backend selector */
@@ -192,6 +197,32 @@ void RegTab::OnDataSocActivated(const QString& str)
m_soc_selector->setCurrentIndex(index);
}
+void RegTab::UpdateTabName()
+{
+ /* do it the ugly way: try to cast to the different possible backends */
+ FileIoBackend *file = dynamic_cast< FileIoBackend* >(m_io_backend);
+#ifdef HAVE_HWSTUB
+ HWStubIoBackend *hwstub = dynamic_cast< HWStubIoBackend* >(m_io_backend);
+#endif
+ if(file)
+ {
+ QFileInfo info(file->GetFileName());
+ SetTabName(info.fileName());
+ }
+#ifdef HAVE_HWSTUB
+ else if(hwstub)
+ {
+ HWStubDevice *dev = hwstub->GetDevice();
+ SetTabName(QString("HWStub %1.%2").arg(dev->GetBusNumber())
+ .arg(dev->GetDevAddress()));
+ }
+#endif
+ else
+ {
+ SetTabName("Register Tab");
+ }
+}
+
void RegTab::OnBackendSelect(IoBackend *backend)
{
m_io_backend = backend;
@@ -199,6 +230,7 @@ void RegTab::OnBackendSelect(IoBackend *backend)
SetDataSocName(m_io_backend->GetSocName());
OnDataSocActivated(m_io_backend->GetSocName());
OnDataChanged();
+ UpdateTabName();
}
void RegTab::SetReadOnlyIndicator()