Elements panel: now require user confirmation before deleting a title block template.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1420 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2011-12-31 02:30:31 +00:00
parent 853d169549
commit 7c2716ae35
3 changed files with 117 additions and 1 deletions

View File

@@ -28,6 +28,7 @@
#include "qetproject.h"
#include "diagram.h"
#include "qeticons.h"
#include "templatedeleter.h"
/*
Lorsque le flag ENABLE_PANEL_WIDGET_DND_CHECKS est defini, le panel
@@ -294,7 +295,9 @@ void ElementsPanelWidget::removeTitleBlockTemplate() {
if (current_item && elements_panel -> itemIsATitleBlockTemplate(current_item)) {
QETProject *parent_project = elements_panel -> projectForTitleBlockTemplate(current_item);
QString template_name = elements_panel -> nameOfTitleBlockTemplate(current_item);
parent_project -> removeTemplateByName(template_name);
TitleBlockTemplateLocation template_location(parent_project, template_name);
TitleBlockTemplateDeleter template_deleter(template_location, this);
template_deleter.exec();
}
}

View File

@@ -0,0 +1,70 @@
/*
Copyright 2006-2011 Xavier Guerrin
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 "templatedeleter.h"
#include "qetmessagebox.h"
#include "qetproject.h"
/**
Constructor
@param tbt_location Location of the title block template to be deleted
@param parent Parent QWidget
*/
TitleBlockTemplateDeleter::TitleBlockTemplateDeleter(const TitleBlockTemplateLocation &tbt_location, QWidget *parent) :
QWidget(parent),
template_location_(tbt_location)
{
}
/**
Destructor
*/
TitleBlockTemplateDeleter::~TitleBlockTemplateDeleter() {
}
/**
Delete the title block template: check the provided location matches an
existing template, interactively require confirmationfrom the user before
actually proceeding to the deletion.
@return true if the deletion succeeded, false otherwise.
*/
bool TitleBlockTemplateDeleter::exec() {
if (!template_location_.isValid()) return(false);
QETProject *project = template_location_.project();
QString name = template_location_.name();
if (!project -> embeddedTitleBlockTemplates().contains(name)) {
return(false);
}
// require confirmation from the user
QMessageBox::StandardButton answer = QET::MessageBox::question(
this,
tr("Supprimer le mod\350le de cartouche ?", "message box title"),
QString(
tr(
"\312tes-vous s\373r de vouloir supprimer ce mod\350le de cartouche (%1) ?\n",
"message box content"
)
).arg(name),
QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel
);
if (answer != QMessageBox::Yes) return(false);
// delete the title block template
project -> removeTemplateByName(name);
return(true);
}

View File

@@ -0,0 +1,43 @@
/*
Copyright 2006-2011 Xavier Guerrin
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 TITLEBLOCK_SLASH_TEMPLATE_DELETER_H
#define TITLEBLOCK_SLASH_TEMPLATE_DELETER_H
#include "templatelocation.h"
#include <QtGui>
/**
This class is an abstraction layer to delete an existing title block
template.
*/
class TitleBlockTemplateDeleter : public QWidget {
Q_OBJECT
// Constructors, destructor
public:
TitleBlockTemplateDeleter(const TitleBlockTemplateLocation &, QWidget * = 0);
virtual ~TitleBlockTemplateDeleter();
private:
TitleBlockTemplateDeleter(const TitleBlockTemplateDeleter &);
// methods
public slots:
bool exec();
// attributes
private:
TitleBlockTemplateLocation template_location_;
};
#endif