diff --git a/app/Settings.cpp b/app/Settings.cpp new file mode 100644 index 0000000..f074854 --- /dev/null +++ b/app/Settings.cpp @@ -0,0 +1,161 @@ +/* This file is a part of plaYUVer project + * Copyright (C) 2014 by Luis Lucas (luisfrlucas@gmail.com) + * Joao Carreira (jfmcarreira@gmail.com) + * + * 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. + */ + +/** + * \file Settings.h + * \brief App settings + */ + +#include "Settings.h" + +namespace plaYUVer +{ + +Settings::Settings() : + m_settings( "pixLRA", "plaYUVer" ) +{ +} +// - - - - - - - - - - - - Main Window Settings - - - - - - - - - - - - - - - - + +QPoint Settings::mainWindowPos() +{ + return m_settings.value( "MainWindow/pos", QPoint( 200, 200 ) ).toPoint(); +} + +Void Settings::setMainWindowPos( const QPoint & pos ) +{ + m_settings.setValue( "MainWindow/pos", pos ); +} + +QSize Settings::mainWindowSize() +{ + return m_settings.value( "MainWindow/size", QSize( 500, 400 ) ).toSize(); +} + +Void Settings::setMainWindowSize( const QSize & size ) +{ + m_settings.setValue( "MainWindow/size", size ); +} + +QString Settings::lastOpenPath() +{ + return m_settings.value( "MainWindow/lastOpenPath", QDir::homePath() ).toString(); +} + +Void Settings::setLastOpenPath( const QString & path ) +{ + m_settings.setValue( "MainWindow/lastOpenPath", path ); +} + +Int Settings::getSelectedTool() +{ + return m_settings.value( "MainWindow/SelectedTool", ViewArea::NavigationTool ).toInt(); +} + +Void Settings::setSelectedTool( Int tool ) +{ + m_settings.setValue( "MainWindow/SelectedTool", tool ); +} + +Void Settings::setDockVisibility( Bool statusStreamProperties, Bool statusFrameProperties, Bool statusQualityMeasurement ) +{ + m_settings.setValue( "Dock/StreamProperties", statusStreamProperties ); + m_settings.setValue( "Dock/FrameProperties", statusFrameProperties ); + m_settings.setValue( "Dock/QualityMeasurement", statusQualityMeasurement ); +} + +Void Settings::getDockVisibility( Bool& statusStreamProperties, Bool& statusFrameProperties, Bool& statusQualityMeasurement ) +{ + statusStreamProperties = m_settings.value( "Dock/StreamProperties", true ).toBool(); + statusFrameProperties = m_settings.value( "Dock/FrameProperties", true ).toBool(); + statusQualityMeasurement = m_settings.value( "Dock/QualityMeasurement", true ).toBool(); +} + +// - - - - - - - - - - - - PLaying Settings - - - - - - - - - - - - - - - - + +Bool Settings::getRepeat() +{ + return m_settings.value( "Playing/Repeat", false ).toBool(); +} +Bool Settings::getVideoLock() +{ + return m_settings.value( "Playing/VideoLock", false ).toBool(); +} +Void Settings::setPlayingSettings( Bool repeat, Bool lock ) +{ + m_settings.setValue( "Playing/Repeat", repeat ); + m_settings.setValue( "Playing/VideoLock", lock ); +} + +Void Settings::setRecentFileList( PlaYUVerStreamInfoVector recentFileList ) +{ + QVariant var; + var.setValue( recentFileList ); + m_settings.setValue("MainWindow/RecentFileList", var ); +} + +QVector Settings::getRecentFileList() +{ + QVariant value = m_settings.value("MainWindow/RecentFileList"); + return value.value(); +} + +// - - - - - - - - - - - - - - Grid Settings - - - - - - - - - - - - - - - - - - + +GridManager::Style Settings::gridStyle() +{ + return ( GridManager::Style )m_settings.value( "Grid/style", 0 ).toInt(); +} + +void Settings::setGridStyle( GridManager::Style v ) +{ + m_settings.setValue( "Grid/style", v ); +} + +QColor Settings::gridColor() +{ + return m_settings.value( "Grid/color", QColor( Qt::white ) ).value(); +} + +Void Settings::setGridColor( const QColor & v ) +{ + m_settings.setValue( "Grid/color", v ); +} + +Int Settings::gridHSpacing() +{ + return m_settings.value( "Grid/hSpacing", 16 ).toInt(); +} + +Void Settings::setGridHSpacing( Int v ) +{ + m_settings.setValue( "Grid/hSpacing", v ); +} + +Int Settings::gridVSpacing() +{ + return m_settings.value( "Grid/vSpacing", 16 ).toInt(); +} + +Void Settings::setGridVSpacing( Int v ) +{ + m_settings.setValue( "Grid/vSpacing", v ); +} + +} // NAMESPACE diff --git a/app/Settings.h b/app/Settings.h new file mode 100644 index 0000000..be42efd --- /dev/null +++ b/app/Settings.h @@ -0,0 +1,86 @@ +/* This file is a part of plaYUVer project + * Copyright (C) 2014 by Luis Lucas (luisfrlucas@gmail.com) + * Joao Carreira (jfmcarreira@gmail.com) + * + * 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. + */ + +/** + * \file Settings.h + * \brief App settings + */ + +#ifndef __SETTINGS_H__ +#define __SETTINGS_H__ + +#include "config.h" +#include "lib/PlaYUVerDefs.h" +#include +#include "GridManager.h" +#include "SubWindowHandle.h" + +namespace plaYUVer +{ + +class Settings +{ + +public: + Settings(); + + // - - - - - - - - - - Main Window Settings - - - - - - - - - - - - - + QPoint mainWindowPos(); + Void setMainWindowPos( const QPoint &v ); + + QSize mainWindowSize(); + Void setMainWindowSize( const QSize &v ); + + QString lastOpenPath(); + Void setLastOpenPath( const QString &v ); + + Int getSelectedTool(); + Void setSelectedTool( Int); + + Bool getRepeat(); + Bool getVideoLock(); + Void setPlayingSettings( Bool repeat, Bool lock ); + + Void setDockVisibility( Bool statusStreamProperties, Bool statusFrameProperties, Bool statusQualityMeasurement ); + Void getDockVisibility( Bool& statusStreamProperties, Bool& statusFrameProperties, Bool& statusQualityMeasurement ); + + // - - - - - - - - - - Recent Files Settings - - - - - - - - - - - - - + Void setRecentFileList( PlaYUVerStreamInfoVector recentFileList ); + PlaYUVerStreamInfoVector getRecentFileList(); + + // - - - - - - - - - - - - Grid Settings - - - - - - - - - - - - - - - + GridManager::Style gridStyle(); + Void setGridStyle( GridManager::Style v ); + + QColor gridColor(); + Void setGridColor( const QColor &v ); + + Int gridHSpacing(); + Void setGridHSpacing( Int v ); + + Int gridVSpacing(); + Void setGridVSpacing( Int v ); + +private: + QSettings m_settings; +}; + +} // NAMESPACE + +#endif // __Settings_H__