mainwindow: show active project filename in the titlebar
This commit is contained in:
@@ -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)"));
|
||||
|
||||
@@ -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();
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user