Retour de la classe QETApp mais comme derivee de QApplication cette fois

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@128 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-09-21 13:22:18 +00:00
parent 5935ffddcf
commit 0fd59d89ae
9 changed files with 22 additions and 117 deletions

View File

@@ -1,4 +1,5 @@
#include <math.h> #include <math.h>
#include "qetapp.h"
#include "conducer.h" #include "conducer.h"
#include "customelement.h" #include "customelement.h"
#include "diagram.h" #include "diagram.h"
@@ -302,7 +303,7 @@ bool Diagram::fromXml(QDomDocument &document, QPointF position, bool consider_in
// cree un element dont le type correspond à l'id type // cree un element dont le type correspond à l'id type
QString type_id = e.attribute("type"); QString type_id = e.attribute("type");
QString chemin_fichier = QETDiagramEditor::realPath(type_id); QString chemin_fichier = QETApp::realPath(type_id);
CustomElement *nvel_elmt = new CustomElement(chemin_fichier); CustomElement *nvel_elmt = new CustomElement(chemin_fichier);
if (nvel_elmt -> isNull()) { if (nvel_elmt -> isNull()) {
QString debug_message = QString("Le chargement de la description de l'element %1 a echoue avec le code d'erreur %2").arg(chemin_fichier).arg(nvel_elmt -> etat()); QString debug_message = QString("Le chargement de la description de l'element %1 a echoue avec le code d'erreur %2").arg(chemin_fichier).arg(nvel_elmt -> etat());

View File

@@ -1,9 +1,9 @@
#include "qetelementeditor.h" #include "qetelementeditor.h"
#include "qetapp.h"
#include "elementscene.h" #include "elementscene.h"
#include "elementview.h" #include "elementview.h"
#include "customelementpart.h" #include "customelementpart.h"
#include "newelementwizard.h" #include "newelementwizard.h"
#include "qetdiagrameditor.h"
QETElementEditor::QETElementEditor(QWidget *parent) : QETElementEditor::QETElementEditor(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
@@ -388,7 +388,7 @@ void QETElementEditor::slot_open() {
QString user_filename = QFileDialog::getOpenFileName( QString user_filename = QFileDialog::getOpenFileName(
this, this,
tr("Ouvrir un fichier"), tr("Ouvrir un fichier"),
QETDiagramEditor::customElementsDir(), QETApp::customElementsDir(),
tr("\311l\351ments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*)") tr("\311l\351ments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*)")
); );
if (user_filename == "") return; if (user_filename == "") return;
@@ -411,7 +411,7 @@ bool QETElementEditor::slot_saveAs() {
QString fn = QFileDialog::getSaveFileName( QString fn = QFileDialog::getSaveFileName(
this, this,
tr("Enregistrer sous"), tr("Enregistrer sous"),
QETDiagramEditor::customElementsDir(), QETApp::customElementsDir(),
tr("\311l\351ments QElectroTech (*.elmt)") tr("\311l\351ments QElectroTech (*.elmt)")
); );
// si aucun nom n'est entre, renvoie faux. // si aucun nom n'est entre, renvoie faux.

View File

@@ -1,4 +1,5 @@
#include "element.h" #include "element.h"
#include "qetapp.h"
#include "diagram.h" #include "diagram.h"
#include "conducer.h" #include "conducer.h"
#include "elementtextitem.h" #include "elementtextitem.h"
@@ -380,7 +381,7 @@ QDomElement Element::toXml(QDomDocument &document, QHash<Terminal *, int> &table
// type // type
QString chemin_elmt = typeId(); QString chemin_elmt = typeId();
QString type_elmt = QETDiagramEditor::symbolicPath(chemin_elmt); QString type_elmt = QETApp::symbolicPath(chemin_elmt);
element.setAttribute("type", type_elmt); element.setAttribute("type", type_elmt);
// position, selection et orientation // position, selection et orientation

View File

@@ -1,5 +1,6 @@
#include <QtXml> #include <QtXml>
#include "elementscategorieslist.h" #include "elementscategorieslist.h"
#include "qetapp.h"
#include "elementscategory.h" #include "elementscategory.h"
#include "qetdiagrameditor.h" #include "qetdiagrameditor.h"
@@ -31,7 +32,7 @@ void ElementsCategoriesList::reload() {
while (takeTopLevelItem(0)); while (takeTopLevelItem(0));
// chargement des elements de la collection utilisateur // chargement des elements de la collection utilisateur
addDir(invisibleRootItem(), QETDiagramEditor::customElementsDir(), tr("Collection utilisateur")); addDir(invisibleRootItem(), QETApp::customElementsDir(), tr("Collection utilisateur"));
} }
/** /**

View File

@@ -1,4 +1,5 @@
#include "elementspanel.h" #include "elementspanel.h"
#include "qetapp.h"
#include "elementscategory.h" #include "elementscategory.h"
#include "elementscategoryeditor.h" #include "elementscategoryeditor.h"
#include "elementscategorydeleter.h" #include "elementscategorydeleter.h"
@@ -177,10 +178,10 @@ void ElementsPanel::reload() {
while (takeTopLevelItem(0)); while (takeTopLevelItem(0));
// chargement des elements de la collection QET // chargement des elements de la collection QET
addDir(invisibleRootItem(), QETDiagramEditor::commonElementsDir(), tr("Collection QET")); addDir(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET"));
// chargement des elements de la collection utilisateur // chargement des elements de la collection utilisateur
addDir(invisibleRootItem(), QETDiagramEditor::customElementsDir(), tr("Collection utilisateur")); addDir(invisibleRootItem(), QETApp::customElementsDir(), tr("Collection utilisateur"));
} }
void ElementsPanel::editCategory() { void ElementsPanel::editCategory() {

View File

@@ -1,6 +1,4 @@
#include <QApplication> #include "qetapp.h"
#include <QTranslator>
#include "qetdiagrameditor.h"
/** /**
Fonction principale du programme QElectroTech Fonction principale du programme QElectroTech
@@ -9,25 +7,11 @@
*/ */
int main(int argc, char **argv) { int main(int argc, char **argv) {
// Creation de l'application // Creation de l'application
QApplication app(argc, argv); QETApp app(argc, argv);
app.setQuitOnLastWindowClosed(false);
QString system_language = QLocale::system().name().left(2);
// charge les eventuelles traductions pour la lib Qt
QTranslator qtTranslator;
qtTranslator.load("qt_" + system_language, QETDiagramEditor::languagesPath());
app.installTranslator(&qtTranslator);
// determine la langue a utiliser pour l'application
QTranslator trad;
if (system_language != "fr") {
// utilisation de la version anglaise par defaut
if (!trad.load("qet_" + system_language, QETDiagramEditor::languagesPath())) trad.load("qet_en", QETDiagramEditor::languagesPath());
app.installTranslator(&trad);
}
// Creation et affichage d'un editeur de schema // Creation et affichage d'un editeur de schema
(new QETDiagramEditor()) -> show(); (new QETDiagramEditor()) -> show();
// Execution de l'application // Execution de l'application
return(app.exec()); return(app.exec());
} }

View File

@@ -36,6 +36,7 @@ HEADERS += aboutqet.h \
orientationset.h \ orientationset.h \
orientationsetwidget.h \ orientationsetwidget.h \
qet.h \ qet.h \
qetapp.h \
qetdiagrameditor.h \ qetdiagrameditor.h \
qgimanager.h \ qgimanager.h \
terminal.h \ terminal.h \
@@ -90,6 +91,7 @@ SOURCES += aboutqet.cpp \
newelementwizard.cpp \ newelementwizard.cpp \
orientationset.cpp \ orientationset.cpp \
orientationsetwidget.cpp \ orientationsetwidget.cpp \
qetapp.cpp \
qetdiagrameditor.cpp \ qetdiagrameditor.cpp \
qgimanager.cpp \ qgimanager.cpp \
terminal.cpp \ terminal.cpp \

View File

@@ -1,4 +1,5 @@
#include "qetdiagrameditor.h" #include "qetdiagrameditor.h"
#include "qetapp.h"
#include "diagramview.h" #include "diagramview.h"
#include "elementspanelwidget.h" #include "elementspanelwidget.h"
#include "aboutqet.h" #include "aboutqet.h"
@@ -10,11 +11,11 @@
QETDiagramEditor::QETDiagramEditor(QWidget *parent) : QMainWindow(parent) { QETDiagramEditor::QETDiagramEditor(QWidget *parent) : QMainWindow(parent) {
// cree les dossiers de configuration si necessaire // cree les dossiers de configuration si necessaire
QDir config_dir(configDir()); QDir config_dir(QETApp::configDir());
if (!config_dir.exists()) config_dir.mkpath(configDir()); if (!config_dir.exists()) config_dir.mkpath(QETApp::configDir());
QDir custom_elements_dir(customElementsDir()); QDir custom_elements_dir(QETApp::customElementsDir());
if (!custom_elements_dir.exists()) custom_elements_dir.mkpath(customElementsDir()); if (!custom_elements_dir.exists()) custom_elements_dir.mkpath(QETApp::customElementsDir());
// mise en place de l'interface MDI au centre de l'application // mise en place de l'interface MDI au centre de l'application
setCentralWidget(&workspace); setCentralWidget(&workspace);
@@ -856,86 +857,6 @@ void QETDiagramEditor::slot_updateMenuFenetres() {
} }
} }
/**
Renvoie le dossier des elements communs, c-a-d le chemin du dossier dans
lequel QET doit chercher les definitions XML des elements de la collection QET.
@return Le chemin du dossier des elements communs
*/
QString QETDiagramEditor::commonElementsDir() {
return(QDir::current().path() + "/elements/");
}
/**
Renvoie le dossier des elements de l'utilisateur, c-a-d le chemin du dossier
dans lequel QET chercher les definitions XML des elements propres a
l'utilisateur.
@return Le chemin du dossier des elements persos
*/
QString QETDiagramEditor::customElementsDir() {
return(QETDiagramEditor::configDir() + "elements/");
}
/**
Renvoie le dossier de configuration de QET, c-a-d le chemin du dossier dans
lequel QET lira les informations de configuration et de personnalisation
propres a l'utilisateur courant. Ce dossier est generalement
C:\Documents And Settings\utilisateur\Application Data\qet sous Windows et
~/.qet sous les systemes type UNIX.
@return Le chemin du dossier de configuration de QElectroTech
*/
QString QETDiagramEditor::configDir() {
#ifdef Q_OS_WIN32
return(QDir::homePath() + "/Application Data/qet/");
#else
return(QDir::homePath() + "/.qet/");
#endif
}
/**
Permet de connaitre le chemin absolu du fichier *.elmt correspondant a un
chemin symbolique (du type custom://outils_pervers/sado_maso/contact_bizarre)
@param sym_path Chaine de caracteres representant le chemin absolu du fichier
@return Une chaine de caracteres vide en cas d'erreur ou le chemin absolu du
fichier *.elmt.
*/
QString QETDiagramEditor::realPath(QString &sym_path) {
QString directory;
if (sym_path.startsWith("common://")) {
directory = commonElementsDir();
} else if (sym_path.startsWith("custom://")) {
directory = customElementsDir();
} else return(QString());
return(directory + QDir::toNativeSeparators(sym_path.right(sym_path.length() - 9)));
}
/**
Construit le chemin symbolique (du type custom://outils_pervers/sado_maso/
contact_bizarre) correspondant a un fichier.
@param real_pathChaine de caracteres representant le chemin symbolique du fichier
@return Une chaine de caracteres vide en cas d'erreur ou le chemin
symbolique designant l'element.
*/
QString QETDiagramEditor::symbolicPath(QString &real_path) {
// recupere les dossier common et custom
QString commond = commonElementsDir();
QString customd = customElementsDir();
QString chemin;
// analyse le chemin de fichier passe en parametre
if (real_path.startsWith(commond)) {
chemin = "common://" + real_path.right(real_path.length() - commond.length());
} else if (real_path.startsWith(customd)) {
chemin = "custom://" + real_path.right(real_path.length() - customd.length());
} else chemin = QString();
return(chemin);
}
/**
@return Le chemin du dossier contenant les fichiers de langue
*/
QString QETDiagramEditor::languagesPath() {
return(QDir::current().path() + "/lang/");
}
/** /**
Edite les informations du schema en cours Edite les informations du schema en cours
*/ */

View File

@@ -25,12 +25,6 @@ class QETDiagramEditor : public QMainWindow {
public: public:
void closeEvent(QCloseEvent *); void closeEvent(QCloseEvent *);
void addDiagramView(DiagramView *); void addDiagramView(DiagramView *);
static QString commonElementsDir();
static QString customElementsDir();
static QString configDir();
static QString languagesPath();
static QString realPath(QString &);
static QString symbolicPath(QString &);
protected: protected:
void actions(); void actions();