1
0
Fork 0
forked from len0rd/rockbox

qeditor: rework mainwindow tab names handling

With the previous code, tab names would be ignored if tab is detached
which can happen early on.

Change-Id: I9eac4202850f3e79a04590a4ba1444850ec6a583
Reviewed-on: http://gerrit.rockbox.org/986
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
This commit is contained in:
Amaury Pouly 2014-09-27 13:28:44 +02:00
parent fe1fed8873
commit 3b4e63173d
4 changed files with 20 additions and 7 deletions

View file

@ -43,8 +43,15 @@ void DocumentTab::OnModified(bool modified)
m_tab->SetTabModified(this, modified); m_tab->SetTabModified(this, modified);
} }
void DocumentTab::SetTabWidget(MyTabWidget *tab)
{
m_tab = tab;
SetTabName(m_tabname);
}
void DocumentTab::SetTabName(const QString& name) void DocumentTab::SetTabName(const QString& name)
{ {
m_tabname = name;
if(m_tab) if(m_tab)
m_tab->SetTabName(this, name); m_tab->SetTabName(this, name);
} }
@ -201,20 +208,20 @@ void MainWindow::OnLoadDesc()
} }
} }
void MainWindow::AddTab(DocumentTab *doc, const QString& title) void MainWindow::AddTab(DocumentTab *doc)
{ {
m_tab->setCurrentIndex(m_tab->addTab(doc->GetWidget(), title)); m_tab->setCurrentIndex(m_tab->addTab(doc->GetWidget(), ""));
doc->SetTabWidget(m_tab); doc->SetTabWidget(m_tab);
} }
void MainWindow::OnNewRegTab() void MainWindow::OnNewRegTab()
{ {
AddTab(new RegTab(m_backend, this), "Register Tab"); AddTab(new RegTab(m_backend, this));
} }
void MainWindow::OnNewRegEdit() void MainWindow::OnNewRegEdit()
{ {
AddTab(new RegEdit(m_backend, this), "Register Editor"); AddTab(new RegEdit(m_backend, this));
} }
bool MainWindow::Quit() bool MainWindow::Quit()

View file

@ -35,12 +35,13 @@ public:
DocumentTab() { m_tab = 0; } DocumentTab() { m_tab = 0; }
virtual bool Quit() = 0; virtual bool Quit() = 0;
virtual QWidget *GetWidget() = 0; virtual QWidget *GetWidget() = 0;
void SetTabWidget(MyTabWidget *tab) { m_tab = tab; } void SetTabWidget(MyTabWidget *tab);
protected: protected:
void OnModified(bool modified); void OnModified(bool modified);
void SetTabName(const QString& name); void SetTabName(const QString& name);
MyTabWidget *m_tab; MyTabWidget *m_tab;
QString m_tabname;
}; };
class MyTabWidget : public QTabWidget class MyTabWidget : public QTabWidget
@ -70,7 +71,7 @@ private:
void closeEvent(QCloseEvent *event); void closeEvent(QCloseEvent *event);
protected: protected:
void AddTab(DocumentTab *tab, const QString& title); void AddTab(DocumentTab *tab);
bool Quit(); bool Quit();
private slots: private slots:

View file

@ -961,6 +961,7 @@ RegEdit::RegEdit(Backend *backend, QWidget *parent)
SetModified(false, false); SetModified(false, false);
m_right_panel = 0; m_right_panel = 0;
SetPanel(new EmptyEditPanel(this)); SetPanel(new EmptyEditPanel(this));
UpdateTabName();
connect(m_file_open, SIGNAL(clicked()), this, SLOT(OnOpen())); connect(m_file_open, SIGNAL(clicked()), this, SLOT(OnOpen()));
connect(m_file_save, SIGNAL(clicked()), this, SLOT(OnSave())); connect(m_file_save, SIGNAL(clicked()), this, SLOT(OnSave()));
@ -1080,7 +1081,10 @@ bool RegEdit::SaveSocFile(const QString& filename)
void RegEdit::UpdateTabName() void RegEdit::UpdateTabName()
{ {
QFileInfo info(m_cur_socfile.GetFilename()); QFileInfo info(m_cur_socfile.GetFilename());
SetTabName(info.fileName()); if(info.exists())
SetTabName(info.fileName());
else
SetTabName("Register Editor");
} }
void RegEdit::LoadSocFile(const QString& filename) void RegEdit::LoadSocFile(const QString& filename)

View file

@ -178,6 +178,7 @@ RegTab::RegTab(Backend *backend, QWidget *parent)
OnSocListChanged(); OnSocListChanged();
SetDataSocName(""); SetDataSocName("");
UpdateTabName();
} }
QWidget *RegTab::GetWidget() QWidget *RegTab::GetWidget()