Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

tabgeneral.cpp

Go to the documentation of this file.
00001 /*
00002 For general Scribus (>=1.3.2) copyright and licensing information please refer
00003 to the COPYING file provided with the program. Following this notice may exist
00004 a copyright and/or license notice that predates the release of Scribus 1.3.2
00005 for which a new license (GPL+exception) is in place.
00006 */
00007 #include <QCheckBox>
00008 #include <QComboBox>
00009 #include <QFileDialog>
00010 #include <QGroupBox>
00011 #include <QLineEdit>
00012 #include <QPushButton>
00013 #include <QSpinBox>
00014 #include <QStringList>
00015 #include <QStyleFactory>
00016 #include <QToolTip>
00017 
00018 #include "prefsmanager.h"
00019 #include "scribusapp.h"
00020 #include "scribuscore.h"
00021 #include "tabgeneral.h"
00022 #include "util.h"
00023 
00024 extern ScribusQApp* ScQApp;
00025 
00026 
00027 TabGeneral::TabGeneral(QWidget* parent, const char* name)
00028     : QWidget(parent)
00029 {
00030     setupUi(this);
00031     setObjectName(name);
00032     // languages
00033     langMgr.init();
00034     QStringList languageList;
00035     langMgr.fillInstalledStringList(&languageList, true);
00036     languageList.sort();
00037     guiLangCombo->addItems( languageList );
00038 
00039     // qt styles
00040     QStringList STtest;
00041     STtest = QStyleFactory::keys();
00042     GUICombo->addItem("");
00043     for (int stt = 0; stt < STtest.count(); ++stt)
00044         GUICombo->addItem(STtest[stt]);
00045     //GUICombo->setEditable(false);
00046 
00047     if (ScCore->primaryMainWindow()->HaveDoc)
00048     {
00049         ProPfad->setEnabled(false);
00050         FileC2->setEnabled(false);
00051     }
00052 
00053     QWidget::setTabOrder( GFsize, GTFsize );
00054     QWidget::setTabOrder( GTFsize, wheelJumpSpin );
00055     QWidget::setTabOrder( wheelJumpSpin, recentDocs );
00056     QWidget::setTabOrder( recentDocs, Docs );
00057     QWidget::setTabOrder( Docs, FileC );
00058     QWidget::setTabOrder( FileC, ProPfad );
00059     QWidget::setTabOrder( ProPfad, FileC2  );
00060     QWidget::setTabOrder( FileC2, ScriptPfad );
00061     QWidget::setTabOrder( ScriptPfad, FileC3 );
00062     QWidget::setTabOrder( FileC3, DocumentTemplateDir );
00063     QWidget::setTabOrder( DocumentTemplateDir, FileC4 );
00064 
00065     guiLangCombo->setToolTip( "<qt>" + tr( "Select your default language for Scribus to run with. Leave this blank to choose based on environment variables. You can still override this by passing a command line option when starting Scribus" )+"</qt>");
00066     recentDocs->setToolTip( "<qt>" + tr("Number of recently edited documents to show in the File menu") + "</qt>" );
00067     wheelJumpSpin->setToolTip( "<qt>" + tr( "Number of lines Scribus will scroll for each move of the mouse wheel" ) + "</qt>");
00068     GUICombo->setToolTip( "<qt>" + tr( "Choose the default window decoration and looks. Scribus inherits any available KDE or Qt themes, if Qt is configured to search KDE plugins." ) + "</qt>" );
00069     GFsize->setToolTip( "<qt>" + tr( "Default font size for the menus and windows" ) + "</qt>" );
00070     GTFsize->setToolTip( "<qt>" + tr("Default font size for the tool windows") + "</qt>" );
00071     Docs->setToolTip( "<qt>" + tr( "Default documents directory" ) + "</qt>" );
00072     useSmallWidgetsCheck->setToolTip( "<qt>" + tr("Palette windows will use smaller (space savy) widgets. Requires application restart") + "</qt>");
00073     ProPfad->setToolTip( "<qt>" + tr( "Default ICC profiles directory. This cannot be changed with a document open. By default, Scribus will look in the System Directories under Mac OSX and Windows. On Linux and Unix, Scribus will search $home/.color/icc,/usr/share/color/icc and /usr/local/share/color/icc " ) + "</qt>" );
00074     ScriptPfad->setToolTip( "<qt>" + tr( "Default Scripter scripts directory" ) + "</qt>" );
00075     DocumentTemplateDir->setToolTip( "<qt>"+ tr("Additional directory for document templates")+"</qt>" );
00076 
00077     connect(guiLangCombo, SIGNAL(activated(const QString &)), this, SLOT(setSelectedGUILang(const QString &)));
00078     connect(FileC, SIGNAL(clicked()), this, SLOT(changeDocs()));
00079     connect(FileC2, SIGNAL(clicked()), this, SLOT(changeProfs()));
00080     connect(FileC3, SIGNAL(clicked()), this, SLOT(changeScripts()));
00081     connect(FileC4, SIGNAL(clicked()), this, SLOT(changeDocumentTemplates()));
00082 }
00083 
00084 void TabGeneral::restoreDefaults(struct ApplicationPrefs *prefsData)
00085 {
00086     selectedGUILang = prefsData->guiLanguage;
00087     setCurrentComboItem(guiLangCombo, langMgr.getLangFromAbbrev(selectedGUILang));
00088     setCurrentComboItem(GUICombo, prefsData->GUI);
00089     GFsize->setValue( prefsData->AppFontSize );
00090     GTFsize->setValue( prefsData->PaletteFontSize); // temp solution
00091     wheelJumpSpin->setValue( prefsData->Wheelval );
00092     spinTimeout->setValue(prefsData->moveTimeout);
00093     recentDocs->setValue( prefsData->RecentDCount );
00094     Docs->setText(QDir::convertSeparators(prefsData->DocDir));
00095     ProPfad->setText(QDir::convertSeparators(prefsData->ProfileDir));
00096     ScriptPfad->setText(QDir::convertSeparators(prefsData->ScriptDir));
00097     DocumentTemplateDir->setText(QDir::convertSeparators(prefsData->documentTemplatesDir));
00098     startUpDialog->setChecked(prefsData->showStartupDialog);
00099     showSplashCheckBox->setChecked( !ScQApp->neverSplashExists() );
00100     useSmallWidgetsCheck->setChecked(prefsData->useSmallWidgets);
00101 }
00102 
00103 void TabGeneral::setSelectedGUILang( const QString &newLang )
00104 {
00105     selectedGUILang = langMgr.getAbbrevFromLang(newLang);
00106 }
00107 
00108 void TabGeneral::changeDocs()
00109 {
00110     QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), Docs->text());
00111     if (!s.isEmpty())
00112         Docs->setText( QDir::convertSeparators(s) );
00113 }
00114 
00115 void TabGeneral::changeProfs()
00116 {
00117     QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), ProPfad->text());
00118     if (!s.isEmpty())
00119         ProPfad->setText( QDir::convertSeparators(s) );
00120 }
00121 
00122 void TabGeneral::changeScripts()
00123 {
00124     QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), ScriptPfad->text());
00125     if (!s.isEmpty())
00126         ScriptPfad->setText( QDir::convertSeparators(s) );
00127 }
00128 
00129 void TabGeneral::changeDocumentTemplates()
00130 {
00131     QString s = QFileDialog::getExistingDirectory(this, tr("Choose a Directory"), DocumentTemplateDir->text());
00132     if (!s.isEmpty())
00133         DocumentTemplateDir->setText( QDir::convertSeparators(s) );
00134 }
Created with personalized Doxygen. This is documentation for GPL software Scribus - Open Source Desktop Publishing.