[qet] [4482] Remove the class IntegrationMoveElementsHandler |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 4482
Author: blacksun
Date: 2016-05-14 16:48:55 +0200 (Sat, 14 May 2016)
Log Message:
-----------
Remove the class IntegrationMoveElementsHandler
Modified Paths:
--------------
trunk/sources/diagramevent/diagrameventaddelement.cpp
trunk/sources/diagramview.cpp
trunk/sources/qetproject.cpp
Removed Paths:
-------------
trunk/sources/integrationmoveelementshandler.cpp
trunk/sources/integrationmoveelementshandler.h
Modified: trunk/sources/diagramevent/diagrameventaddelement.cpp
===================================================================
--- trunk/sources/diagramevent/diagrameventaddelement.cpp 2016-05-13 17:40:36 UTC (rev 4481)
+++ trunk/sources/diagramevent/diagrameventaddelement.cpp 2016-05-14 14:48:55 UTC (rev 4482)
@@ -16,7 +16,6 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "diagrameventaddelement.h"
-#include "integrationmoveelementshandler.h"
#include "elementfactory.h"
#include "diagram.h"
#include "element.h"
Modified: trunk/sources/diagramview.cpp
===================================================================
--- trunk/sources/diagramview.cpp 2016-05-13 17:40:36 UTC (rev 4481)
+++ trunk/sources/diagramview.cpp 2016-05-14 14:48:55 UTC (rev 4482)
@@ -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"
Deleted: trunk/sources/integrationmoveelementshandler.cpp
===================================================================
--- trunk/sources/integrationmoveelementshandler.cpp 2016-05-13 17:40:36 UTC (rev 4481)
+++ trunk/sources/integrationmoveelementshandler.cpp 2016-05-14 14:48:55 UTC (rev 4482)
@@ -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 <http://www.gnu.org/licenses/>.
-*/
-#include "integrationmoveelementshandler.h"
-#include <QtWidgets>
-#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);
-}
Deleted: trunk/sources/integrationmoveelementshandler.h
===================================================================
--- trunk/sources/integrationmoveelementshandler.h 2016-05-13 17:40:36 UTC (rev 4481)
+++ trunk/sources/integrationmoveelementshandler.h 2016-05-14 14:48:55 UTC (rev 4482)
@@ -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 <http://www.gnu.org/licenses/>.
-*/
-#ifndef INTEGRATION_MOVE_ELEMENTS_HANDLER_H
-#define INTEGRATION_MOVE_ELEMENTS_HANDLER_H
-#include "basicmoveelementshandler.h"
-#include <QtWidgets>
-/**
- 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
Modified: trunk/sources/qetproject.cpp
===================================================================
--- trunk/sources/qetproject.cpp 2016-05-13 17:40:36 UTC (rev 4481)
+++ trunk/sources/qetproject.cpp 2016-05-14 14:48:55 UTC (rev 4482)
@@ -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"