Main Page   Class Hierarchy   Alphabetical List   Compound List   File List  

karambaconf.cpp

00001 #include "karambaconf.h"
00002 
00003 /*
00004  *  Constructs a KarambaConf as a child of Karamba with the
00005  *  name 'KarambaConf' .
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     // signals and slots connections
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  *  Destroys the object and frees any allocated resources
00173  */
00174 KarambaConf::~KarambaConf()
00175 {
00176     // no need to delete child widgets, Qt does it all for us
00177 }
00178 
00179 /*
00180  *  Sets the strings of the subwidgets using the current
00181  *  language.
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); //make QUrl from QString
00280     fileName = (url.dirPath() == Dir)?url.fileName():fileName; //verify if the theme is in default dir
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"

Generated on Tue May 6 09:52:08 2003 for karamba by doxygen1.2.18