1
0
Fork 0
forked from len0rd/rockbox

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>
This commit is contained in:
Amaury Pouly 2014-09-18 21:36:17 +02:00
parent dbb59291e7
commit 970c2482dd
7 changed files with 129 additions and 48 deletions

View file

@ -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()