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, 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     // signals and slots connections
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  *  Destroys the object and frees any allocated resources
00141  */
00142 KarambaConf::~KarambaConf()
00143 {
00144     // no need to delete child widgets, Qt does it all for us
00145 }
00146 
00147 /*
00148  *  Sets the strings of the subwidgets using the current
00149  *  language.
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); //make QUrl from QString
00218     fileName = (url.dirPath() == Dir)?url.fileName():fileName; //verify if the theme is in default dir
00219     if( fileName != ""){
00220       dTheme->setText( fileName );
00221       Theme = fileName;
00222     }
00223 }
00224 
00225 #include "karambaconf.moc"

Generated on Tue Apr 29 19:56:58 2003 for karamba by doxygen1.2.18