diff --git a/sources/diagramevent/diagrameventaddelement.cpp b/sources/diagramevent/diagrameventaddelement.cpp index 03466341d..bf7936ea8 100644 --- a/sources/diagramevent/diagrameventaddelement.cpp +++ b/sources/diagramevent/diagrameventaddelement.cpp @@ -16,7 +16,6 @@ along with QElectroTech. If not, see . */ #include "diagrameventaddelement.h" -#include "integrationmoveelementshandler.h" #include "elementfactory.h" #include "diagram.h" #include "element.h" diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 8c143de48..77e8b8c18 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -31,7 +31,6 @@ #include "qetapp.h" #include "qetproject.h" #include "projectview.h" -#include "integrationmoveelementshandler.h" #include "integrationmovetemplateshandler.h" #include "qetdiagrameditor.h" #include "qeticons.h" diff --git a/sources/integrationmoveelementshandler.cpp b/sources/integrationmoveelementshandler.cpp deleted file mode 100644 index c40d800a3..000000000 --- a/sources/integrationmoveelementshandler.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/* - Copyright 2006-2016 The QElectroTech Team - This file is part of QElectroTech. - - QElectroTech is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - QElectroTech is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with QElectroTech. If not, see . -*/ -#include "integrationmoveelementshandler.h" -#include -#include "elementscategory.h" -#include "elementdefinition.h" -#include "qfilenameedit.h" - -/** - Constructeur - @param parent QWidget parent a utiliser pour l'affichage des dialogues lors - des interactions avec l'utilisateur -*/ -IntegrationMoveElementsHandler::IntegrationMoveElementsHandler(QWidget *parent) : - BasicMoveElementsHandler(parent), - parent_widget_(parent), - integ_dialog_(0) -{ - // actions par defaut : abort - setActionIfItemAlreadyExists(QET::Abort); - setActionIfItemIsNotReadable(QET::Abort); - setActionIfItemIsNotWritable(QET::Abort); - setActionIfItemTriggersAnError(QET::Abort); -} - -/** - Destructeur -*/ -IntegrationMoveElementsHandler::~IntegrationMoveElementsHandler() { -} - -/** - @param src Element source - @param dst Element cible / destination - @return l'action a effectuer si l'element cible existe deja -*/ -QET::Action IntegrationMoveElementsHandler::elementAlreadyExists(ElementDefinition *src, ElementDefinition *dst) { - // premiere etape : on verifie si src et dst ne sont pas identiques - if (src -> equals(*dst)) { - // les deux elements sont identiques - il est inutile d'ecraser l'ancien - return(QET::Ignore); - } - - // les deux elements sont differents - on demande a l'utilisateur ce qu'il - // prefere : ecrasement ou cohabitation - return(askUser(src, dst)); -} - -/** - @return le nom a utiliser pour le renommage si une methode de cet objet - a precedemment renvoye QET::Rename. -*/ -QString IntegrationMoveElementsHandler::nameForRenamingOperation() { - return(rename_); -} - -/** - @return la date courante au format yyyyMMddhhmmss -*/ -QString IntegrationMoveElementsHandler::dateString() const { - return(QDateTime::currentDateTime().toString("yyyyMMddhhmmss")); -} - -/** - @param element Une definition d'element - @return un nom pour dupliquer l'element passe en parametre. Ce nom est base - sur la date courante. -*/ -QString IntegrationMoveElementsHandler::newNameForElement(const ElementDefinition *element) { - QString orig_name = element -> pathName(); - if (orig_name.endsWith(".elmt")) orig_name.chop(5); - return(orig_name + "-" + dateString() + ".elmt"); -} - -/** - Demande a l'utilisateur s'il souhaite ecraser l'element deja existant, - renommer le nouveau ou bien annuler - @param src Element source - @param dst Element cible - @return la reponse de l'utilisateur -*/ -QET::Action IntegrationMoveElementsHandler::askUser(ElementDefinition *src, ElementDefinition *dst) { - Q_UNUSED(src); - initDialog(); - int result = integ_dialog_ -> exec(); - if (result == QDialog::Accepted) { - if (use_existing_elmt_ -> isChecked()) { - return(QET::Ignore); - } else if (erase_element_ -> isChecked()) { - return(QET::Erase); - } else { - rename_ = newNameForElement(dst); - return(QET::Rename); - } - } else { - return(QET::Abort); - } -} - -/** - Initialise le dialogue -*/ -void IntegrationMoveElementsHandler::initDialog() { - if (integ_dialog_) return; - integ_dialog_ = new QDialog(parent_widget_); - integ_dialog_ -> setWindowTitle(tr("Intégration d'un élément")); - - dialog_label_ = new QLabel( - QString( - tr( - "L'élément a déjà été " - "intégré dans le projet. Toutefois, la version que vous " - "tentez de poser semble différente. Que souhaitez-vous " - "faire ?", - "dialog content - %1 is an element's path name" - ) - ) - ); - - use_existing_elmt_ = new QRadioButton( - QString( - tr( - "Utiliser l'élément déjà intégré", - "dialog content" - ) - ) - ); - - integrate_new_element_ = new QRadioButton( - QString( - tr( - "Intégrer l'élément déposé", - "dialog content" - ) - ) - ); - radioButtonleftMargin(integrate_new_element_); - - erase_element_ = new QRadioButton( - QString( - tr( - "Écraser l'élément déjà intégré", - "dialog content" - ) - ) - ); - radioButtonleftMargin(erase_element_); - - integrate_both_ = new QRadioButton( - QString( - tr( - "Faire cohabiter les deux éléments", - "dialog content" - ) - ) - ); - - button_group1_ = new QButtonGroup(this); - button_group1_ -> addButton(use_existing_elmt_); - button_group1_ -> addButton(integrate_new_element_); - button_group2_ = new QButtonGroup(this); - button_group2_ -> addButton(erase_element_); - button_group2_ -> addButton(integrate_both_); - - integrate_new_element_ -> setChecked(true); - integrate_both_ -> setChecked(true); - - buttons_ = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - - dialog_glayout = new QGridLayout(); - dialog_glayout -> setColumnMinimumWidth(0, 20); - dialog_glayout -> addWidget(erase_element_, 0, 1); - dialog_glayout -> addWidget(integrate_both_, 1, 1); - - dialog_vlayout_ = new QVBoxLayout(integ_dialog_); - dialog_vlayout_ -> addWidget(dialog_label_); - dialog_vlayout_ -> addWidget(use_existing_elmt_); - dialog_vlayout_ -> addWidget(integrate_new_element_); - dialog_vlayout_ -> addLayout(dialog_glayout); - dialog_vlayout_ -> addWidget(buttons_); - - connect(use_existing_elmt_, SIGNAL(toggled(bool)), this, SLOT(correctRadioButtons())); - connect(integrate_new_element_, SIGNAL(toggled(bool)), this, SLOT(correctRadioButtons())); - connect(buttons_, SIGNAL(accepted()), integ_dialog_, SLOT(accept())); - connect(buttons_, SIGNAL(rejected()), integ_dialog_, SLOT(reject())); -} - -/** - S'asure que le dialogue reste coherent -*/ -void IntegrationMoveElementsHandler::correctRadioButtons() { - erase_element_ -> setEnabled(integrate_new_element_ -> isChecked()); - integrate_both_ -> setEnabled(integrate_new_element_ -> isChecked()); -} - -/** - @param button bouton radio - Augmente la marge gauche d'un bouton radio -*/ -void IntegrationMoveElementsHandler::radioButtonleftMargin(QRadioButton *button) { - int a, b, c, d; - button -> getContentsMargins(&a, &b, &c, &d); - button -> setContentsMargins(a + 15, b, c, d); -} diff --git a/sources/integrationmoveelementshandler.h b/sources/integrationmoveelementshandler.h deleted file mode 100644 index 14a651e8a..000000000 --- a/sources/integrationmoveelementshandler.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2006-2016 The QElectroTech Team - This file is part of QElectroTech. - - QElectroTech is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - QElectroTech is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with QElectroTech. If not, see . -*/ -#ifndef INTEGRATION_MOVE_ELEMENTS_HANDLER_H -#define INTEGRATION_MOVE_ELEMENTS_HANDLER_H -#include "basicmoveelementshandler.h" -#include -/** - This class implements the MoveElementsHandler Strategy class. - It acts like a BasiMoveElementsHandler configured to answer QET::Abort to any question. - Please note this class was designed with the context of integrating an element definition into a project in mind. - For this purpose, the elementAlreadyExists method was redefined to ask users whether they wish to: - * erase a different, already-existing element, - * keep the already-existing element by renaming the new one, - * or cancel the integration. -*/ -class IntegrationMoveElementsHandler : public BasicMoveElementsHandler { - Q_OBJECT - - // constructors, destructor - public: - IntegrationMoveElementsHandler(QWidget * = 0); - virtual ~IntegrationMoveElementsHandler(); - private: - IntegrationMoveElementsHandler(const IntegrationMoveElementsHandler &); - - // methods - public: - virtual QET::Action elementAlreadyExists(ElementDefinition *, ElementDefinition *); - virtual QString nameForRenamingOperation(); - - private: - QString dateString() const; - QString newNameForElement(const ElementDefinition *); - QET::Action askUser(ElementDefinition *, ElementDefinition *); - void initDialog(); - void radioButtonleftMargin(QRadioButton *); - - private slots: - void correctRadioButtons(); - - // attributes - private: - QWidget *parent_widget_; ///< Widget to be used as parent when displaying dialogs - QString rename_; ///< Name to be used when renaming the integrated element - QDialog *integ_dialog_; ///< Dialog in case of conflict when integration an element - QLabel *dialog_label_; - QVBoxLayout *dialog_vlayout_; - QGridLayout *dialog_glayout; - QDialogButtonBox *buttons_; - QRadioButton *use_existing_elmt_; - QRadioButton *integrate_new_element_; - QRadioButton *erase_element_; - QRadioButton *integrate_both_; - QButtonGroup *button_group1_; - QButtonGroup *button_group2_; -}; -#endif diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 611732953..2b55a4900 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -23,7 +23,6 @@ #include "elementscategory.h" #include "qetapp.h" #include "qetresult.h" -#include "integrationmoveelementshandler.h" #include "movetemplateshandler.h" #include "basicmoveelementshandler.h" #include "qetmessagebox.h"