From be6ba77656e67c787c76d04476d0e2c5cb49e884 Mon Sep 17 00:00:00 2001 From: xavierqet Date: Sat, 10 Nov 2007 17:52:30 +0000 Subject: [PATCH] Ajout d'une option d'execution --config-dir pour redefinir le dossier de configuration (et donc la collection d'elements perso) Cette option d'execution peut etre desactivee avec l'option de compilation QET_ALLOW_OVERRIDE_CD_OPTION Correction pour l'impression sous Windows git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@211 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- diagramview.cpp | 2 ++ qelectrotech.pro | 28 +++++++++++++++++++++------- qetapp.cpp | 28 +++++++++++++++++++++++++++- qetapp.h | 8 ++++++++ 4 files changed, 58 insertions(+), 8 deletions(-) diff --git a/diagramview.cpp b/diagramview.cpp index 84a44b45c..4bffde296 100644 --- a/diagramview.cpp +++ b/diagramview.cpp @@ -434,7 +434,9 @@ void DiagramView::dialogExport() { void DiagramView::dialogPrint() { // initialise l'acces a l'imprimante QPrinter qprin; +#ifndef Q_OS_WIN32 qprin.setOutputFormat(QPrinter::PdfFormat); +#endif qprin.setOrientation(QPrinter::Landscape); qprin.setPageSize(QPrinter::A4); QPrintDialog qpd(&qprin, this); diff --git a/qelectrotech.pro b/qelectrotech.pro index 020420c2d..21eaa3434 100644 --- a/qelectrotech.pro +++ b/qelectrotech.pro @@ -3,16 +3,30 @@ ###################################################################### # Chemins utilises pour la compilation et l'installation de QET -COMPIL_PREFIX = '/usr/local/' -INSTALL_PREFIX = '/usr/local/' -QET_BINARY_PATH = 'bin/' -QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/' -QET_LANG_PATH = 'share/qelectrotech/lang/' -QET_LICENSE_PATH = 'doc/qelectrotech/' +!win32 { + # Chemins UNIX + COMPIL_PREFIX = '/usr/local/' + INSTALL_PREFIX = '/usr/local/' + QET_BINARY_PATH = 'bin/' + QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/' + QET_LANG_PATH = 'share/qelectrotech/lang/' + QET_LICENSE_PATH = 'doc/qelectrotech/' +} else { + # Chemins Windows + COMPIL_PREFIX = './' + INSTALL_PREFIX = './' + QET_BINARY_PATH = './' + QET_COMMON_COLLECTION_PATH = 'elements/' + QET_LANG_PATH = 'lang/' + QET_LICENSE_PATH = './' +} -#Commenter la ligne ci-dessous pour desactiver l'option --common-elements-dir +# Commenter la ligne ci-dessous pour desactiver l'option --common-elements-dir DEFINES += QET_ALLOW_OVERRIDE_CED_OPTION +# Commenter la ligne ci-dessous pour desactiver l'option --config-dir +DEFINES += QET_ALLOW_OVERRIDE_CD_OPTION + ###################################################################### TEMPLATE = app diff --git a/qetapp.cpp b/qetapp.cpp index df02af3b7..201ee456c 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -6,6 +6,7 @@ #define STRINGIFY(x) #x QString QETApp::common_elements_dir = QString(); +QString QETApp::config_dir = QString(); /** Constructeur @@ -25,6 +26,13 @@ QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) { QString ced_value = argument.right(argument.length() - ced_arg.length()); overrideCommonElementsDir(ced_value); } +#endif +#ifdef QET_ALLOW_OVERRIDE_CD_OPTION + QString cd_arg("--config-dir="); + if (argument.startsWith(cd_arg)) { + QString cd_value = argument.right(argument.length() - cd_arg.length()); + overrideConfigDir(cd_value); + } #endif bool must_exit = false; if (argument == QString("--help")) { @@ -231,6 +239,9 @@ QString QETApp::customElementsDir() { @return Le chemin du dossier de configuration de QElectroTech */ QString QETApp::configDir() { +#ifdef QET_ALLOW_OVERRIDE_CD_OPTION + if (config_dir != QString()) return(config_dir); +#endif #ifdef Q_OS_WIN32 return(QDir::homePath() + "/Application Data/qet/"); #else @@ -278,7 +289,8 @@ QString QETApp::symbolicPath(const QString &real_path) { #ifdef QET_ALLOW_OVERRIDE_CED_OPTION /** - Redefinit le chemin du dossier des elements communs. + Redefinit le chemin du dossier des elements communs + @param new_ced Nouveau chemin du dossier des elements communs */ void QETApp::overrideCommonElementsDir(const QString &new_ced) { QFileInfo new_ced_info(new_ced); @@ -289,6 +301,20 @@ void QETApp::overrideCommonElementsDir(const QString &new_ced) { } #endif +#ifdef QET_ALLOW_OVERRIDE_CD_OPTION +/** + Redefinit le chemin du dossier de configuration + @param new_cd Nouveau chemin du dossier de configuration +*/ +void QETApp::overrideConfigDir(const QString &new_cd) { + QFileInfo new_cd_info(new_cd); + if (new_cd_info.isDir()) { + config_dir = new_cd_info.absoluteFilePath(); + if (!config_dir.endsWith("/")) config_dir += "/"; + } +} +#endif + /** @return Le chemin du dossier contenant les fichiers de langue */ diff --git a/qetapp.h b/qetapp.h index aea599ba0..4ea9fe38b 100644 --- a/qetapp.h +++ b/qetapp.h @@ -33,10 +33,18 @@ class QETApp : public QApplication { static QString realPath(const QString &); static QString symbolicPath(const QString &); #ifdef QET_ALLOW_OVERRIDE_CED_OPTION + public: static void overrideCommonElementsDir(const QString &); private: static QString common_elements_dir; #endif +#ifdef QET_ALLOW_OVERRIDE_CD_OPTION + public: + static void overrideConfigDir(const QString &); + private: + static QString config_dir; +#endif + protected: bool event(QEvent *);