[vlmc-devel] [PATCH 1/3] Remove AutomaticBackup class

Hugo Beauzée-Luyssen hugo at beauzee.fr
Mon Mar 7 13:37:18 CET 2016


On 03/07/2016 12:43 PM, Yikai Lu wrote:
> It is not needed as a class therefore being merged into Project.
> ---
>   src/CMakeLists.txt              |  5 +--
>   src/Main/Core.cpp               | 13 +------
>   src/Main/Core.h                 |  2 -
>   src/Project/AutomaticBackup.cpp | 84 -----------------------------------------
>   src/Project/AutomaticBackup.h   | 52 -------------------------
>   src/Project/Project.cpp         | 54 ++++++++++++++++++++++++--
>   src/Project/Project.h           |  7 +++-
>   7 files changed, 59 insertions(+), 158 deletions(-)
>   delete mode 100644 src/Project/AutomaticBackup.cpp
>   delete mode 100644 src/Project/AutomaticBackup.h
>
> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
> index 3ec6c87..ea4867e 100644
> --- a/src/CMakeLists.txt
> +++ b/src/CMakeLists.txt
> @@ -32,11 +32,10 @@ SET(VLMC_SRCS
>       Media/Clip.cpp
>       Media/Media.cpp
>       Metadata/MetaDataManager.cpp
> -	Project/AutomaticBackup.cpp
> -	Project/Project.cpp
> +    Project/Project.cpp
>       Project/Workspace.cpp
>       Project/WorkspaceWorker.cpp
> -	Project/RecentProjects.cpp
> +    Project/RecentProjects.cpp
>       Renderer/ClipRenderer.cpp
>       Renderer/GenericRenderer.cpp
>       Renderer/WorkflowFileRenderer.cpp
> diff --git a/src/Main/Core.cpp b/src/Main/Core.cpp
> index d1fac98..472f458 100644
> --- a/src/Main/Core.cpp
> +++ b/src/Main/Core.cpp
> @@ -36,7 +36,6 @@
>   #include <Backend/IBackend.h>
>   #include <EffectsEngine/EffectsEngine.h>
>   #include "Library/Library.h"
> -#include "Project/AutomaticBackup.h"
>   #include "Project/RecentProjects.h"
>   #include "Project/Workspace.h"
>   #include "Renderer/WorkflowRenderer.h"
> @@ -53,20 +52,17 @@ Core::Core()
>
>       createSettings();
>       m_recentProjects = new RecentProjects( m_settings );
> -    m_automaticBackup = new AutomaticBackup( m_settings );
>       m_workspace = new Workspace( m_settings );
>       m_workflow = new MainWorkflow;
>       m_workflowRenderer = new WorkflowRenderer( Backend::getBackend(), m_workflow );
>       m_undoStack = new QUndoStack;
>       m_library = new Library( m_workspace );
> -    m_currentProject = new Project;
> +    m_currentProject = new Project( m_settings );
>
>       connect( m_undoStack, SIGNAL( cleanChanged( bool ) ), m_currentProject, SLOT( cleanChanged( bool ) ) );
>       connect( m_currentProject, SIGNAL( projectSaved() ), m_undoStack, SLOT( setClean() ) );
>       connect( m_library, SIGNAL( cleanStateChanged( bool ) ), m_currentProject, SLOT( libraryCleanChanged( bool ) ) );
>
> -    //FIXME: Pass the project through the constructor since it doesn't change anymore
> -    m_automaticBackup->setProject( m_currentProject );
>       m_recentProjects->setProject( m_currentProject );
>   }
>
> @@ -79,7 +75,6 @@ Core::~Core()
>       delete m_workflow;
>       delete m_currentProject;
>       delete m_workspace;
> -    delete m_automaticBackup;
>       delete m_settings;
>       delete m_logger;
>       delete m_effectsEngine;
> @@ -128,12 +123,6 @@ Core::recentProjects()
>       return m_recentProjects;
>   }
>
> -AutomaticBackup*
> -Core::automaticBackup()
> -{
> -    return m_automaticBackup;
> -}
> -
>   bool
>   Core::loadProject(const QString& fileName)
>   {
> diff --git a/src/Main/Core.h b/src/Main/Core.h
> index b4e26e0..52463a6 100644
> --- a/src/Main/Core.h
> +++ b/src/Main/Core.h
> @@ -54,7 +54,6 @@ class Core : public QObject
>           Settings*               settings();
>           VlmcLogger*             logger();
>           RecentProjects*         recentProjects();
> -        AutomaticBackup*        automaticBackup();
>           Workspace*              workspace();
>           Project*                project();
>           WorkflowRenderer*       workflowRenderer();
> @@ -80,7 +79,6 @@ class Core : public QObject
>           Settings*               m_settings;
>           VlmcLogger*             m_logger;
>           RecentProjects*         m_recentProjects;
> -        AutomaticBackup*        m_automaticBackup;
>           Workspace*              m_workspace;
>           Project*                m_currentProject;
>           MainWorkflow*           m_workflow;
> diff --git a/src/Project/AutomaticBackup.cpp b/src/Project/AutomaticBackup.cpp
> deleted file mode 100644
> index 5018a91..0000000
> --- a/src/Project/AutomaticBackup.cpp
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/*****************************************************************************
> - * AutomaticBackup.cpp: Handles the project automatic backup & associated settings
> - *****************************************************************************
> - * Copyright (C) 2008-2014 VideoLAN
> - *
> - * Authors: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
> - *****************************************************************************/
> -
> -#include <QTimer>
> -
> -#include "AutomaticBackup.h"
> -#include "Project.h"
> -#include "Settings/Settings.h"
> -
> -AutomaticBackup::AutomaticBackup( Settings* vlmcSettings, QObject *parent )
> -    : QObject(parent)
> -    , m_vlmcSettings( vlmcSettings )
> -{
> -    m_timer = new QTimer( this );
> -	SettingValue* autoBackup = m_vlmcSettings->createVar( SettingValue::Bool, "vlmc/AutomaticBackup", false,
> -									 QT_TRANSLATE_NOOP( "PreferenceWidget", "Automatic save" ),
> -									 QT_TRANSLATE_NOOP( "PreferenceWidget", "When this option is activated,"
> -														 "VLMC will automatically save your project "
> -														 "at a specified interval" ), SettingValue::Nothing );
> -	SettingValue* interval = m_vlmcSettings->createVar( SettingValue::Int, "vlmc/AutomaticBackupInterval", 5,
> -									QT_TRANSLATE_NOOP( "PreferenceWidget", "Automatic save interval" ),
> -									QT_TRANSLATE_NOOP( "PreferenceWidget", "This is the interval that VLMC will wait "
> -														"between two automatic save" ), SettingValue::Nothing );
> -
> -	connect( autoBackup, SIGNAL( changed( QVariant ) ), this, SLOT( automaticSaveEnabledChanged( QVariant ) ) );
> -	connect( interval, SIGNAL( changed( QVariant ) ), this, SLOT( automaticSaveIntervalChanged( QVariant ) ) );
> -}
> -
> -AutomaticBackup::~AutomaticBackup()
> -{
> -    delete m_timer;
> -}
> -
> -void
> -AutomaticBackup::setProject( Project* projectManager )
> -{
> -    m_timer->disconnect();
> -    connect( m_timer, SIGNAL( timeout() ), projectManager, SLOT(autoSaveRequired() ) );
> -    connect( projectManager, SIGNAL( destroyed() ), m_timer, SLOT( stop() ) );
> -    m_timer->start();
> -}
> -
> -void
> -AutomaticBackup::automaticSaveEnabledChanged( const QVariant& val )
> -{
> -    bool    enabled = val.toBool();
> -
> -    if ( enabled == true )
> -    {
> -        int interval = m_vlmcSettings->value( "vlmc/AutomaticBackupInterval" )->get().toInt();
> -        m_timer->start( interval * 1000 * 60 );
> -    }
> -    else
> -        m_timer->stop();
> -}
> -
> -void
> -AutomaticBackup::automaticSaveIntervalChanged( const QVariant& val )
> -{
> -    bool enabled = m_vlmcSettings->value( "vlmc/AutomaticBackup" )->get().toBool();
> -
> -    if ( enabled == false )
> -        return ;
> -    m_timer->start( val.toInt() * 1000 * 60 );
> -}
> diff --git a/src/Project/AutomaticBackup.h b/src/Project/AutomaticBackup.h
> deleted file mode 100644
> index bbfdc5b..0000000
> --- a/src/Project/AutomaticBackup.h
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -/*****************************************************************************
> - * AutomaticBackup.h: Handles the project automatic backup & associated settings
> - *****************************************************************************
> - * Copyright (C) 2008-2014 VideoLAN
> - *
> - * Authors: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
> - *
> - * This program is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License
> - * as published by the Free Software Foundation; either version 2
> - * of the License, or (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
> - *****************************************************************************/
> -
> -#ifndef AUTOMATICBACKUP_H
> -#define AUTOMATICBACKUP_H
> -
> -class QTimer;
> -
> -class Project;
> -class Settings;
> -
> -#include <QObject>
> -
> -class AutomaticBackup : public QObject
> -{
> -    Q_OBJECT
> -
> -    public:
> -        explicit AutomaticBackup( Settings* vlmcSettings, QObject *parent = 0 );
> -        virtual ~AutomaticBackup();
> -        void    setProject( Project* projectManager );
> -
> -    private:
> -        Settings*   m_vlmcSettings;
> -        QTimer*     m_timer;
> -
> -    private slots:
> -        void            automaticSaveEnabledChanged( const QVariant& enabled );
> -        void            automaticSaveIntervalChanged( const QVariant& interval );
> -
> -};
> -
> -#endif // AUTOMATICBACKUP_H
> diff --git a/src/Project/Project.cpp b/src/Project/Project.cpp
> index af3eeaf..3800e51 100644
> --- a/src/Project/Project.cpp
> +++ b/src/Project/Project.cpp
> @@ -25,8 +25,9 @@
>   #include <QFile>
>   #include <QFileInfo>
>   #include <QDomDocument>
> +#include <QTimer>
> +
>
> -#include "AutomaticBackup.h"
>   #include "Backend/IBackend.h"
>   #include "Project.h"
>   #include "RecentProjects.h"
> @@ -42,19 +43,41 @@
>   const QString   Project::unNamedProject = Project::tr( "Untitled Project" );
>   const QString   Project::backupSuffix = "~";
>
> -Project::Project()
> +Project::Project( Settings* settings )
>       : m_projectFile( nullptr )
>       , m_isClean( true )
>       , m_libraryCleanState( true )
> +    , m_timer( new QTimer( this ) )
> +    , m_settings( new Settings( QString() ) )
>   {
> -    m_settings = new Settings( QString() );
>       initSettings();
> +
> +    SettingValue    *automaticBackup = settings->createVar( SettingValue::Bool, "vlmc/AutomaticBackup", false,
> +                                     QT_TRANSLATE_NOOP( "PreferenceWidget", "Automatic save" ),
> +                                     QT_TRANSLATE_NOOP( "PreferenceWidget", "When this option is activated,"
> +                                                         "VLMC will automatically save your project "
> +                                                         "at a specified interval" ), SettingValue::Nothing );
> +    SettingValue    *automaticBackupInterval = settings->createVar( SettingValue::Int, "vlmc/AutomaticBackupInterval", 5,
> +                                    QT_TRANSLATE_NOOP( "PreferenceWidget", "Automatic save interval" ),
> +                                    QT_TRANSLATE_NOOP( "PreferenceWidget", "This is the interval that VLMC will wait "
> +                                                       "between two automatic save" ), SettingValue::Nothing );
> +
> +    connect( m_timer, SIGNAL( timeout() ), this, SLOT(autoSaveRequired() ) );
> +    connect( this, SIGNAL( destroyed() ), m_timer, SLOT( stop() ) );
> +
> +    connect( automaticBackup, SIGNAL( changed( QVariant ) ),
> +             this, SLOT( autoSaveEnabledChanged( QVariant ) ) );
> +    connect( automaticBackupInterval, SIGNAL( changed( QVariant ) ), this,
> +             SLOT( autoSaveIntervalChanged( QVariant ) ) );
> +
> +    m_timer->start();
>   }
>
>   Project::~Project()
>   {
>       delete m_projectFile;
>       delete m_settings;
> +    delete m_timer;
>   }
>
>   Settings*
> @@ -193,7 +216,7 @@ Project::initSettings()
>   	SettingValue* pName = m_settings->createVar( SettingValue::String, "vlmc/ProjectName", unNamedProject,
>   									QT_TRANSLATE_NOOP( "PreferenceWidget", "Project name" ),
>   									QT_TRANSLATE_NOOP( "PreferenceWidget", "The project name" ),
> -									SettingValue::NotEmpty );
> +                                    SettingValue::NotEmpty );
>       connect( pName, SIGNAL( changed( QVariant ) ), this, SIGNAL( projectUpdated( QVariant ) ) );
>   }
>
> @@ -299,3 +322,26 @@ Project::autoSaveRequired()
>           return ;
>       saveProject( m_projectFile->fileName() + Project::backupSuffix );
>   }
> +
> +
> +void
> +Project::autoSaveEnabledChanged(const QVariant &enabled)
> +{
> +    if ( enabled.toBool() == true )
> +    {
> +        int interval = Core::getInstance()->settings()->value( "vlmc/AutomaticBackupInterval" )->get().toInt();
> +        m_timer->start( interval * 1000 * 60 );
> +    }
> +    else
> +        m_timer->stop();
> +}
> +
> +void
> +Project::autoSaveIntervalChanged(const QVariant &interval)
> +{
> +    bool enabled = Core::getInstance()->settings()->value( "vlmc/AutomaticBackup" )->get().toBool();
> +
> +    if ( enabled == false )
> +        return ;
> +    m_timer->start( interval.toInt() * 1000 * 60 );
> +}
> diff --git a/src/Project/Project.h b/src/Project/Project.h
> index 0c8b53a..3d53d05 100644
> --- a/src/Project/Project.h
> +++ b/src/Project/Project.h
> @@ -33,6 +33,7 @@ class QDomDocument;
>   class QFile;
>   class QString;
>   class QXmlStreamWriter;
> +class QTimer;
>
>   class AutomaticBackup;
>   class Library;
> @@ -49,7 +50,7 @@ class Project : public QObject
>
>       public:
>           Q_DISABLE_COPY( Project );
> -        Project();
> +        Project( Settings* settings );
>
>           virtual ~Project();
>
> @@ -84,6 +85,9 @@ class Project : public QObject
>           void                cleanChanged( bool val );
>           void                libraryCleanChanged( bool val );
>           void                autoSaveRequired();
> +        void                autoSaveEnabledChanged( const QVariant& enabled );
> +        void                autoSaveIntervalChanged( const QVariant& interval );
> +
>
>       signals:
>           /**
> @@ -120,6 +124,7 @@ private:
>           QFile*              m_projectFile;
>           bool                m_isClean;
>           bool                m_libraryCleanState;
> +        QTimer*             m_timer;
>
>       ///////////////////////////////////
>       // Dependent components part below:
>
Applied, thanks!


More information about the Vlmc-devel mailing list