mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 22:00:35 +01:00
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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
70
sources/titleblock/templatedeleter.cpp
Normal file
70
sources/titleblock/templatedeleter.cpp
Normal 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);
|
||||
}
|
||||
43
sources/titleblock/templatedeleter.h
Normal file
43
sources/titleblock/templatedeleter.h
Normal 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
|
||||
Reference in New Issue
Block a user