[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"


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/