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, 120 ) );
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, 10, 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, 20, 100, 28 ) );
00073 themeLabel = new QLabel( dThemeGroup, "themeLabel" );
00074 themeLabel->setGeometry( QRect( 10, 50, 530, 40 ) );
00075 layout3->addWidget( dThemeGroup );
00076 tabWidget->insertTab( Widget2, "" );
00077
00078
00079 Widget3 = new QWidget( tabWidget, "Widget3" );
00080
00081 CoversGroup = new QGroupBox( Widget3, "CoversGroup" );
00082 CoversGroup->setGeometry( QRect( 10, 10, 570, 250 ) );
00083
00084 textLabel1 = new QLabel( CoversGroup, "textLabel1" );
00085 textLabel1->setGeometry( QRect( 20, 40, 100, 21 ) );
00086
00087 cWidth = new QLineEdit( CoversGroup, "cWidth" );
00088 cWidth->setGeometry( QRect( 130, 40, 81, 21 ) );
00089 cWidth->setText( QString::number( CoverWidth ) );
00090
00091 cHeight = new QLineEdit( CoversGroup, "cHeight" );
00092 cHeight->setGeometry( QRect( 130, 70, 81, 21 ) );
00093 cHeight->setText( QString::number( CoverHeight ) );
00094
00095 textLabel2 = new QLabel( CoversGroup, "textLabel2" );
00096 textLabel2->setGeometry( QRect( 20, 70, 101, 21 ) );
00097 tabWidget->insertTab( Widget3, "" );
00098
00099 Widget4 = new QWidget( tabWidget, "Widget4" );
00100 QWidget* privateLayoutWidget_4 = new QWidget( Widget4, "layout4" );
00101 privateLayoutWidget_4->setGeometry( QRect( 10, 10, 570, 250 ) );
00102 tabWidget2 = new QTabWidget( privateLayoutWidget_4, "tabWidget2" );
00103 tabWidget2->setEnabled( TRUE );
00104 tabWidget2->setMinimumSize( QSize( 570, 250 ) );
00105 tabWidget2->setMaximumSize( QSize( 570, 250 ) );
00106 tabWidget2->setAutoMask( TRUE );
00107 Widget5 = new QWidget( tabWidget2, "Widget5" );
00108 QWidget* privateLayoutWidget_5 = new QWidget( Widget5, "layout5" );
00109 privateLayoutWidget_5->setGeometry( QRect( 10, 10, 550, 210 ) );
00110 textLabel3 = new QLabel(privateLayoutWidget_5 , "textLabel3" );
00111 textLabel3->setGeometry( QRect( 10, 10, 500, 20 ) );
00112 QFont font;
00113 font.setBold( true );
00114 textLabel3->setFont( font );
00115 textLabel4 = new KActiveLabel(privateLayoutWidget_5 , "textLabel4" );
00116 textLabel4->setGeometry( QRect( 10, 40, 500, 40 ) );
00117 Widget6 = new QWidget( tabWidget2, "Widget6" );
00118 QWidget* privateLayoutWidget_6 = new QWidget( Widget6, "layout6" );
00119 privateLayoutWidget_6->setGeometry( QRect( 10, 10, 550, 210 ) );
00120 textEdit1 = new KTextEdit(privateLayoutWidget_6, "textEdit1");
00121 textEdit1->setGeometry( QRect( 10, 10, 530, 190 ) );
00122 textEdit1->setReadOnly(true);
00123 tabWidget2->insertTab( Widget5, "" );
00124 tabWidget2->insertTab( Widget6, "" );
00125 tabWidget->insertTab( Widget4, "" );
00126
00127
00128 layout5->addWidget( tabWidget );
00129 languageChange();
00130 resize( QSize(600, 360).expandedTo(minimumSizeHint()) );
00131
00132
00133 connect( buttonOk, SIGNAL( clicked() ), this, SLOT( saveConfig() ) );
00134 connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
00135 connect( browse_1, SIGNAL( clicked() ), this, SLOT( selThemeDir() ) );
00136 connect( browse_2, SIGNAL( clicked() ), this, SLOT( selDefaultTheme() ) );
00137 }
00138
00139
00140
00141
00142 KarambaConf::~KarambaConf()
00143 {
00144
00145 }
00146
00147
00148
00149
00150
00151 void KarambaConf::languageChange()
00152 {
00153 setCaption( tr2i18n( "Karamba Configuration" ) );
00154 buttonHelp->setText( tr2i18n( "&Help" ) );
00155 buttonHelp->setAccel( QKeySequence( tr2i18n( "F1" ) ) );
00156 buttonOk->setText( tr2i18n( "&OK" ) );
00157 buttonOk->setAccel( QKeySequence( QString::null ) );
00158 buttonCancel->setText( tr2i18n( "&Cancel" ) );
00159 buttonCancel->setAccel( QKeySequence( QString::null ) );
00160 dFolderGroup->setTitle( tr2i18n( "Default themes folder" ) );
00161 browse_1->setText( tr2i18n( "Browse" ) );
00162 dThemeGroup->setTitle( tr2i18n( "Default theme" ) );
00163 browse_2->setText( tr2i18n( "Browse" ) );
00164 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." ) );
00165 tabWidget->changeTab( Widget2, tr2i18n( "Karamba" ) );
00166 CoversGroup->setTitle( tr2i18n( "Covers" ) );
00167 textLabel1->setText( tr2i18n( "Max cover width" ) );
00168 textLabel2->setText( tr2i18n( "Max cover height" ) );
00169 tabWidget->changeTab( Widget3, tr2i18n( "XMMS Sensor" ) );
00170 tabWidget->changeTab( Widget4, tr2i18n( "About" ) );
00171 tabWidget2->changeTab( Widget5, tr2i18n( "About" ) );
00172 tabWidget2->changeTab( Widget6, tr2i18n( "License" ) );
00173 static const char *description = I18N_NOOP("A KDE Eye-candy Application");
00174 static const char *version = "0.17";
00175 KAboutData about("karamba", I18N_NOOP("karamba"), version, description, KAboutData::License_GPL, "(C) 2003 Hans Karlsson", 0, 0, "karlsson.h@home.se");
00176 textLabel3->setText( tr2i18n( "Karamba 0.17") );
00177 textLabel3->setAlignment (Qt::AlignTop);
00178 textLabel4->setText( tr2i18n( "A KDE Eye-candy Application\n(C) 2003 Hans Karlsson " + KStringHandler::tagURLs("karlsson.h@home.se") + "\nConfiguration module by Bosselut Cyril " + KStringHandler::tagURLs("bosselut@b1project.com") ));
00179 textLabel4->setAlignment (Qt::AlignTop);
00180 textEdit1->setText(about.license());
00181 }
00182
00183 void KarambaConf::loadConfig(){
00184 KSimpleConfig conf("karambarc",true);
00185 conf.setGroup("karamba");
00186 Dir = conf.readEntry("ThemeDir", "/usr/share/apps/karamba/themes/");
00187 Theme = conf.readEntry("DefaultTheme", "");
00188 conf.setGroup("XMMS");
00189 CoverWidth = conf.readNumEntry("CoverWidth",64);
00190 CoverHeight = conf.readNumEntry("CoverHeight",64);
00191 }
00192
00193 void KarambaConf::saveConfig(){
00194 KSimpleConfig conf("karambarc",false);
00195 conf.setGroup("karamba");
00196 Dir = conf.readEntry("ThemeDir", dFolder->text());
00197 conf.writeEntry("DefaultTheme", dTheme->text());
00198 conf.setGroup("XMMS");
00199 conf.writeEntry("CoverWidth", cWidth->text());
00200 conf.writeEntry("CoverHeight", cHeight->text());
00201 conf.sync();
00202 accept();
00203 }
00204
00205 void KarambaConf::selThemeDir(){
00206 KDirSelectDialog dirName;
00207 KURL ndir;
00208 ndir = dirName.selectDirectory(Dir, false, 0, "Select default folder");
00209 if( ndir.path() != ""){
00210 dFolder->setText( ndir.path() );
00211 }
00212 }
00213
00214 void KarambaConf::selDefaultTheme(){
00215 QString fileName;
00216 fileName = KFileDialog::getOpenFileName(Dir, "*.theme", 0, "Open configurations");
00217 QUrl url(fileName);
00218 fileName = (url.dirPath() == Dir)?url.fileName():fileName;
00219 if( fileName != ""){
00220 dTheme->setText( fileName );
00221 Theme = fileName;
00222 }
00223 }
00224
00225 #include "karambaconf.moc"