diff --git a/configdialog.cpp b/configdialog.cpp new file mode 100644 index 000000000..2819452fb --- /dev/null +++ b/configdialog.cpp @@ -0,0 +1,89 @@ +#include "configdialog.h" +#include "qetapp.h" + +/** + Constructeur + @param parent QWidget parent +*/ +ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { + + setWindowTitle(tr("Configurer QElectroTech")); + setMinimumSize(900, 400); + + // liste des pages + pages_list = new QListWidget(); + pages_list -> setViewMode(QListView::IconMode); + pages_list -> setIconSize(QSize(48, 48)); + pages_list -> setMovement(QListView::Static); + pages_list -> setMinimumWidth(135); + pages_list -> setMaximumWidth(135); + pages_list -> setSpacing(4); + + // pages + pages_widget = new QStackedWidget(); + addPage(new NewDiagramPage()); + buildPagesList(); + + // boutons + buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); + + // layouts + QHBoxLayout *hlayout1 = new QHBoxLayout(); + hlayout1 -> addWidget(pages_list); + hlayout1 -> addWidget(pages_widget); + + QVBoxLayout *vlayout1 = new QVBoxLayout(); + vlayout1 -> addLayout(hlayout1); + vlayout1 -> addWidget(buttons); + setLayout(vlayout1); + + // connexion signaux / slots + connect(buttons, SIGNAL(accepted()), this, SLOT(applyConf())); + connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); + connect(pages_list, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); +} + +/// Destructeur +ConfigDialog::~ConfigDialog() { +} + +/** + Gere les changements de page dans le dialogue de configuration +*/ +void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous) { + if (!current) current = previous; + pages_widget -> setCurrentIndex(pages_list -> row(current)); +} + +/** + Construit la liste des pages sur la gauche +*/ +void ConfigDialog::buildPagesList() { + pages_list -> clear(); + foreach(ConfigPage *page, pages) { + QListWidgetItem *new_button = new QListWidgetItem(pages_list); + new_button -> setIcon(page -> icon()); + new_button -> setText(page -> title()); + new_button -> setTextAlignment(Qt::AlignHCenter); + new_button -> setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + } +} + +/** + Applique la configuration de toutes les pages +*/ +void ConfigDialog::applyConf() { + foreach(ConfigPage *page, pages) { + page -> applyConf(); + } + accept(); +} + +/** + Ajoute une page au dialogue de configuration +*/ +void ConfigDialog::addPage(ConfigPage *page) { + if (!page || pages.contains(page)) return; + pages << page; + pages_widget -> addWidget(page); +} diff --git a/configdialog.h b/configdialog.h new file mode 100644 index 000000000..b889e2a33 --- /dev/null +++ b/configdialog.h @@ -0,0 +1,39 @@ +#ifndef CONFIG_DIALOG_H +#define CONFIG_DIALOG_H +#include +#include "configpages.h" +class QListWidget; +class QListWidgetItem; +class QStackedWidget; +class QDialogButtonBox; +/** + Cette classe represente le dialogue de configuration de QElectroTech. + Il s'agit d'un dialogue affichant des "pages de configuration". + Chaque page de configuration doit fournir une icone et un titre. +*/ +class ConfigDialog : public QDialog { + Q_OBJECT + // constructeurs, destructeur + public: + ConfigDialog(QWidget * = 0); + virtual ~ConfigDialog(); + private: + ConfigDialog(const ConfigDialog &); + + // methodes + public slots: + void changePage(QListWidgetItem *, QListWidgetItem *); + void applyConf(); + void addPage(ConfigPage *); + + private: + void buildPagesList(); + + // attributs + private: + QListWidget *pages_list; + QStackedWidget *pages_widget; + QDialogButtonBox *buttons; + QList pages; +}; +#endif diff --git a/configpages.cpp b/configpages.cpp new file mode 100644 index 000000000..eaceaff01 --- /dev/null +++ b/configpages.cpp @@ -0,0 +1,164 @@ +#include "configpages.h" +#include "qetapp.h" + +/** + Constructeur + @param parent QWidget parent +*/ +NewDiagramPage::NewDiagramPage(QWidget *parent) : ConfigPage(parent) { + + // acces a la configuration de QElectroTech + QSettings &settings = QETApp::settings(); + + // recupere les dimensions du schema + int columns_count_value = settings.value("diagrameditor/defaultcols", 15).toInt(); + int columns_width_value = qRound(settings.value("diagrameditor/defaultcolsize", 50.0).toDouble()); + int columns_height_value = qRound(settings.value("diagrameditor/defaultheight", 500.0).toDouble()); + + QVBoxLayout *vlayout1 = new QVBoxLayout(); + + QLabel *title = new QLabel(tr("Nouveau sch\351ma")); + vlayout1 -> addWidget(title); + + QFrame *horiz_line = new QFrame(); + horiz_line -> setFrameShape(QFrame::HLine); + vlayout1 -> addWidget(horiz_line); + + QHBoxLayout *hlayout1 = new QHBoxLayout(); + QVBoxLayout *vlayout2 = new QVBoxLayout(); + + QGroupBox *diagram_size_box = new QGroupBox(tr("Dimensions du sch\351ma")); + diagram_size_box -> setMinimumWidth(300); + QGridLayout *diagram_size_box_layout = new QGridLayout(diagram_size_box); + + QLabel *ds1 = new QLabel(tr("Colonnes :")); + + columns_count = new QSpinBox(diagram_size_box); + columns_count -> setMinimum(3); /// @todo methode statique pour recuperer ca + columns_count -> setValue(columns_count_value); + + columns_width = new QSpinBox(diagram_size_box); + columns_width -> setMinimum(1); + columns_width -> setSingleStep(10); + columns_width -> setValue(columns_width_value); + columns_width -> setPrefix(tr("\327")); + columns_width -> setSuffix(tr("px")); + + QLabel *ds2 = new QLabel(tr("Hauteur :")); + + columns_height = new QSpinBox(diagram_size_box); + columns_height -> setRange(80, 10000); /// @todo methode statique pour recuperer ca + columns_height -> setSingleStep(80); + columns_height -> setValue(columns_height_value); + + diagram_size_box_layout -> addWidget(ds1, 0, 0); + diagram_size_box_layout -> addWidget(columns_count, 0, 1); + diagram_size_box_layout -> addWidget(columns_width, 0, 2); + diagram_size_box_layout -> addWidget(ds2, 1, 0); + diagram_size_box_layout -> addWidget(columns_height, 1, 1); + + QGroupBox *inset_infos = new QGroupBox(tr("Informations du cartouche"), this); + inset_infos -> setMinimumWidth(300); + + inset_title = new QLineEdit(settings.value("diagrameditor/defaulttitle").toString(), this); + inset_author = new QLineEdit(settings.value("diagrameditor/defaultauthor").toString(), this); + + QButtonGroup *date_policy_group = new QButtonGroup(this); + inset_no_date = new QRadioButton(tr("Pas de date"), this); + inset_current_date = new QRadioButton(tr("Date courante"), this); + inset_fixed_date = new QRadioButton(tr("Date fixe : "), this); + date_policy_group -> addButton(inset_no_date); + date_policy_group -> addButton(inset_current_date); + date_policy_group -> addButton(inset_fixed_date); + QString settings_date = settings.value("diagrameditor/defaultdate").toString(); + QDate date_diagram; + if (settings_date == "now") { + date_diagram = QDate::currentDate(); + inset_current_date -> setChecked(true); + } else if (settings_date.isEmpty() || settings_date == "null") { + date_diagram = QDate(); + inset_no_date -> setChecked(true); + } else { + date_diagram = QDate::fromString(settings_date, "yyyyMMdd"); + inset_fixed_date -> setChecked(true); + } + inset_date = new QDateEdit(date_diagram, this); + inset_date -> setEnabled(inset_fixed_date -> isChecked()); + connect(inset_fixed_date, SIGNAL(toggled(bool)), inset_date, SLOT(setEnabled(bool))); + inset_date -> setCalendarPopup(true); + + QGridLayout *layout_date = new QGridLayout(); + layout_date -> addWidget(inset_no_date, 0, 0); + layout_date -> addWidget(inset_current_date, 1, 0); + layout_date -> addWidget(inset_fixed_date, 2, 0); + layout_date -> addWidget(inset_date, 2, 1); + + inset_filename = new QLineEdit(settings.value("diagrameditor/defaultfilename").toString(), this); + inset_folio = new QLineEdit(settings.value("diagrameditor/defaultfolio").toString(), this); + QGridLayout *layout_champs = new QGridLayout(inset_infos); + + layout_champs -> addWidget(new QLabel(tr("Titre : ")), 0, 0); + layout_champs -> addWidget(inset_title, 0, 1); + layout_champs -> addWidget(new QLabel(tr("Auteur : ")), 1, 0); + layout_champs -> addWidget(inset_author, 1, 1); + layout_champs -> addWidget(new QLabel(tr("Date : ")), 2, 0); + layout_champs -> addLayout(layout_date, 3, 1); + layout_champs -> addWidget(new QLabel(tr("Fichier : ")), 4, 0); + layout_champs -> addWidget(inset_filename, 4, 1); + layout_champs -> addWidget(new QLabel(tr("Folio : ")), 5, 0); + layout_champs -> addWidget(inset_folio, 5, 1); + + // proprietes par defaut des conducteurs + ConductorProperties cp; + cp.fromSettings(settings, "diagrameditor/defaultconductor"); + cpw = new ConductorPropertiesWidget(cp); + + vlayout2 -> addWidget(diagram_size_box); + vlayout2 -> addWidget(inset_infos); + hlayout1 -> addLayout(vlayout2); + hlayout1 -> addWidget(cpw); + vlayout1 -> addLayout(hlayout1); + vlayout1 -> addStretch(1); + hlayout1 -> setAlignment(cpw, Qt::AlignTop); + setLayout(vlayout1); +} + +/// Destructeur +NewDiagramPage::~NewDiagramPage() { +} + +/** + Applique la configuration de cette page +*/ +void NewDiagramPage::applyConf() { + QSettings &settings = QETApp::settings(); + + // dimensions des nouveaux schemas + settings.setValue("diagrameditor/defaultcols", columns_count -> value()); + settings.setValue("diagrameditor/defaultcolsize", columns_width -> value()); + settings.setValue("diagrameditor/defaultheight", columns_height -> value()); + + // proprietes du cartouche + settings.setValue("diagrameditor/defaulttitle", inset_title -> text()); + settings.setValue("diagrameditor/defaultauthor", inset_author -> text()); + settings.setValue("diagrameditor/defaultfilename", inset_filename -> text()); + settings.setValue("diagrameditor/defaultfolio", inset_folio -> text()); + QString date_setting_value; + if (inset_no_date -> isChecked()) date_setting_value = "null"; + else if (inset_current_date -> isChecked()) date_setting_value = "now"; + else date_setting_value = inset_date -> date().toString("yyyyMMdd"); + settings.setValue("diagrameditor/defaultdate", date_setting_value); + + // proprietes par defaut des conducteurs + cpw -> conductorProperties().toSettings(settings, "diagrameditor/defaultconductor"); +} + +/// @return l'icone de cette page +QIcon NewDiagramPage::icon() const { + return(QIcon(":/ico/conf_new_diagram.png")); +} + +/// @return le titre de cette page +QString NewDiagramPage::title() const { + return(tr("Nouveau sch\351ma")); +} diff --git a/configpages.h b/configpages.h new file mode 100644 index 000000000..64c646c50 --- /dev/null +++ b/configpages.h @@ -0,0 +1,53 @@ +#ifndef CONFIG_PAGES_H +#define CONFIG_PAGES_H +#include +#include "conductorpropertieswidget.h" + +/** + Cette classe abstraite contient les methodes que toutes les pages de + configuration doivent implementer. +*/ +class ConfigPage : public QWidget { + Q_OBJECT + public: + ConfigPage(QWidget *parent) : QWidget(parent) {}; + virtual ~ConfigPage() {}; + virtual void applyConf() = 0; + virtual QString title() const = 0; + virtual QIcon icon() const = 0; +}; + +/** + Cette classe represente la page de configuration des nouveaux schemas. +*/ +class NewDiagramPage : public ConfigPage { + Q_OBJECT + // constructeurs, destructeur + public: + NewDiagramPage(QWidget * = 0); + virtual ~NewDiagramPage(); + private: + NewDiagramPage(const NewDiagramPage &); + + // methodes + public: + void applyConf(); + QString title() const; + QIcon icon() const; + + // attributs + public: + QSpinBox *columns_count; + QSpinBox *columns_width; + QSpinBox *columns_height; + QLineEdit *inset_title; + QLineEdit *inset_author; + QDateEdit *inset_date; + QLineEdit *inset_filename; + QLineEdit *inset_folio; + QRadioButton *inset_no_date; + QRadioButton *inset_current_date; + QRadioButton *inset_fixed_date; + ConductorPropertiesWidget *cpw; +}; +#endif diff --git a/diagramview.cpp b/diagramview.cpp index c1391132c..752f2336d 100644 --- a/diagramview.cpp +++ b/diagramview.cpp @@ -504,29 +504,45 @@ void DiagramView::dialogEditInfos() { QLineEdit *titre = new QLineEdit(inset.title, &popup); QLineEdit *auteur = new QLineEdit(inset.author, &popup); - QDate date_diagram = QDate(inset.date); - if (date_diagram.isNull() || !date_diagram.isValid()) date_diagram = QDate::currentDate(); - QDateEdit *date = new QDateEdit(date_diagram, &popup); + + QButtonGroup *date_policy_group = new QButtonGroup(this); + QRadioButton *inset_no_date = new QRadioButton(tr("Pas de date")); + QRadioButton *inset_fixed_date = new QRadioButton(tr("Date fixe : ")); + date_policy_group -> addButton(inset_no_date); + date_policy_group -> addButton(inset_fixed_date); + + QDate date_diagram(inset.date); + inset_no_date -> setChecked(date_diagram.isNull()); + inset_fixed_date -> setChecked(!date_diagram.isNull()); + QDateEdit *date = new QDateEdit(date_diagram.isNull() ? QDate::currentDate() : date_diagram); date -> setCalendarPopup(true); + date -> setEnabled(inset_fixed_date -> isChecked()); + connect(inset_fixed_date, SIGNAL(toggled(bool)), date, SLOT(setEnabled(bool))); + QLineEdit *fichier = new QLineEdit(inset.filename, &popup); QLineEdit *folio = new QLineEdit(inset.folio, &popup); QGridLayout layout_champs(inset_infos); + QGridLayout *layout_date = new QGridLayout(); + layout_date -> addWidget(inset_no_date, 0, 0); + layout_date -> addWidget(inset_fixed_date, 1, 0); + layout_date -> addWidget(date, 1, 1); + layout_champs.addWidget(new QLabel(tr("Titre : ")), 0, 0); layout_champs.addWidget(titre, 0, 1); layout_champs.addWidget(new QLabel(tr("Auteur : ")), 1, 0); layout_champs.addWidget(auteur, 1, 1); layout_champs.addWidget(new QLabel(tr("Date : ")), 2, 0); - layout_champs.addWidget(date, 2, 1); - layout_champs.addWidget(new QLabel(tr("Fichier : ")), 3, 0); - layout_champs.addWidget(fichier, 3, 1); - layout_champs.addWidget(new QLabel(tr("Folio : ")), 4, 0); - layout_champs.addWidget(folio, 4, 1); + layout_champs.addLayout(layout_date, 3, 1); + layout_champs.addWidget(new QLabel(tr("Fichier : ")), 4, 0); + layout_champs.addWidget(fichier, 4, 1); + layout_champs.addWidget(new QLabel(tr("Folio : ")), 5, 0); + layout_champs.addWidget(folio, 5, 1); // boutons QDialogButtonBox boutons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(&boutons, SIGNAL(accepted()), &popup, SLOT(accept())); - connect(&boutons, SIGNAL(rejected()), &popup, SLOT(accept())); + connect(&boutons, SIGNAL(rejected()), &popup, SLOT(reject())); // ajout dans une disposition verticale QVBoxLayout layout_v(&popup); @@ -538,7 +554,7 @@ void DiagramView::dialogEditInfos() { InsetProperties new_inset; new_inset.title = titre -> text(); new_inset.author = auteur -> text(); - new_inset.date = date -> date(); + new_inset.date = inset_no_date -> isChecked() ? QDate() : date -> date(); new_inset.filename = fichier -> text(); new_inset.folio = folio -> text(); diff --git a/ico/conf_new_diagram.png b/ico/conf_new_diagram.png new file mode 100644 index 000000000..a5c7b5d7d Binary files /dev/null and b/ico/conf_new_diagram.png differ diff --git a/lang/qet_en.qm b/lang/qet_en.qm index 36a55b936..4c3016fe6 100644 Binary files a/lang/qet_en.qm and b/lang/qet_en.qm differ diff --git a/lang/qet_en.ts b/lang/qet_en.ts index c6215143b..901dd7940 100644 --- a/lang/qet_en.ts +++ b/lang/qet_en.ts @@ -54,32 +54,32 @@ Centre : - Center : + Center: Diamètres : - Diameters : + Diameters: horizontal : - horizontal : + horizontal: vertical : - vertical : + vertical: Angle de départ : - Start angle : + Start angle: Angle : - Angle : + Angle: @@ -115,29 +115,29 @@ BorderInset - + Auteur : - Author : + Author: - + Date : - Date : + Date: - + Fichier : - File : + File: - + Folio : - Folio : + Folio: - + Titre du document : - Document title : + Document title: @@ -145,12 +145,12 @@ Centre : - Center : + Center: Diamètre : - Diameter : + Diameter: @@ -183,7 +183,7 @@ Texte : - Text : + Text: @@ -211,15 +211,23 @@ Simple + + ConfigDialog + + + Configurer QElectroTech + Configure QElectroTech + + Diagram - + Avertissement Warning - + Ce document semble avoir été enregistré avec une version ultérieure de QElectroTech. Il est possible que l'ouverture de tout ou partie de ce document échoue. This document seems to have been saved by a more recent version of QElectroTech. The opening of the document may fail totally or partially. @@ -227,112 +235,112 @@ DiagramView - + ? ? - + Auteur : - Author : + Author: - + Date : - Date : + Date: - + Enregistrer le schéma en cours ? Save the current diagram ? - + Enregistrer sous Save as - + Erreur Error - + Fichier : - File : + File: - + Folio : - Folio : + Folio: - + Impossible d'ecrire dans ce fichier Can't write to the file - + Schéma QElectroTech (*.qet) QElectroTech Diagram (*.qet) - + Titre : - Title : + Title: - + Voulez-vous enregistrer le schéma Do you wish to save the diagram - + nouveau schéma new diagram - + Éditer les propriétés d'un conducteur Edit conductor properties - + Propriétés du schéma Diagram properties - + Dimensions du schéma Diagram size - + Colonnes : - Columns : + Columns: - + × × - + px px - + Hauteur : - Height : + Height: - + Informations du cartouche Inset properties - + Éditer les propriétés par défaut des conducteurs Edit conductors default properties @@ -341,6 +349,16 @@ Coller ici Paste Here + + + Pas de date + No date + + + + Date fixe : + Fixed Date: + ElementDeleter @@ -636,22 +654,22 @@ Please check rights of the directory Centre : - Center : + Center: Diamètres : - Diameters : + Diameters: horizontal : - horizontal : + horizontal: vertical : - vertical : + vertical: @@ -744,12 +762,12 @@ Please check rights of the directory Format : - Format : + Format: Hauteur : - Height : + Height: @@ -769,12 +787,12 @@ Please check rights of the directory Largeur : - Width : + Width: Nom de fichier : - Filename : + Filename: @@ -842,12 +860,12 @@ Please check rights of the directory Largeur : - Width : + Width: Hauteur : - Height : + Height: @@ -857,12 +875,12 @@ Please check rights of the directory Abscisse : - Abscissa : + Abscissa: Ordonnée : - Ordinate : + Ordinate: @@ -916,12 +934,90 @@ Please check rights of the directory You must enter at least one name. + + NewDiagramPage + + + Nouveau schéma + New Diagram + + + + Dimensions du schéma + Diagram size + + + + Colonnes : + Columns: + + + + × + × + + + + px + px + + + + Informations du cartouche + Inset properties + + + + Pas de date + No date + + + + Date courante + Current date + + + + Date fixe : + Fixed date: + + + + Titre : + Title: + + + + Auteur : + Author: + + + + Date : + Date: + + + + Fichier : + File: + + + + Folio : + Folio: + + + + Hauteur : + Height: + + NewElementWizard Créer un nouvel élément : Assistant - Create a new element : wizard + Create a new element: wizard @@ -961,7 +1057,7 @@ Please check rights of the directory Étape 1/5 : Catégorie parente - Step 1 of 5 : Parent Category + Step 1 of 5: Parent category @@ -971,7 +1067,7 @@ Please check rights of the directory Étape 2/5 : Nom du fichier - Step 2 of 5 : Filename + Step 2 of 5: Filename @@ -981,7 +1077,7 @@ Please check rights of the directory Étape 3/5 : Noms de l'élément - Step 3 of 5 : Element names + Step 3 of 5: Element names @@ -991,7 +1087,7 @@ Please check rights of the directory Étape 4/5 : Dimensions et point de saisie - Step 4 of 5 : Size and hotspot + Step 4 of 5: Size and hotspot @@ -1001,7 +1097,7 @@ Please check rights of the directory Étape 5/5 : Orientations - Step 5 of 5 : Orientations + Step 5 of 5: Orientations @@ -1024,22 +1120,22 @@ Please check rights of the directory Nord : - North : + North: Est : - East : + East: Sud : - South : + South: Ouest : - West : + West: @@ -1067,7 +1163,7 @@ Please check rights of the directory Points du polygone : - Polygon points : + Polygon points: @@ -1088,87 +1184,87 @@ Please check rights of the directory QETApp - + QElectroTech QElectroTech - + &Quitter &Quit - + &Masquer &Hide - + &Restaurer &Show - + &Masquer tous les éditeurs de schéma &Hide diagram editors - + &Restaurer tous les éditeurs de schéma &Show diagram editors - + &Masquer tous les éditeurs d'élément &Hide element editors - + &Restaurer tous les éditeurs d'élément &Show element editors - + &Nouvel éditeur de schéma &New diagram editor - + &Nouvel éditeur d'élément &New element editor - + Ferme l'application QElectroTech Closes QElectroTech - + Réduire QElectroTech dans le systray Reduces QElectroTech into the systray - + Restaurer QElectroTech Restore QElectroTech - + Éditeurs de schémas Diagram editors - + Éditeurs d'élément Element editors - + Usage : Usage: - + QElectroTech, une application de réalisation de schémas électriques. Options disponibles : @@ -1185,7 +1281,7 @@ Available options: - + [options] [fichier]... @@ -1194,7 +1290,7 @@ Available options: - + --common-elements-dir=DIR Definir le dossier de la collection d'elements --common-elements-dir=DIR Define the elements collection directory @@ -1209,112 +1305,112 @@ Available options: Activates the window - + Active la fenêtre précédente Activates the previous window - + Active la fenêtre suivante Activates the next window - + Adapte la taille du schéma afin qu'il soit entièrement visible Changes the size of the plan so that it fits in the view - + Afficha&ge Displ&ay - + Affiche des informations sur la bibliothèque Qt Displays informations about Qt library - + Affiche des informations sur QElectroTech Displays informations about QElectroTech - + Affiche ou non le panel d'appareils Displays or not the elements panel - + Affiche QElectroTech en mode fenêtré Displays QElectroTech in windowed mode - + Affiche QElectroTech en mode plein écran Displays QELectroTech in full screen mode - + Afficher Display - + Agrandir le schéma Expand the diagram - + Agrandit le schéma Expand the diagram - + Agrandit le schéma en hauteur Expand the diagram's height - + &Aide &Help - + Ajouter une colonne Add a column - + Ajoute une colonne au schéma Add a column to the diagram - + Aligne les fenêtres réduites Arranges all iconized windows at the bottom of the workspace - + Annule l'action précédente Undoes the previous action - + À &propos de QElectroTech A&bout QElectroTech - + À propos de &Qt About &Qt - + Arranger les fenêtres réduites Arranges iconized windows - + &Cascade &Cascade @@ -1329,152 +1425,152 @@ Available options: This file does not exist. - + C&oller &Paste - + &Configuration &Settings - + &Configurer QElectroTech &Configure QElectroTech - + Copie les éléments sélectionnés dans le presse-papier Copies selected elements - + Cop&ier &Copy - + Co&uper Cu&t - + Crée un nouveau schéma Opens a new diagram - + Ctrl+0 - + Ctrl+9 - + Ctrl+I - + Ctrl+Q - + Ctrl+R Ctrl+R - + Ctrl+Shift+A - + Ctrl+Shift+F Ctrl+Shift+F - + Ctrl+Shift+I - + Ctrl+Shift+X - + Désélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnés Deselects selected elements and select non-selected elements - + Désélectionner tout Select none - + Désélectionne tous les éléments du schéma Deselect all elements on the plan - + Dispose les fenêtres en cascade Arranges windows in a cascade pattern - + Dispose les fenêtres en mosaïque Arranges windows in a tile pattern - + Édite les informations affichées par le cartouche Edit informations displayed by the inset - + &Édition &Edit - + Enlève les éléments sélectionnés du schéma Removes selected elements from the plan - + Enlever une colonne Remove a column - + Enlève une colonne au schéma Remove a column from the diagram - + Enregistre le schéma courant Saves the current plan - + Enregistre le schéma courant avec un autre nom de fichier Saves the current plan as another filename - + &Enregistrer &Save - + Enregistrer sous Save as @@ -1484,57 +1580,57 @@ Available options: Error - + Exporte le schéma courant dans un autre format Exports the curent plan to another format - + E&xporter &Export - + Fenêtre précédente Previous Window - + Fe&nêtres Wi&ndows - + Fenêtre suivante Next Window - + Ferme l'application QElectroTech Closes QElectroTech - + Ferme le schéma courant Closes the current plan - + &Fermer &Close - + &Fichier &File - + &Importer &Import - + Importe un schéma dans le schéma courant Imports a plan into the current plan @@ -1544,37 +1640,37 @@ Available options: Could not read file. - + Imprime le schéma courant Prints the current plan - + Imprimer Print - + Inverser la sélection Invert selection - + Mode Selection Selection Mode - + Mode Visualisation View Mode - + &Mosaïque &Tile - + &Nouveau &New @@ -1584,12 +1680,12 @@ Available options: Tools - + Ouvre un schéma existant Open an existing diagram - + &Ouvrir &Open @@ -1599,82 +1695,82 @@ Available options: Open a file - + Panel d'appareils Elements Panel - + Pas de zoom Reset zoom - + Passer en &mode plein écran F&ullScreen Mode - + Permet de régler différents paramètres de QElectroTech Allows to specify various parameters for QElectroTech - + Permet de sélectionner les éléments Allows to select elements - + Permet de visualiser le schéma sans pouvoir le modifier Allows to view the plan without modifying it - + Pivote les éléments sélectionnés Rotates selected elements - + Pivoter Rotate - + Place les éléments du presse-papier sur le schéma Pastes elements from the clipboard into the plan - + QElectroTech QElectroTech - + &Quitter &Quit - + Restaure l'action annulée Restores the undone action - + Restaure le zoom par défaut Restores default zoom level - + Rétrécir le schéma Shrink the diagram - + Rétrécit le schéma Shrinks the plan - + Rétrécit le schéma en hauteur Shrink the diagram's height @@ -1684,27 +1780,27 @@ Available options: QElectroTech Diagrams (*.qet);;XML Files (*.xml);;All files (*) - + Sélectionne tous les éléments du schéma Selects all elements on the plan - + Sortir du &mode plein écran Exit F&ullScreen Screen Mode - + Supprimer Delete - + Tout sélectionner Select All - + Transfère les éléments sélectionnés dans le presse-papier Puts selected elements into the clipboard @@ -1714,87 +1810,87 @@ Available options: An error occured while opening the file. - + Zoom adapté Fit in view - + Zoom arrière Zoom Out - + Zoom avant Zoom In - + Annuler Undo - + Refaire Redo - + Propriétés du conducteur Conductor properties - + Édite les propriétés du conducteur sélectionné Edit the selected conductor properties - + Réinitialiser les conducteurs Reset conductors - + Suppr Del - + Ctrl+J Ctrl+J - + Ctrl+K Ctrl+K - + Propriétés du schéma Diagram Properties - + Ctrl+L Ctrl+L - + Recalcule les chemins des conducteurs sans tenir compte des modifications Reset the conductors path ignoring the user changes - + Affiche ou non la barre d'outils principale Display or hide the main toolbar - + Affiche ou non la barre d'outils Affichage Display or hide the Display toolbar - + Affiche ou non la barre d'outils Schéma Display or hide the Diagram toolbar @@ -1809,32 +1905,32 @@ Available options: Diagram - + Conducteurs par défaut Default conductors - + Ctrl+D Ctrl+D - + Spécifie les propriétés par défaut des conducteurs Specify the conductors default properties - + Ajouter un champ de texte Add a textfield - + Annulations Undo - + Aucune modification No modification @@ -1852,337 +1948,337 @@ Available options: QElectroTech - Element Editor - + &Nouveau &New - + &Ouvrir &Open - + &Enregistrer &Save - + Enregistrer sous Save as - + &Quitter &Quit - + Tout sélectionner Select All - + Désélectionner tout Select none - + Inverser la sélection Invert selection - + &Supprimer &Delete - + Éditer la taille et le point de saisie Edit size and hotspot - + Éditer les noms Edit names - + Éditer les orientations Edit orientations - + Déplacer un objet Move an object - + Ajouter une ligne Add a line - + Ajouter une ellipse Add an ellipse - + Ajouter un cercle Add a circle - + Ajouter un polygone Add a polygon - + Ajouter du texte Add text - + Ajouter un arc de cercle Add an arc - + Ajouter une borne Add a terminal - + Ajouter un champ de texte Add a textfield - + Annuler Undo - + Refaire Redo - + Ctrl+Q Ctrl+Q - + Ctrl+Shift+A Ctrl+Shift+A - + Ctrl+I Ctrl+I - + Parties Parts - + Fichier File - + Édition Edit - + Affichage Display - + Outils Tools - + Aide Help - + [Modifié] [Changed] - + [lecture seule] [Read only] - + Informations Informations - + Annulations Undo - + Éditeur d'éléments Elements Editor - + parties sélectionnées. selected parts. - + Aucune partie sélectionnée. No part selected. - + Le fichier The file - + n'existe pas. does not exist. - + Impossible d'ouvrir le fichier Unable to open file - + Ce fichier n'est pas un document XML valide This file is not a valid XML document - + Erreur Error - + Édition en lecture seule Read only edition - + Vous n'avez pas les privilèges nécessaires pour modifier cet élement. Il sera donc ouvert en lecture seule. You are not allowed to modify this element. Thus it will be edited read-only. - + Impossible d'ecrire dans ce fichier Can't write to the file - + Ouvrir un fichier Open a file - + Éléments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*) QElectroTech elements (*.elmt);;XML files (*.xml);;All files (*) - + Éléments QElectroTech (*.elmt) QElectroTech elements (*.elmt) - + Enregistrer l'élément en cours ? Save current element ? - + Voulez-vous enregistrer l'élément Do you wish to save the element - + ? ? - + Afficher Display - + Suppr Del - + Ctrl+E Ctrl+E - + Ctrl+R Ctrl+R - + Ctrl+T Ctrl+T - + Rapprocher Raise - + Éloigner Lower - + Envoyer au fond Send backward - + Amener au premier plan Bring forward - + Ctrl+Shift+Up Ctrl+Shift+Up - + Ctrl+Shift+Down Ctrl+Shift+Down - + Ctrl+Shift+End Ctrl+Shift+End - + Ctrl+Shift+Home Ctrl+Shift+Home - + Aucune modification No modification @@ -2280,42 +2376,42 @@ Available options: delete - + coller paste - + couper cut - + déplacer move - + modifier le texte modify text - + pivoter rotate - + modifier un conducteur modify a conductor - + modifier le cartouche modify the inset - + modifier les dimensions du schéma modify the diagram size @@ -2365,14 +2461,14 @@ Available options: Terminal - + modifier les propriétés d'un conducteur modify conductor properties Avertissement : l'élément - Warning : the element + Warning: the element @@ -2380,7 +2476,7 @@ Available options: was saved with a more recent version of QElectroTech. - + Réinitialiser Reset @@ -2480,27 +2576,27 @@ Available options: Trait : - Line : + Line: Couleur : - Color : + Color: Style : - Style : + Style: Épaisseur : - Weight : + Weight: Remplissage : - Filling : + Filling: @@ -2528,22 +2624,22 @@ Available options: Position : - Position : + Position: x : - x : + x: y : - y : + y: Orientation : - Orientation : + Orientation: @@ -2566,27 +2662,27 @@ Available options: Position : - Position : + Position: x : - x : + x: y : - y : + y: Taille : - Size : + Size: Texte : - Text : + Text: @@ -2621,27 +2717,27 @@ Available options: Position : - Position : + Position: x : - x : + x: y : - y : + y: Taille : - Size : + Size: Texte par défaut : - Default text : + Default text: diff --git a/misc/qelectrotech.conf b/misc/qelectrotech.conf new file mode 100644 index 000000000..840ed35df --- /dev/null +++ b/misc/qelectrotech.conf @@ -0,0 +1,16 @@ +[diagrameditor] +defaultauthor= +defaultcols=15 +defaultcolsize=50.0 +defaultconductorhasGround=true +defaultconductorhasNeutral=true +defaultconductorphases=1 +defaultconductortext=_ +defaultconductortype=multi +defaultdate=null +defaultfilename= +defaultfolio= +defaultheight=500.0 +defaulttitle= + +[elementeditor] diff --git a/qelectrotech.pro b/qelectrotech.pro index 21eaa3434..a72863a38 100644 --- a/qelectrotech.pro +++ b/qelectrotech.pro @@ -40,6 +40,8 @@ HEADERS += aboutqet.h \ conductorprofile.h \ conductorsegment.h \ conductorsegmentprofile.h \ + configdialog.h \ + configpages.h \ customelement.h \ diagram.h \ diagramview.h \ @@ -102,6 +104,8 @@ SOURCES += aboutqet.cpp \ conductorprofile.cpp \ conductorsegment.cpp \ customelement.cpp \ + configdialog.cpp \ + configpages.cpp \ diagram.cpp \ diagramview.cpp \ element.cpp \ diff --git a/qelectrotech.qrc b/qelectrotech.qrc index 0aff83a90..df6fb9881 100644 --- a/qelectrotech.qrc +++ b/qelectrotech.qrc @@ -17,6 +17,7 @@ ico/conductor.png ico/conductor2.png ico/conductor3.png + ico/conf_new_diagram.png ico/configure.png ico/copy.png ico/cut.png diff --git a/qetapp.cpp b/qetapp.cpp index 72778ec3e..eef845dc8 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -556,6 +556,9 @@ bool QETApp::event(QEvent *e) { } } +/** + Affiche l'aide et l'usage sur la sortie standard +*/ void QETApp::printHelp() { QString help( tr("Usage : ") + QFileInfo(applicationFilePath()).fileName() + tr(" [options] [fichier]...\n\n") + @@ -566,15 +569,24 @@ void QETApp::printHelp() { " --license Afficher la licence\n") #ifdef QET_ALLOW_OVERRIDE_CED_OPTION + tr(" --common-elements-dir=DIR Definir le dossier de la collection d'elements\n") +#endif +#ifdef QET_ALLOW_OVERRIDE_CD_OPTION + + tr(" --config-dir=DIR Definir le dossier de configuration\n") #endif ); std::cout << qPrintable(help) << std::endl; } +/** + Affiche la version sur la sortie standard +*/ void QETApp::printVersion() { std::cout << qPrintable(QET::version) << std::endl; } +/** + Affiche la licence sur la sortie standard +*/ void QETApp::printLicense() { std::cout << qPrintable(QET::license()) << std::endl; } diff --git a/qetdiagrameditor.cpp b/qetdiagrameditor.cpp index 5290f4247..cc12efc7f 100644 --- a/qetdiagrameditor.cpp +++ b/qetdiagrameditor.cpp @@ -5,6 +5,7 @@ #include "elementspanelwidget.h" #include "aboutqet.h" #include "conductorpropertieswidget.h" +#include "configdialog.h" /** constructeur @@ -315,6 +316,7 @@ void QETDiagramEditor::actions() { connect(rotate_selection, SIGNAL(triggered()), this, SLOT(slot_rotate()) ); connect(fullscreen_on, SIGNAL(triggered()), this, SLOT(toggleFullScreen()) ); connect(fullscreen_off, SIGNAL(triggered()), this, SLOT(toggleFullScreen()) ); + connect(configure, SIGNAL(triggered()), this, SLOT(configureQET()) ); connect(mode_selection, SIGNAL(triggered()), this, SLOT(slot_setSelectionMode()) ); connect(mode_visualise, SIGNAL(triggered()), this, SLOT(slot_setVisualisationMode())); connect(about_qet, SIGNAL(triggered()), this, SLOT(aboutQET()) ); @@ -432,7 +434,7 @@ void QETDiagramEditor::menus() { // menu Configuration menu_config -> addMenu(display_toolbars); menu_config -> addAction(fullscreen_on); - //menu_config -> addAction(configure); + menu_config -> addAction(configure); // menu Fenetres slot_updateWindowsMenu(); @@ -964,3 +966,8 @@ void QETDiagramEditor::writeSettings() { settings.setValue("diagrameditor/geometry", saveGeometry()); settings.setValue("diagrameditor/state", saveState()); } + +void QETDiagramEditor::configureQET() { + ConfigDialog cd; + cd.exec(); +} diff --git a/qetdiagrameditor.h b/qetdiagrameditor.h index 929207932..499d1c701 100644 --- a/qetdiagrameditor.h +++ b/qetdiagrameditor.h @@ -36,6 +36,7 @@ class QETDiagramEditor : public QMainWindow { public slots: void toggleFullScreen(); + void configureQET(); void aboutQET(); void printDialog(); void exportDialog();