00001 #include "karambaconf.h"
00002
00003
00004
00005
00006
00007
00008 KarambaConf::KarambaConf( QWidget* parent, const char* name, bool modal, WFlags fl )
00009 : QDialog( parent, name, modal, fl )
00010 {
00011 loadConfig();
00012 if ( !name ){
00013 setName( "Karamba_conf" );
00014 }
00015 setMinimumSize( QSize( 600, 360 ) );
00016 setMaximumSize( QSize( 600, 360 ) );
00017 setSizeGripEnabled( TRUE );
00018
00019 QWidget* privateLayoutWidget = new QWidget( this, "Layout1" );
00020 privateLayoutWidget->setGeometry( QRect( 11, 326, 575, 27 ) );
00021 Layout1 = new QHBoxLayout( privateLayoutWidget, 0, 6, "Layout1");
00022
00023 buttonHelp = new QPushButton( privateLayoutWidget, "buttonHelp" );
00024 buttonHelp->setAutoDefault( TRUE );
00025 Layout1->addWidget( buttonHelp );
00026 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
00027 Layout1->addItem( spacer );
00028
00029 buttonOk = new QPushButton( privateLayoutWidget, "buttonOk" );
00030 buttonOk->setAutoDefault( TRUE );
00031 buttonOk->setDefault( TRUE );
00032 Layout1->addWidget( buttonOk );
00033
00034 buttonCancel = new QPushButton( privateLayoutWidget, "buttonCancel" );
00035 buttonCancel->setAutoDefault( TRUE );
00036 Layout1->addWidget( buttonCancel );
00037
00038 QWidget* privateLayoutWidget_2 = new QWidget( this, "layout5" );
00039 privateLayoutWidget_2->setGeometry( QRect( 5, 0, 590, 320 ) );
00040 layout5 = new QHBoxLayout( privateLayoutWidget_2, 0, 0, "layout5");
00041
00042 tabWidget = new QTabWidget( privateLayoutWidget_2, "tabWidget" );
00043 tabWidget->setEnabled( TRUE );
00044 tabWidget->setMinimumSize( QSize( 590, 320 ) );
00045 tabWidget->setMaximumSize( QSize( 590, 320 ) );
00046 tabWidget->setAutoMask( TRUE );
00047
00048 Widget2 = new QWidget( tabWidget, "Widget2" );
00049 QWidget* privateLayoutWidget_3 = new QWidget( Widget2, "layout3" );
00050 privateLayoutWidget_3->setGeometry( QRect( 10, 10, 570, 280 ) );
00051 layout3 = new QVBoxLayout( privateLayoutWidget_3, 11, 6, "layout3");
00052
00053 dFolderGroup = new QGroupBox( privateLayoutWidget_3, "dFolderGroup" );
00054 dFolderGroup->setGeometry( QRect( 0, 0, 570, 60 ) );
00055
00056 dFolder = new QLineEdit( dFolderGroup, "dFolder" );
00057 dFolder->setGeometry( QRect( 20, 20, 250, 22 ) );
00058 dFolder->setText( Dir );
00059
00060 browse_1 = new QPushButton( dFolderGroup, "browse_1" );
00061 browse_1->setGeometry( QRect( 300, 20, 100, 28 ) );
00062 layout3->addWidget( dFolderGroup );
00063
00064 dThemeGroup = new QGroupBox( privateLayoutWidget_3, "dThemeGroup" );
00065 dThemeGroup->setGeometry( QRect( 10, 70, 570, 120 ) );
00066
00067 dTheme = new QLineEdit( dThemeGroup, "dTheme" );
00068 dTheme->setGeometry( QRect( 20, 20, 250, 22 ) );
00069 dTheme->setText( Theme );
00070
00071 browse_2 = new QPushButton( dThemeGroup, "browse_2" );
00072 browse_2->setGeometry( QRect( 300, 18, 100, 28 ) );
00073 themeLabel = new QLabel( dThemeGroup, "themeLabel" );
00074 themeLabel->setGeometry( QRect( 10, 50, 530, 40 ) );
00075 layout3->addWidget( dThemeGroup );
00076
00077 dAppsGroup = new QGroupBox( privateLayoutWidget_3, "dAppsGroup" );
00078 dAppsGroup->setGeometry( QRect( 10, 200, 570, 50 ) );
00079 viewerLabel = new QLabel( dAppsGroup, "viewerLabel" );
00080 viewerLabel->setGeometry( QRect( 20, 20, 170, 22 ) );
00081 dViewer = new QLineEdit( dAppsGroup, "dViewer" );
00082 dViewer->setGeometry( QRect( 190, 20, 250, 22 ) );
00083 dViewer->setText( Viewer );
00084 browse_3 = new QPushButton( dAppsGroup, "browse_3" );
00085 browse_3->setGeometry( QRect( 440, 18, 100, 28 ) );
00086 layout3->addWidget( dAppsGroup );
00087
00088 tabWidget->insertTab( Widget2, "" );
00089
00090 Widget3 = new QWidget( tabWidget, "Widget3" );
00091
00092 CoversGroup = new QGroupBox( Widget3, "CoversGroup" );
00093 CoversGroup->setGeometry( QRect( 10, 10, 570, 100 ) );
00094
00095 CoverCheck = new QCheckBox( CoversGroup, "CoverCheck" );
00096 CoverCheck->setGeometry( QRect( 20, 18, 250, 21 ) );
00097 CoverCheck->setChecked(EnableCover);
00098
00099 id3CoverCheck = new QCheckBox( CoversGroup, "id3CoverCheck" );
00100 id3CoverCheck->setGeometry( QRect( 260, 18, 250, 21 ) );
00101 id3CoverCheck->setChecked(EnableId3Cover);
00102
00103 textLabel1 = new QLabel( CoversGroup, "textLabel1" );
00104 textLabel1->setGeometry( QRect( 20, 50, 250, 21 ) );
00105
00106 cWidth = new QLineEdit( CoversGroup, "cWidth" );
00107 cWidth->setGeometry( QRect( 20, 70, 81, 21 ) );
00108 cWidth->setAlignment (Qt::AlignRight);
00109 cWidth->setText( QString::number( CoverWidth ) );
00110
00111 textLabel2 = new QLabel( CoversGroup, "textLabel2" );
00112 textLabel2->setGeometry( QRect( 260, 50, 250, 21 ) );
00113
00114 cHeight = new QLineEdit( CoversGroup, "cHeight" );
00115 cHeight->setGeometry( QRect( 260, 70, 81, 21 ) );
00116 cHeight->setAlignment (Qt::AlignRight);
00117 cHeight->setText( QString::number( CoverHeight ) );
00118
00119 XmmsGroup = new QGroupBox( Widget3, "XmmsGroup" );
00120 XmmsGroup->setGeometry( QRect( 10, 120, 570, 80 ) );
00121
00122 mainWinCheck = new QCheckBox( XmmsGroup, "mainWinCheck" );
00123 mainWinCheck->setGeometry( QRect( 20, 18, 250, 21 ) );
00124 mainWinCheck->setChecked(HideMainWin);
00125
00126 tabWidget->insertTab( Widget3, "" );
00127
00128 Widget4 = new QWidget( tabWidget, "Widget4" );
00129 QWidget* privateLayoutWidget_4 = new QWidget( Widget4, "layout4" );
00130 privateLayoutWidget_4->setGeometry( QRect( 10, 10, 570, 250 ) );
00131 tabWidget2 = new QTabWidget( privateLayoutWidget_4, "tabWidget2" );
00132 tabWidget2->setEnabled( TRUE );
00133 tabWidget2->setMinimumSize( QSize( 570, 250 ) );
00134 tabWidget2->setMaximumSize( QSize( 570, 250 ) );
00135 tabWidget2->setAutoMask( TRUE );
00136 Widget5 = new QWidget( tabWidget2, "Widget5" );
00137 QWidget* privateLayoutWidget_5 = new QWidget( Widget5, "layout5" );
00138 privateLayoutWidget_5->setGeometry( QRect( 10, 10, 550, 210 ) );
00139 textLabel3 = new QLabel(privateLayoutWidget_5 , "textLabel3" );
00140 textLabel3->setGeometry( QRect( 10, 10, 500, 20 ) );
00141 QFont font;
00142 font.setBold( true );
00143 textLabel3->setFont( font );
00144 textLabel4 = new KActiveLabel(privateLayoutWidget_5 , "textLabel4" );
00145 textLabel4->setGeometry( QRect( 10, 40, 500, 40 ) );
00146 Widget6 = new QWidget( tabWidget2, "Widget6" );
00147 QWidget* privateLayoutWidget_6 = new QWidget( Widget6, "layout6" );
00148 privateLayoutWidget_6->setGeometry( QRect( 10, 10, 550, 210 ) );
00149 textEdit1 = new KTextEdit(privateLayoutWidget_6, "textEdit1");
00150 textEdit1->setGeometry( QRect( 10, 10, 530, 190 ) );
00151 textEdit1->setReadOnly(true);
00152 tabWidget2->insertTab( Widget5, "" );
00153 tabWidget2->insertTab( Widget6, "" );
00154 tabWidget->insertTab( Widget4, "" );
00155
00156
00157 layout5->addWidget( tabWidget );
00158 languageChange();
00159 resize( QSize(600, 360).expandedTo(minimumSizeHint()) );
00160
00161 toggleCover();
00162
00163 connect( buttonOk, SIGNAL( clicked() ), this, SLOT( saveConfig() ) );
00164 connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
00165 connect( browse_1, SIGNAL( clicked() ), this, SLOT( selThemeDir() ) );
00166 connect( browse_2, SIGNAL( clicked() ), this, SLOT( selDefaultTheme() ) );
00167 connect( browse_3, SIGNAL( clicked() ), this, SLOT( selDefaultViewer() ) );
00168 connect( CoverCheck, SIGNAL( clicked() ), this, SLOT( toggleCover() ) );
00169 }
00170
00171
00172
00173
00174 KarambaConf::~KarambaConf()
00175 {
00176
00177 }
00178
00179
00180
00181
00182
00183 void KarambaConf::languageChange()
00184 {
00185 setCaption( tr2i18n( "Karamba Configuration" ) );
00186 buttonHelp->setText( tr2i18n( "&Help" ) );
00187 buttonHelp->setAccel( QKeySequence( tr2i18n( "F1" ) ) );
00188 buttonOk->setText( tr2i18n( "&OK" ) );
00189 buttonOk->setAccel( QKeySequence( QString::null ) );
00190 buttonCancel->setText( tr2i18n( "&Cancel" ) );
00191 buttonCancel->setAccel( QKeySequence( QString::null ) );
00192 dFolderGroup->setTitle( tr2i18n( "Default themes folder" ) );
00193 browse_1->setText( tr2i18n( "Browse" ) );
00194 dThemeGroup->setTitle( tr2i18n( "Default theme" ) );
00195 browse_2->setText( tr2i18n( "Browse" ) );
00196 themeLabel->setText( tr2i18n( "Set your default theme.\nIt will be load at Karamba startup.\nYou can set it null if you want the open dialog." ) );
00197 dAppsGroup->setTitle( tr2i18n( "Helper applications" ) );
00198 viewerLabel->setText( tr2i18n( "Default image viewer." ) );
00199 browse_3->setText( tr2i18n( "Browse" ) );
00200 tabWidget->changeTab( Widget2, tr2i18n( "Karamba" ) );
00201 CoversGroup->setTitle( tr2i18n( "Covers" ) );
00202 CoverCheck->setText( tr2i18n( "Enable cover display" ) );
00203 id3CoverCheck->setText( tr2i18n( "Enable ID3 cover search" ) );
00204 textLabel1->setText( tr2i18n( "Max cover width" ) );
00205 textLabel2->setText( tr2i18n( "Max cover height" ) );
00206 XmmsGroup->setTitle( tr2i18n( "XMMS" ) );
00207 mainWinCheck->setText( tr2i18n( "Always hide XMMS main window" ) );
00208 tabWidget->changeTab( Widget3, tr2i18n( "XMMS Sensor" ) );
00209 tabWidget->changeTab( Widget4, tr2i18n( "About" ) );
00210 tabWidget2->changeTab( Widget5, tr2i18n( "About" ) );
00211 tabWidget2->changeTab( Widget6, tr2i18n( "License" ) );
00212 static const char *description = I18N_NOOP("A KDE Eye-candy Application");
00213 static const char *version = "0.17";
00214 KAboutData about("karamba", I18N_NOOP("karamba"), version, description, KAboutData::License_GPL, "(C) 2003 Hans Karlsson", 0, 0, "karlsson.h@home.se");
00215 textLabel3->setText( tr2i18n( "Karamba 0.17") );
00216 textLabel3->setAlignment (Qt::AlignTop);
00217 textLabel4->setText( KStringHandler::tagURLs(tr2i18n( "A KDE Eye-candy Application\n(C) 2003 Hans Karlsson karlsson.h@home.se\nConfiguration module by Bosselut Cyril bosselut@b1project.com" )));
00218 textLabel4->setAlignment (Qt::AlignTop);
00219 textEdit1->setText(about.license());
00220 }
00221
00222 void KarambaConf::loadConfig(){
00223 KSimpleConfig conf("karambarc",true);
00224 conf.setGroup("karamba");
00225 Dir = conf.readEntry("ThemeDir", "/usr/share/apps/karamba/themes/");
00226 Theme = conf.readEntry("DefaultTheme", "");
00227 Viewer = conf.readEntry("ImgViewer", "");
00228 conf.setGroup("XMMS");
00229 EnableCover = conf.readBoolEntry("EnableCover",false);
00230 EnableId3Cover = conf.readBoolEntry("EnableId3Cover",false);
00231 CoverWidth = conf.readNumEntry("CoverWidth",64);
00232 CoverHeight = conf.readNumEntry("CoverHeight",64);
00233 HideMainWin = conf.readBoolEntry("HideMainWin",false);
00234 }
00235
00236 void KarambaConf::saveConfig(){
00237 KSimpleConfig conf("karambarc",false);
00238 conf.setGroup("karamba");
00239 Dir = conf.readEntry("ThemeDir", dFolder->text());
00240 conf.writeEntry("DefaultTheme", dTheme->text());
00241 conf.writeEntry("ImgViewer", dViewer->text());
00242 conf.setGroup("XMMS");
00243 if(CoverCheck->isChecked() == true){
00244 conf.writeEntry("EnableCover", "true");
00245 }
00246 else{
00247 conf.writeEntry("EnableCover", "false");
00248 }
00249 if(id3CoverCheck->isChecked() == true){
00250 conf.writeEntry("EnableId3Cover", "true");
00251 }
00252 else{
00253 conf.writeEntry("EnableId3Cover", "false");
00254 }
00255 conf.writeEntry("CoverWidth", cWidth->text());
00256 conf.writeEntry("CoverHeight", cHeight->text());
00257 if(mainWinCheck->isChecked() == true){
00258 conf.writeEntry("HideMainWin", "true");
00259 }
00260 else{
00261 conf.writeEntry("HideMainWin", "false");
00262 }
00263 conf.sync();
00264 accept();
00265 }
00266
00267 void KarambaConf::selThemeDir(){
00268 KDirSelectDialog dirName;
00269 KURL ndir;
00270 ndir = dirName.selectDirectory(Dir, false, 0, "Select default folder");
00271 if( ndir.path() != ""){
00272 dFolder->setText( ndir.path() );
00273 }
00274 }
00275
00276 void KarambaConf::selDefaultTheme(){
00277 QString fileName;
00278 fileName = KFileDialog::getOpenFileName(Dir, "*.theme", 0, "Open configurations");
00279 QUrl url(fileName);
00280 fileName = (url.dirPath() == Dir)?url.fileName():fileName;
00281 if( fileName != ""){
00282 dTheme->setText( fileName );
00283 Theme = fileName;
00284 }
00285 }
00286
00287 void KarambaConf::selDefaultViewer(){
00288 QString fileName;
00289 fileName = KFileDialog::getOpenFileName(Dir, "*", 0, "Choose image viewer");
00290 if( fileName != ""){
00291 dViewer->setText( fileName );
00292 Viewer = fileName;
00293 }
00294 }
00295
00296 void KarambaConf::toggleCover(){
00297 EnableCover = CoverCheck->isChecked();
00298 cWidth->setEnabled ( EnableCover );
00299 cHeight->setEnabled ( EnableCover );
00300 id3CoverCheck->setEnabled ( EnableCover );
00301 }
00302
00303 #include "karambaconf.moc"