mainwindow: show active project filename in the titlebar

This commit is contained in:
itsmattkc
2020-04-01 13:19:18 +11:00
parent 1363d2b94c
commit 061f7ac20d
6 changed files with 34 additions and 9 deletions
+5 -3
View File
@@ -78,16 +78,18 @@ Project *ProjectPanel::project()
void ProjectPanel::set_project(Project *p)
{
if (project()) {
disconnect(project(), &Project::NameChanged, this, &ProjectPanel::UpdateSubtitle);
disconnect(project(), &Project::NameChanged, this, &ProjectPanel::ProjectNameChanged);
}
explorer_->set_project(p);
if (project()) {
connect(project(), &Project::NameChanged, this, &ProjectPanel::UpdateSubtitle);
connect(project(), &Project::NameChanged, this, &ProjectPanel::ProjectNameChanged);
}
ProjectNameChanged();
UpdateSubtitle();
}
QList<Item *> ProjectPanel::SelectedItems()
@@ -147,7 +149,7 @@ void ProjectPanel::Retranslate()
{
SetTitle(tr("Project"));
ProjectNameChanged();
UpdateSubtitle();
}
void ProjectPanel::ItemDoubleClickSlot(Item *item)
@@ -173,7 +175,7 @@ void ProjectPanel::ShowNewMenu()
new_menu.exec(QCursor::pos());
}
void ProjectPanel::ProjectNameChanged()
void ProjectPanel::UpdateSubtitle()
{
if (project() == nullptr) {
SetSubtitle(tr("(none)"));
+4 -1
View File
@@ -57,6 +57,9 @@ public:
public slots:
void Edit(Item *item);
signals:
void ProjectNameChanged();
private:
virtual void Retranslate() override;
@@ -67,7 +70,7 @@ private slots:
void ShowNewMenu();
void ProjectNameChanged();
void UpdateSubtitle();
};
+11
View File
@@ -106,6 +106,17 @@ const QString &Project::filename() const
return filename_;
}
QString Project::pretty_filename() const
{
QString fn = filename();
if (fn.isEmpty()) {
return tr("(untitled)");
} else {
return fn;
}
}
void Project::set_filename(const QString &s)
{
filename_ = s;
+1
View File
@@ -53,6 +53,7 @@ public:
QString name() const;
const QString& filename() const;
QString pretty_filename() const;
void set_filename(const QString& s);
const QString& ocio_config() const;
+11 -3
View File
@@ -97,6 +97,7 @@ MainWindow::MainWindow(QWidget *parent) :
sequence_viewer_panel_->ConnectTimeBasedPanel(param_panel_);
sequence_viewer_panel_->ConnectTimeBasedPanel(curve_panel_);
connect(project_panel_, &ProjectPanel::ProjectNameChanged, this, &MainWindow::UpdateTitle);
UpdateTitle();
}
@@ -191,6 +192,8 @@ void MainWindow::ProjectOpen(Project* p)
// FIXME Use settings data to create panels and restore state if they exist
project_panel_->set_project(p);
UpdateTitle();
SetDefaultLayout();
}
@@ -231,9 +234,14 @@ void MainWindow::closeEvent(QCloseEvent *e)
void MainWindow::UpdateTitle()
{
setWindowTitle(QStringLiteral("%1 %2 - [*]%3").arg(QApplication::applicationName(),
QApplication::applicationVersion(),
tr("(untitled)")));
if (project_panel_->project()) {
setWindowTitle(QStringLiteral("%1 %2 - [*]%3").arg(QApplication::applicationName(),
QApplication::applicationVersion(),
project_panel_->project()->pretty_filename()));
} else {
setWindowTitle(QStringLiteral("%1 %2").arg(QApplication::applicationName(),
QApplication::applicationVersion()));
}
}
TimelinePanel* MainWindow::AppendTimelinePanel()
+2 -2
View File
@@ -59,8 +59,6 @@ protected:
virtual void closeEvent(QCloseEvent* e) override;
private:
void UpdateTitle();
TimelinePanel* AppendTimelinePanel();
void TimelineFocused(TimelinePanel *panel);
@@ -82,6 +80,8 @@ private:
private slots:
void FocusedPanelChanged(PanelWidget* panel);
void UpdateTitle();
};
#endif