00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
#include <qlayout.h>
00013
#include <qlabel.h>
00014
#include <qfont.h>
00015
#include <qframe.h>
00016
#include <qcheckbox.h>
00017
#include <qvgroupbox.h>
00018
#include <qlineedit.h>
00019
#include <qpushbutton.h>
00020
#include <qtooltip.h>
00021
#include <qcombobox.h>
00022
#include <qstringlist.h>
00023
#include <qdir.h>
00024
#include <qfiledialog.h>
00025
#include <qslider.h>
00026
#include <qvalidator.h>
00027
00028
00029
#include "loadingSavingWidget.h"
00030
#include "configuration.h"
00031
#include "../config.h"
00032
00033
00034
#if defined(Q_OS_WIN)
00035
#include <stdlib.h>
00036
#endif
00037
00038
00039 LoadingSavingWidget::LoadingSavingWidget(
Configuration* config,
00040
QWidget* parent,
00041
const char* name ) :
QWidget( parent, name)
00042 {
00043 this->config = config;
00044
00045
categoryLabel =
new QLabel( tr(
"Loading + Saving:"),
this);
00046 QFont labelFont =
categoryLabel->font();
00047 labelFont.setWeight(QFont::Bold);
00048
categoryLabel->setFont( labelFont );
00049
00050
horizontalLine =
new QFrame(
this);
00051
horizontalLine->setLineWidth(2);
00052
horizontalLine->setMidLineWidth(1);
00053
horizontalLine->setFrameStyle( QFrame::HLine | QFrame::Raised );
00054
00055
00056
defaultToThisThemeFrame =
new QFrame(
this );
00057
defaultToThisThemeOnNew =
new QLabel( tr(
"Default new album theme:"),
defaultToThisThemeFrame);
00058
defaultToThisTheme =
new QComboBox(
defaultToThisThemeFrame );
00059
00060
defaultToThisTheme->insertItem( tr(
"Last Used") );
00061 QDir localDir(
THEMES_PATH );
00062 QStringList list = localDir.entryList( QDir::Dirs );
00063 QStringList::Iterator file;
00064
for ( file = list.begin(); file != list.end(); ++file )
00065 {
00066
if(localDir.exists( QString(*file) +
"/theme.xsl" ))
00067
defaultToThisTheme->insertItem( *file );
00068 }
00069
00070
defaultToThisThemeGrid =
new QGridLayout(
defaultToThisThemeFrame, 1, 4, 0);
00071
defaultToThisThemeGrid->addWidget(
defaultToThisThemeOnNew, 0, 0);
00072
defaultToThisThemeGrid->setColSpacing(1, 8);
00073
defaultToThisThemeGrid->addWidget(
defaultToThisTheme, 0, 2);
00074
defaultToThisThemeGrid->setColSpacing(3, 8);
00075
defaultToThisThemeGrid->setColStretch(3, 1);
00076
00077
00078
tempImageDirectoryFrame =
new QFrame(
this );
00079
tempImageDirectory =
new QLabel( tr(
"Temporary image directory:"),
tempImageDirectoryFrame);
00080
tempImageDirectoryVal =
new QLineEdit(
tempImageDirectoryFrame );
00081
tempImageDirectoryVal->setText(
"/home" );
00082
browseButton =
new QPushButton(
tempImageDirectoryFrame );
00083
browseButton->setPixmap( QPixmap(QString(
IMAGE_PATH)+
"buttonIcons/browse.png") );
00084
browseButton->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
00085 QToolTip::add(
browseButton, tr(
"Browse to temporary image directory") );
00086 connect(
browseButton, SIGNAL(clicked()), SLOT(
browse()) );
00087
00088
tempImageDirectoryGrid =
new QGridLayout(
tempImageDirectoryFrame, 1, 5, 0);
00089
tempImageDirectoryGrid->addWidget(
tempImageDirectory, 0, 0);
00090
tempImageDirectoryGrid->setColSpacing(1, 8);
00091
tempImageDirectoryGrid->addWidget(
tempImageDirectoryVal, 0, 2);
00092
tempImageDirectoryGrid->setColStretch(2, 1);
00093
tempImageDirectoryGrid->setColSpacing(3, 8);
00094
tempImageDirectoryGrid->addWidget(
browseButton, 0, 4);
00095
00096
00097
checkPhotoMods =
new QCheckBox( tr(
"Check for photo modifications"),
this );
00098
00099
00100
mainGrid =
new QGridLayout(
this, 6, 1, 0);
00101
mainGrid->setSpacing(
WIDGET_SPACING );
00102
00103
mainGrid->addWidget(
categoryLabel, 0, 0, Qt::AlignLeft );
00104
mainGrid->addWidget(
horizontalLine, 1, 0 );
00105
mainGrid->addWidget(
defaultToThisThemeFrame, 2, 0 );
00106
mainGrid->addWidget(
tempImageDirectoryFrame, 3, 0 );
00107
mainGrid->addWidget(
checkPhotoMods, 4, 0 );
00108
mainGrid->setRowStretch( 5, 1 );
00109
00110 }
00111
00112 void LoadingSavingWidget::browse()
00113 {
00114 QString dirName = QFileDialog::getExistingDirectory(
tempImageDirectoryVal->text(),
00115
this, NULL,
"Temporary Image Directory");
00116
if(!dirName.isNull())
00117
tempImageDirectoryVal->setText( dirName );
00118 }
00119
00120 void LoadingSavingWidget::setDefaults(
Configuration* config)
00121 {
00122 config->
setBool(
"loadSave",
"disableCheckPhotoMods",
true );
00123 config->
setString(
"loadSave",
"defaultTheme",
"Last Used" );
00124 config->
setString(
"loadSave",
"lastUsedTheme",
"Slick" );
00125
00126
00127 config->
setString(
"loadSave",
"tempImageDirectory",
TEMP_DIR );
00128
00129
00130
00131
00132
#if defined(Q_OS_MACX)
00133
config->
setString(
"loadSave",
"loadSaveDir", QDir::homeDirPath() + QString(
"/Pictures") );
00134
00135
00136
#elif defined(Q_OS_WIN)
00137
config->
setString(
"loadSave",
"loadSaveDir",
00138 QDir::convertSeparators( getenv(
"USERPROFILE") +
00139 QString(
"/My Documents/My Pictures") ));
00140
00141
00142
#else
00143
config->
setString(
"loadSave",
"loadSaveDir", QDir::homeDirPath() );
00144
#endif
00145
00146 config->
setString(
"loadSave",
"addPhotoDir", config->
getString(
"loadSave",
"loadSaveDir") );
00147
00148 config->
setBool(
"loadSave",
"useDefaultImageSizes",
true );
00149 config->
setInt(
"loadSave",
"thumbWidth", 200 );
00150 config->
setInt(
"loadSave",
"thumbHeight", 150 );
00151 config->
setInt(
"loadSave",
"slideshowWidth", 600 );
00152 config->
setInt(
"loadSave",
"slideshowHeight", 400 );
00153 config->
setInt(
"loadSave",
"albumWidth", 500 );
00154 config->
setInt(
"loadSave",
"albumHeight", 320 );
00155 config->
setInt(
"loadSave",
"subalbumWidth", 200 );
00156 config->
setInt(
"loadSave",
"subalbumHeight", 150 );
00157 }
00158
00159 void LoadingSavingWidget::loadSettings()
00160 {
00161
checkPhotoMods->setChecked( !
config->
getBool(
"loadSave",
"disableCheckPhotoMods" ));
00162
tempImageDirectoryVal->setText(
config->
getString(
"loadSave",
"tempImageDirectory" ) );
00163
tempImageDirectoryVal->setCursorPosition(0);
00164
00165
int i;
00166
bool defaultTFound =
false;
00167 QString defaultT =
config->
getString(
"loadSave",
"defaultTheme" );
00168
for(i=1; i<
defaultToThisTheme->count(); i++)
00169 {
00170
defaultToThisTheme->setCurrentItem(i);
00171
if(
defaultToThisTheme->currentText().compare( defaultT ) == 0)
00172 {
00173 defaultTFound =
true;
00174
break;
00175 }
00176 }
00177
00178
if(!defaultTFound)
00179
defaultToThisTheme->setCurrentItem(0);
00180 }
00181
00182 void LoadingSavingWidget::saveSettings()
00183 {
00184
config->
setBool(
"loadSave",
"disableCheckPhotoMods", !
checkPhotoMods->isChecked() );
00185
config->
setString(
"loadSave",
"tempImageDirectory",
00186 QDir::convertSeparators( QDir::cleanDirPath(
tempImageDirectoryVal->text() ) ) );
00187
config->
setString(
"loadSave",
"defaultTheme",
defaultToThisTheme->currentText() );
00188 }
00189