tabgeneral.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
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
00033 langMgr.init();
00034 QStringList languageList;
00035 langMgr.fillInstalledStringList(&languageList, true);
00036 languageList.sort();
00037 guiLangCombo->addItems( languageList );
00038
00039
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
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);
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 }