Auto save timer setting
This commit is contained in:
@@ -799,8 +799,8 @@ int main( int argc, char * * argv )
|
||||
if( autoSaveEnabled &&
|
||||
gui->mainWindow()->getSession() != MainWindow::SessionState::Limited )
|
||||
{
|
||||
gui->mainWindow()->runAutoSave();
|
||||
gui->mainWindow()->autoSaveTimerStart();
|
||||
gui->mainWindow()->autoSaveTimerReset();
|
||||
gui->mainWindow()->autoSave();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -203,10 +203,16 @@ MainWindow::MainWindow() :
|
||||
{
|
||||
// connect auto save
|
||||
connect(&m_autoSaveTimer, SIGNAL(timeout()), this, SLOT(autoSave()));
|
||||
m_autoSaveInterval = ConfigManager::inst()->value(
|
||||
"ui", "saveinterval" ).toInt() < 1 ?
|
||||
DEFAULT_AUTO_SAVE_INTERVAL :
|
||||
ConfigManager::inst()->value(
|
||||
"ui", "saveinterval" ).toInt();
|
||||
|
||||
// The auto save function mustn't run until there is a project
|
||||
// to save or it will run over recover.mmp if you hesitate at the
|
||||
// recover messagebox for a minute. It is now started in main.
|
||||
// See autoSaveTimerStart() in MainWindow.h
|
||||
// See autoSaveTimerReset() in MainWindow.h
|
||||
}
|
||||
|
||||
connect( Engine::getSong(), SIGNAL( playbackStateChanged() ),
|
||||
@@ -1507,14 +1513,19 @@ void MainWindow::browseHelp()
|
||||
void MainWindow::autoSave()
|
||||
{
|
||||
if( !( Engine::getSong()->isPlaying() ||
|
||||
Engine::getSong()->isExporting() ) )
|
||||
Engine::getSong()->isExporting() ||
|
||||
QApplication::mouseButtons() ) )
|
||||
{
|
||||
Engine::getSong()->saveProjectFile(ConfigManager::inst()->recoveryFile());
|
||||
autoSaveTimerReset(); // Reset timer
|
||||
}
|
||||
else
|
||||
{
|
||||
// try again in 10 seconds
|
||||
QTimer::singleShot( 10*1000, this, SLOT( autoSave() ) );
|
||||
if( getAutoSaveTimerInterval() != m_autoSaveShortTime )
|
||||
{
|
||||
autoSaveTimerReset( m_autoSaveShortTime );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1527,5 +1538,6 @@ void MainWindow::runAutoSave()
|
||||
getSession() != Limited )
|
||||
{
|
||||
autoSave();
|
||||
autoSaveTimerReset(); // Reset timer
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "TabWidget.h"
|
||||
#include "gui_templates.h"
|
||||
#include "Mixer.h"
|
||||
#include "MainWindow.h"
|
||||
#include "ProjectJournal.h"
|
||||
#include "ConfigManager.h"
|
||||
#include "embed.h"
|
||||
@@ -121,7 +122,10 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
#endif
|
||||
m_backgroundArtwork( QDir::toNativeSeparators( ConfigManager::inst()->backgroundArtwork() ) ),
|
||||
m_smoothScroll( ConfigManager::inst()->value( "ui", "smoothscroll" ).toInt() ),
|
||||
m_enableAutoSave( ConfigManager::inst()->value( "ui", "enableautosave" ).toInt() ),
|
||||
m_enableAutoSave( ConfigManager::inst()->value( "ui", "enableautosave" ).toInt() ),
|
||||
m_saveInterval( ConfigManager::inst()->value( "ui", "saveinterval" ).toInt() < 1 ?
|
||||
MainWindow::DEFAULT_SAVE_INTERVAL_MINUTES :
|
||||
ConfigManager::inst()->value( "ui", "saveinterval" ).toInt() ),
|
||||
m_oneInstrumentTrackWindow( ConfigManager::inst()->value( "ui",
|
||||
"oneinstrumenttrackwindow" ).toInt() ),
|
||||
m_compactTrackButtons( ConfigManager::inst()->value( "ui",
|
||||
@@ -654,16 +658,61 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
|
||||
|
||||
QWidget * performance = new QWidget( ws );
|
||||
performance->setFixedSize( 360, 240 );
|
||||
performance->setFixedSize( 360, 200 );
|
||||
QVBoxLayout * perf_layout = new QVBoxLayout( performance );
|
||||
perf_layout->setSpacing( 0 );
|
||||
perf_layout->setMargin( 0 );
|
||||
labelWidget( performance, tr( "Performance settings" ) );
|
||||
|
||||
|
||||
TabWidget * auto_save_tw = new TabWidget(
|
||||
tr( "Auto save" ).toUpper(), performance );
|
||||
auto_save_tw->setFixedHeight( 100 );
|
||||
|
||||
m_saveIntervalSlider = new QSlider( Qt::Horizontal, auto_save_tw );
|
||||
m_saveIntervalSlider->setRange( 1, 20 );
|
||||
m_saveIntervalSlider->setTickPosition( QSlider::TicksBelow );
|
||||
m_saveIntervalSlider->setPageStep( 1 );
|
||||
m_saveIntervalSlider->setTickInterval( 1 );
|
||||
m_saveIntervalSlider->setGeometry( 10, 16, 340, 18 );
|
||||
m_saveIntervalSlider->setValue( m_saveInterval );
|
||||
|
||||
connect( m_saveIntervalSlider, SIGNAL( valueChanged( int ) ), this,
|
||||
SLOT( setAutoSaveInterval( int ) ) );
|
||||
|
||||
m_saveIntervalLbl = new QLabel( auto_save_tw );
|
||||
m_saveIntervalLbl->setGeometry( 10, 40, 200, 24 );
|
||||
setAutoSaveInterval( m_saveIntervalSlider->value() );
|
||||
|
||||
LedCheckBox * autoSave = new LedCheckBox(
|
||||
tr( "Enable auto save feature" ), auto_save_tw );
|
||||
autoSave->move( 10, 70 );
|
||||
autoSave->setChecked( m_enableAutoSave );
|
||||
connect( autoSave, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleAutoSave( bool ) ) );
|
||||
if( ! m_enableAutoSave ){ m_saveIntervalSlider->setEnabled( false ); }
|
||||
|
||||
QPushButton * saveIntervalResetBtn = new QPushButton(
|
||||
embed::getIconPixmap( "reload" ), "", auto_save_tw );
|
||||
saveIntervalResetBtn->setGeometry( 290, 50, 28, 28 );
|
||||
connect( saveIntervalResetBtn, SIGNAL( clicked() ), this,
|
||||
SLOT( resetAutoSaveInterval() ) );
|
||||
ToolTip::add( bufsize_reset_btn, tr( "Reset to default-value" ) );
|
||||
|
||||
QPushButton * saventervalBtn = new QPushButton(
|
||||
embed::getIconPixmap( "help" ), "", auto_save_tw );
|
||||
saventervalBtn->setGeometry( 320, 50, 28, 28 );
|
||||
connect( saventervalBtn, SIGNAL( clicked() ), this,
|
||||
SLOT( displaySaveIntervalHelp() ) );
|
||||
|
||||
perf_layout->addWidget( auto_save_tw );
|
||||
perf_layout->addSpacing( 10 );
|
||||
|
||||
|
||||
TabWidget * ui_fx_tw = new TabWidget( tr( "UI effects vs. "
|
||||
"performance" ).toUpper(),
|
||||
performance );
|
||||
ui_fx_tw->setFixedHeight( 80 );
|
||||
ui_fx_tw->setFixedHeight( 70 );
|
||||
|
||||
LedCheckBox * smoothScroll = new LedCheckBox(
|
||||
tr( "Smooth scroll in Song Editor" ), ui_fx_tw );
|
||||
@@ -672,19 +721,10 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
connect( smoothScroll, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleSmoothScroll( bool ) ) );
|
||||
|
||||
|
||||
LedCheckBox * autoSave = new LedCheckBox(
|
||||
tr( "Enable auto save feature" ), ui_fx_tw );
|
||||
autoSave->move( 10, 40 );
|
||||
autoSave->setChecked( m_enableAutoSave );
|
||||
connect( autoSave, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleAutoSave( bool ) ) );
|
||||
|
||||
|
||||
LedCheckBox * animAFP = new LedCheckBox(
|
||||
tr( "Show playback cursor in AudioFileProcessor" ),
|
||||
ui_fx_tw );
|
||||
animAFP->move( 10, 60 );
|
||||
animAFP->move( 10, 40 );
|
||||
animAFP->setChecked( m_animateAFP );
|
||||
connect( animAFP, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( toggleAnimateAFP( bool ) ) );
|
||||
@@ -986,6 +1026,8 @@ void SetupDialog::accept()
|
||||
QString::number( m_smoothScroll ) );
|
||||
ConfigManager::inst()->setValue( "ui", "enableautosave",
|
||||
QString::number( m_enableAutoSave ) );
|
||||
ConfigManager::inst()->setValue( "ui", "saveinterval",
|
||||
QString::number( m_saveInterval ) );
|
||||
ConfigManager::inst()->setValue( "ui", "oneinstrumenttrackwindow",
|
||||
QString::number( m_oneInstrumentTrackWindow ) );
|
||||
ConfigManager::inst()->setValue( "ui", "compacttrackbuttons",
|
||||
@@ -1169,6 +1211,7 @@ void SetupDialog::toggleSmoothScroll( bool _enabled )
|
||||
void SetupDialog::toggleAutoSave( bool _enabled )
|
||||
{
|
||||
m_enableAutoSave = _enabled;
|
||||
m_saveIntervalSlider->setEnabled( _enabled );
|
||||
}
|
||||
|
||||
|
||||
@@ -1471,6 +1514,41 @@ void SetupDialog::setBackgroundArtwork( const QString & _ba )
|
||||
|
||||
|
||||
|
||||
void SetupDialog::setAutoSaveInterval( int value )
|
||||
{
|
||||
m_saveInterval = value;
|
||||
m_saveIntervalSlider->setValue( m_saveInterval );
|
||||
QString minutes = m_saveInterval > 1 ? tr( "minutes" ) : tr( "minute" );
|
||||
m_saveIntervalLbl->setText( tr( "Auto save interval: %1 %2" ).arg(
|
||||
QString::number( m_saveInterval ), minutes ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::resetAutoSaveInterval()
|
||||
{
|
||||
if( m_enableAutoSave )
|
||||
{
|
||||
setAutoSaveInterval( MainWindow::DEFAULT_SAVE_INTERVAL_MINUTES );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::displaySaveIntervalHelp()
|
||||
{
|
||||
QWhatsThis::showText( QCursor::pos(),
|
||||
tr( "Set the time between automatic backup to %1.\n"
|
||||
"Remember to also save your project manually." ).arg(
|
||||
ConfigManager::inst()->recoveryFile() ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::audioInterfaceChanged( const QString & _iface )
|
||||
{
|
||||
for( AswMap::iterator it = m_audioIfaceSetupWidgets.begin();
|
||||
|
||||
Reference in New Issue
Block a user