From 2e05ad34a58a8c20e70aa58201ad494e252171d3 Mon Sep 17 00:00:00 2001 From: Hugo Beauzee-Luyssen Date: Fri, 4 Dec 2009 21:31:33 +0100 Subject: [PATCH] Window's name is updated according to the project state --- src/GUI/MainWindow.cpp | 14 ++++++++++++++ src/GUI/MainWindow.h | 31 ++++++++++++++++--------------- src/Project/ProjectManager.cpp | 6 ++++++ src/Project/ProjectManager.h | 3 +++ 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/GUI/MainWindow.cpp b/src/GUI/MainWindow.cpp index 30ae759ce..63e3efe79 100644 --- a/src/GUI/MainWindow.cpp +++ b/src/GUI/MainWindow.cpp @@ -53,6 +53,7 @@ #include "Import.h" #include "MediaLibraryWidget.h" #include "LanguagePreferences.h" +#include "ProjectManager.h" MainWindow::MainWindow( QWidget *parent ) : QMainWindow( parent ), m_renderer( NULL ) @@ -83,6 +84,9 @@ MainWindow::MainWindow( QWidget *parent ) : connect( this, SIGNAL( toolChanged( ToolButtons ) ), m_timeline, SLOT( setTool( ToolButtons ) ) ); + connect( ProjectManager::getInstance(), SIGNAL( projectChanged( const QString&, bool ) ), + this, SLOT( projectChanged( const QString&, bool ) ) ); + QSettings s; // Restore the geometry restoreGeometry( s.value( "MainWindowGeometry" ).toByteArray() ); @@ -414,3 +418,13 @@ void MainWindow::closeEvent( QCloseEvent* e ) else e->accept(); } + +void MainWindow::projectChanged( const QString& projectName, bool savedStatus ) +{ + QString title = tr( "VideoLAN Movie Creator" ); + title += " "; + title += projectName; + if ( savedStatus == false ) + title += " *"; + setWindowTitle( title ); +} diff --git a/src/GUI/MainWindow.h b/src/GUI/MainWindow.h index 8acb583b3..9045aff9c 100644 --- a/src/GUI/MainWindow.h +++ b/src/GUI/MainWindow.h @@ -79,21 +79,22 @@ private: ProjectWizard* m_pWizard; private slots: - void on_actionBypass_effects_engine_toggled(bool ); - void on_actionFullscreen_triggered( bool checked ); - void on_actionQuit_triggered(); - void on_actionAbout_triggered(); - void on_actionPreferences_triggered(); - void on_actionTranscode_triggered(); - void on_actionRender_triggered(); - void on_actionNew_Project_triggered(); - void on_actionLoad_Project_triggered(); - void on_actionSave_triggered(); - void on_actionImport_triggered(); - void on_actionHelp_triggered(); - void on_actionProject_Preferences_triggered(); - void on_actionProject_Wizard_triggered(); - void toolButtonClicked( int id ); + void on_actionBypass_effects_engine_toggled(bool ); + void on_actionFullscreen_triggered( bool checked ); + void on_actionQuit_triggered(); + void on_actionAbout_triggered(); + void on_actionPreferences_triggered(); + void on_actionTranscode_triggered(); + void on_actionRender_triggered(); + void on_actionNew_Project_triggered(); + void on_actionLoad_Project_triggered(); + void on_actionSave_triggered(); + void on_actionImport_triggered(); + void on_actionHelp_triggered(); + void on_actionProject_Preferences_triggered(); + void on_actionProject_Wizard_triggered(); + void toolButtonClicked( int id ); + void projectChanged( const QString& projectName, bool savedStatus ); signals: void translateDockWidgetTitle(); diff --git a/src/Project/ProjectManager.cpp b/src/Project/ProjectManager.cpp index c40e9414f..434323fc1 100644 --- a/src/Project/ProjectManager.cpp +++ b/src/Project/ProjectManager.cpp @@ -30,6 +30,7 @@ ProjectManager::ProjectManager() : m_projectFile( NULL ), m_needSave( false ) { + } ProjectManager::~ProjectManager() @@ -46,12 +47,17 @@ bool ProjectManager::needSave() const void ProjectManager::cleanChanged( bool val ) { m_needSave = !val; + if ( m_projectFile != NULL ) + emit projectChanged( m_projectFile->fileName(), val ); + else + emit projectChanged( tr( "" ), val ); } void ProjectManager::loadTimeline() { QDomElement root = m_domDocument->documentElement(); MainWorkflow::getInstance()->loadProject( root.firstChildElement( "timeline" ) ); + emit projectChanged( m_projectFile->fileName(), true ); } void ProjectManager::loadProject() diff --git a/src/Project/ProjectManager.h b/src/Project/ProjectManager.h index 475100249..1073d00cd 100644 --- a/src/Project/ProjectManager.h +++ b/src/Project/ProjectManager.h @@ -55,6 +55,9 @@ private: private slots: void loadTimeline(); void cleanChanged( bool val ); + +signals: + void projectChanged( const QString& projectName, bool savedState ); }; #endif // PROJECTMANAGER_H -- GitLab