From d8f09f625a8f0bf685d7fd03dca200cdc0b9f2ea Mon Sep 17 00:00:00 2001 From: xavier Date: Sat, 4 Apr 2009 02:17:24 +0000 Subject: [PATCH] La liste des fichiers recents n'utilisait pas le separateur de fichier du systeme. Mise a jour de la classe AboutQET : ajout de Youssef git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@559 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/aboutqet.cpp | 134 +++++++++++++++++++++------------------- sources/aboutqet.h | 10 +-- sources/recentfiles.cpp | 9 ++- 3 files changed, 83 insertions(+), 70 deletions(-) diff --git a/sources/aboutqet.cpp b/sources/aboutqet.cpp index c34a4d324..bea899d19 100644 --- a/sources/aboutqet.cpp +++ b/sources/aboutqet.cpp @@ -32,22 +32,22 @@ AboutQET::AboutQET(QWidget *parent) : QDialog(parent) { setModal(true); // Trois onglets - QETTabWidget *onglets = new QETTabWidget(this); - onglets -> addTab(ongletAPropos(), tr("\300 &propos","tab title")); - onglets -> addTab(ongletAuteurs(), tr("A&uteurs", "tab title")); - onglets -> addTab(ongletLicence(), tr("&Accord de licence", "tab title")); + QETTabWidget *tabs = new QETTabWidget(this); + tabs -> addTab(aboutTab(), tr("\300 &propos", "tab title")); + tabs -> addTab(authorsTab(), tr("A&uteurs", "tab title")); + tabs -> addTab(licenseTab(), tr("&Accord de licence", "tab title")); // Un bouton pour fermer la boite de dialogue - QDialogButtonBox *boutons = new QDialogButtonBox(QDialogButtonBox::Close); - connect(boutons, SIGNAL(accepted()), this, SLOT(accept())); - connect(boutons, SIGNAL(rejected()), this, SLOT(accept())); + QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Close); + connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); + connect(buttons, SIGNAL(rejected()), this, SLOT(accept())); // Le tout dans une disposition verticale - QVBoxLayout *disposition = new QVBoxLayout(); - disposition -> addWidget(titre()); - disposition -> addWidget(onglets); - disposition -> addWidget(boutons); - setLayout(disposition); + QVBoxLayout *vlayout = new QVBoxLayout(); + vlayout -> addWidget(title()); + vlayout -> addWidget(tabs); + vlayout -> addWidget(buttons); + setLayout(vlayout); } /** @@ -59,29 +59,29 @@ AboutQET::~AboutQET() { /** @return Le titre QElectroTech avec son icone */ -QWidget *AboutQET::titre() const { - QWidget *icone_et_titre = new QWidget(); +QWidget *AboutQET::title() const { + QWidget *icon_and_title = new QWidget(); // icone - QLabel *icone = new QLabel(); - icone -> setPixmap(QIcon(":/ico/qelectrotech.png").pixmap(48, 48)); + QLabel *icon = new QLabel(); + icon -> setPixmap(QIcon(":/ico/qelectrotech.png").pixmap(48, 48)); // label "QElectroTech" - QLabel *titre = new QLabel("QElectroTech v" + QET::displayedVersion + ""); - titre -> setTextFormat(Qt::RichText); + QLabel *title = new QLabel("QElectroTech v" + QET::displayedVersion + ""); + title -> setTextFormat(Qt::RichText); // le tout dans une grille - QGridLayout *dispo_horiz = new QGridLayout(); - dispo_horiz -> addWidget(icone, 0, 0); - dispo_horiz -> addWidget(titre, 0, 1); - dispo_horiz -> setColumnStretch(0, 1); - dispo_horiz -> setColumnStretch(1, 100); - icone_et_titre -> setLayout(dispo_horiz); - return(icone_et_titre); + QGridLayout *grid_layout = new QGridLayout(); + grid_layout -> addWidget(icon, 0, 0); + grid_layout -> addWidget(title, 0, 1); + grid_layout -> setColumnStretch(0, 1); + grid_layout -> setColumnStretch(1, 100); + icon_and_title -> setLayout(grid_layout); + return(icon_and_title); } /** - @return Le widget contenu par l'onglet « A propos » + @return Le widget contenu par l'onglet "A propos" */ -QWidget *AboutQET::ongletAPropos() const { - QLabel *apropos = new QLabel( +QWidget *AboutQET::aboutTab() const { + QLabel *about = new QLabel( tr("QElectroTech, une application de r\351alisation de sch\351mas \351lectriques.") + "

" + tr("\251 2006-2009 Les d\351veloppeurs de QElectroTech") + @@ -89,52 +89,60 @@ QWidget *AboutQET::ongletAPropos() const { "" "http://qelectrotech.org/" ); - apropos -> setAlignment(Qt::AlignCenter); - apropos -> setOpenExternalLinks(true); - apropos -> setTextFormat(Qt::RichText); - return(apropos); + about -> setAlignment(Qt::AlignCenter); + about -> setOpenExternalLinks(true); + about -> setTextFormat(Qt::RichText); + return(about); } /** - @return Le widget contenu par l'onglet « Auteurs » + @return Le widget contenu par l'onglet "Auteurs" */ -QWidget *AboutQET::ongletAuteurs() const { - QLabel *auteurs = new QLabel( - "" + - tr("Id\351e originale") + - " : Beno\356t Ansieau " - "<" - "benoit.ansieau@gmail.com>" - "

