mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 06:20:53 +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 "qetproject.h"
|
||||||
#include "diagram.h"
|
#include "diagram.h"
|
||||||
#include "qeticons.h"
|
#include "qeticons.h"
|
||||||
|
#include "templatedeleter.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Lorsque le flag ENABLE_PANEL_WIDGET_DND_CHECKS est defini, le panel
|
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)) {
|
if (current_item && elements_panel -> itemIsATitleBlockTemplate(current_item)) {
|
||||||
QETProject *parent_project = elements_panel -> projectForTitleBlockTemplate(current_item);
|
QETProject *parent_project = elements_panel -> projectForTitleBlockTemplate(current_item);
|
||||||
QString template_name = elements_panel -> nameOfTitleBlockTemplate(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