" - "" + - tr("Programmation") + - " : Xavier Guerrin " - "<" - "xavier.guerrin@gmail.com>" - ); - auteurs -> setAlignment(Qt::AlignCenter); - auteurs -> setOpenExternalLinks(true); - auteurs -> setTextFormat(Qt::RichText); - return(auteurs); +QWidget *AboutQET::authorsTab() const { + QLabel *authors = new QLabel(); + addAuthor(authors, "Beno\356t Ansieau", "benoit@qelectrotech.org", tr("Id\351e originale")); + addAuthor(authors, "Xavier Guerrin", "xavier@qelectrotech.org", tr("Programmation")); + addAuthor(authors, "Youssef Oualmakran", "youssefsan@qelectrotech.org", tr("Traduction en espagnol")); + authors -> setAlignment(Qt::AlignCenter); + authors -> setOpenExternalLinks(true); + authors -> setTextFormat(Qt::RichText); + return(authors); } /** - @return Le widget contenu par l'onglet « Accord de Licence » + @return Le widget contenu par l'onglet "Accord de Licence" */ -QWidget *AboutQET::ongletLicence() const { - QWidget *licence = new QWidget(); +QWidget *AboutQET::licenseTab() const { + QWidget *license = new QWidget(); // label - QLabel *titre_licence = new QLabel(tr("Ce programme est sous licence GNU/GPL.")); + QLabel *title_license = new QLabel(tr("Ce programme est sous licence GNU/GPL.")); // texte de la GNU/GPL dans une zone de texte scrollable non editable - QTextEdit *texte_licence = new QTextEdit(); - texte_licence -> setPlainText(QET::license()); - texte_licence -> setReadOnly(true); + QTextEdit *text_license = new QTextEdit(); + text_license -> setPlainText(QET::license()); + text_license -> setReadOnly(true); // le tout dans une disposition verticale - QVBoxLayout *dispo_licence = new QVBoxLayout(); - dispo_licence -> addWidget(titre_licence); - dispo_licence -> addWidget(texte_licence); - licence -> setLayout(dispo_licence); - return(licence); + QVBoxLayout *license_layout = new QVBoxLayout(); + license_layout -> addWidget(title_license); + license_layout -> addWidget(text_license); + license -> setLayout(license_layout); + return(license); +} + +/** + Ajoute une personne a la liste des auteurs + @param label QLabel auquel sera ajoute la personne + @param name Nom de la personne + @param email Adresse e-mail de la personne + @param work Fonction / travail effectue par la personne +*/ +void AboutQET::addAuthor(QLabel *label, const QString &name, const QString &email, const QString &work) const { + QString new_text = label -> text(); + + QString author_template = "%1 : %2 <%3>

"; + + // ajoute la fonction de la personne + new_text += author_template.arg(work).arg(name).arg(email); + label -> setText(new_text); } diff --git a/sources/aboutqet.h b/sources/aboutqet.h index dddb4c6dc..44707ccf7 100644 --- a/sources/aboutqet.h +++ b/sources/aboutqet.h @@ -18,6 +18,7 @@ #ifndef ABOUTQET_H #define ABOUTQET_H #include +class QLabel; /** Cette classe represente la boite de dialogue « A propos de QElectroTech » @@ -35,9 +36,10 @@ class AboutQET : public QDialog { // methodes private: - QWidget *titre() const; - QWidget *ongletAPropos() const; - QWidget *ongletAuteurs() const; - QWidget *ongletLicence() const; + QWidget *title() const; + QWidget *aboutTab() const; + QWidget *authorsTab() const; + QWidget *licenseTab() const; + void addAuthor(QLabel *, const QString &, const QString &, const QString &) const; }; #endif diff --git a/sources/recentfiles.cpp b/sources/recentfiles.cpp index a07d8ebb9..8147f2544 100644 --- a/sources/recentfiles.cpp +++ b/sources/recentfiles.cpp @@ -103,12 +103,15 @@ void RecentFiles::extractFilesFromSettings() { Insere un fichier dans la liste des fichiers recents */ void RecentFiles::insertFile(const QString &filepath) { + // s'assure que le chemin soit exprime avec des separateurs conformes au systeme + QString filepath_ns = QDir::toNativeSeparators(filepath); + // evite d'inserer un chemin de fichier vide ou en double - if (filepath.isEmpty()) return; - list_.removeAll(filepath); + if (filepath_ns.isEmpty()) return; + list_.removeAll(filepath_ns); // insere le chemin de fichier - list_.push_front(filepath); + list_.push_front(filepath_ns); // s'assure que l'on ne retient pas plus de fichiers que necessaire while (list_.count() > size_) list_.removeLast();