mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Search and replace : Diagram properties can be changed (and mass changed) through the search and replace widget.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5564 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
140
sources/SearchAndReplace/searchandreplaceworker.cpp
Normal file
140
sources/SearchAndReplace/searchandreplaceworker.cpp
Normal file
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 "searchandreplaceworker.h"
|
||||
#include "diagram.h"
|
||||
#include "changetitleblockcommand.h"
|
||||
|
||||
SearchAndReplaceWorker::SearchAndReplaceWorker()
|
||||
{}
|
||||
|
||||
/**
|
||||
* @brief SearchAndReplaceWorker::clear
|
||||
* All registred properties
|
||||
*/
|
||||
void SearchAndReplaceWorker::clear()
|
||||
{
|
||||
m_titleblock_properties = TitleBlockProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchAndReplaceWorker::replaceDiagram
|
||||
* Replace all properties of each diagram in @diagram_list,
|
||||
* by the current titleblock propertie of this worker
|
||||
* @param diagram_list, list of diagram to be changed, all diagrams must belong to the same project;
|
||||
*/
|
||||
void SearchAndReplaceWorker::replaceDiagram(QList<Diagram *> diagram_list)
|
||||
{
|
||||
if (diagram_list.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
QETProject *project = diagram_list.first()->project();
|
||||
for (Diagram *d : diagram_list) {
|
||||
if (d->project() != project) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QUndoStack *us = project->undoStack();
|
||||
us->beginMacro(QObject::tr("Chercher remplacer les propriétés de folio"));
|
||||
for (Diagram *d : diagram_list)
|
||||
{
|
||||
TitleBlockProperties old_propertie = d->border_and_titleblock.exportTitleBlock();
|
||||
TitleBlockProperties new_properties = old_propertie;
|
||||
|
||||
if (!m_titleblock_properties.title.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.title == eraseText()) {
|
||||
new_properties.title.clear();
|
||||
} else {
|
||||
new_properties.title = m_titleblock_properties.title;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.author.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.author == eraseText()) {
|
||||
new_properties.author.clear();
|
||||
} else {
|
||||
new_properties.author = m_titleblock_properties.author;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.filename.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.filename == eraseText()) {
|
||||
new_properties.filename.clear();
|
||||
} else {
|
||||
new_properties.filename = m_titleblock_properties.filename;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.machine.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.machine == eraseText()) {
|
||||
new_properties.machine.clear();
|
||||
} else {
|
||||
new_properties.machine = m_titleblock_properties.machine;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.locmach.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.locmach == eraseText()) {
|
||||
new_properties.locmach.clear();
|
||||
} else {
|
||||
new_properties.locmach = m_titleblock_properties.locmach;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.indexrev.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.indexrev == eraseText()) {
|
||||
new_properties.indexrev.clear();
|
||||
} else {
|
||||
new_properties.indexrev = m_titleblock_properties.indexrev;
|
||||
}
|
||||
}
|
||||
if (!m_titleblock_properties.folio.isEmpty())
|
||||
{
|
||||
if (m_titleblock_properties.folio == eraseText()) {
|
||||
new_properties.folio.clear();
|
||||
} else {
|
||||
new_properties.folio = m_titleblock_properties.folio;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_titleblock_properties.date.isValid())
|
||||
{
|
||||
if (m_titleblock_properties.date == eraseDate()) {
|
||||
new_properties.date = QDate();
|
||||
} else {
|
||||
new_properties.date = m_titleblock_properties.date;
|
||||
}
|
||||
}
|
||||
|
||||
new_properties.context.add(m_titleblock_properties.context);
|
||||
|
||||
if (old_propertie != new_properties) {
|
||||
project->undoStack()->push(new ChangeTitleBlockCommand(d, old_propertie, new_properties));
|
||||
}
|
||||
}
|
||||
us->endMacro();
|
||||
}
|
||||
|
||||
void SearchAndReplaceWorker::replaceDiagram(Diagram *diagram)
|
||||
{
|
||||
QList<Diagram *> list;
|
||||
list.append(diagram);
|
||||
replaceDiagram(list);
|
||||
}
|
||||
49
sources/SearchAndReplace/searchandreplaceworker.h
Normal file
49
sources/SearchAndReplace/searchandreplaceworker.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 SEARCHANDREPLACEWORKER_H
|
||||
#define SEARCHANDREPLACEWORKER_H
|
||||
|
||||
#include <QDate>
|
||||
|
||||
#include "titleblockproperties.h"
|
||||
|
||||
class Diagram;
|
||||
|
||||
/**
|
||||
* @brief The SearchAndReplaceWorker class
|
||||
* This class is the worker use to change properties when use the search and replace function of QET
|
||||
*/
|
||||
class SearchAndReplaceWorker
|
||||
{
|
||||
public:
|
||||
SearchAndReplaceWorker();
|
||||
|
||||
void clear();
|
||||
void replaceDiagram(QList <Diagram *> diagram_list);
|
||||
void replaceDiagram(Diagram *diagram);
|
||||
|
||||
static QString eraseText() {return QString("XXXXXXXXXXXXXXXXXXX");}
|
||||
static QDate eraseDate() {return QDate(1900, 1, 1);}
|
||||
|
||||
private:
|
||||
TitleBlockProperties m_titleblock_properties;
|
||||
|
||||
friend class SearchAndReplaceWidget;
|
||||
};
|
||||
|
||||
#endif // SEARCHANDREPLACEWORKER_H
|
||||
178
sources/SearchAndReplace/ui/replacefoliowidget.cpp
Normal file
178
sources/SearchAndReplace/ui/replacefoliowidget.cpp
Normal file
@@ -0,0 +1,178 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 "replacefoliowidget.h"
|
||||
#include "ui_replacefoliowidget.h"
|
||||
#include "diagramcontextwidget.h"
|
||||
#include "searchandreplaceworker.h"
|
||||
|
||||
#include <QDialogButtonBox>
|
||||
|
||||
ReplaceFolioWidget::ReplaceFolioWidget(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::ReplaceFolioWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_diagram_context_widget = new DiagramContextWidget(this);
|
||||
ui->m_tab2_vlayout->addWidget(m_diagram_context_widget);
|
||||
}
|
||||
|
||||
ReplaceFolioWidget::~ReplaceFolioWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ReplaceFolioWidget::titleBlockProperties
|
||||
* @return the title block properties edited by this widget
|
||||
*/
|
||||
TitleBlockProperties ReplaceFolioWidget::titleBlockProperties() const
|
||||
{
|
||||
TitleBlockProperties prop;
|
||||
prop.title = ui->m_title_le ->text();
|
||||
prop.author = ui->m_author_le->text();
|
||||
prop.filename = ui->m_file_le ->text();
|
||||
prop.machine = ui->m_mach ->text();
|
||||
prop.locmach = ui->m_loc ->text();
|
||||
prop.indexrev = ui->m_indice ->text();
|
||||
prop.folio = ui->m_folio_le ->text();
|
||||
|
||||
if (ui->m_unchanged_date->isChecked()) {
|
||||
prop.date = QDate();
|
||||
prop.useDate = TitleBlockProperties::UseDateValue;
|
||||
}
|
||||
if (ui->m_no_date_rb->isChecked()) {
|
||||
prop.date = SearchAndReplaceWorker::eraseDate();
|
||||
prop.useDate = TitleBlockProperties::UseDateValue;
|
||||
}
|
||||
else if (ui->m_fixed_date_rb->isChecked()) {
|
||||
prop.date = ui->m_date_edit->date();
|
||||
prop.useDate = TitleBlockProperties::UseDateValue;
|
||||
}
|
||||
|
||||
prop.context = m_diagram_context_widget->context();
|
||||
return prop;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ReplaceFolioWidget::setTitleBlockProperties
|
||||
* Set the title block properties edited by this widget
|
||||
* @param properties
|
||||
*/
|
||||
void ReplaceFolioWidget::setTitleBlockProperties(const TitleBlockProperties &properties)
|
||||
{
|
||||
ui->m_title_le ->setText (properties.title);
|
||||
ui->m_author_le->setText (properties.author);
|
||||
ui->m_file_le ->setText (properties.filename);
|
||||
ui->m_mach ->setText (properties.machine);
|
||||
ui->m_loc ->setText (properties.locmach);
|
||||
ui->m_indice ->setText (properties.indexrev);
|
||||
ui->m_folio_le ->setText (properties.folio);
|
||||
|
||||
//About date
|
||||
ui->m_date_now_pb->setDisabled(true);
|
||||
ui->m_date_edit ->setDisabled(true);
|
||||
ui->m_date_edit ->setDate(QDate::currentDate());
|
||||
|
||||
|
||||
if (properties.useDate == TitleBlockProperties::CurrentDate) {
|
||||
ui -> m_fixed_date_rb ->setChecked(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (properties.date.isNull()) {
|
||||
ui->m_unchanged_date->setChecked(true);
|
||||
}
|
||||
else if (properties.date == SearchAndReplaceWorker::eraseDate()) {
|
||||
ui->m_no_date_rb->setChecked(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->m_fixed_date_rb->setChecked(true);
|
||||
ui->m_date_edit->setDate(properties.date);
|
||||
}
|
||||
}
|
||||
//About date
|
||||
|
||||
m_diagram_context_widget->setContext(properties.context);
|
||||
}
|
||||
|
||||
ReplaceFolioDialog::ReplaceFolioDialog(QWidget *parent) :
|
||||
QDialog(parent)
|
||||
{
|
||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||
layout->addWidget(m_widget = new ReplaceFolioWidget(this));
|
||||
layout->addWidget(m_button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Reset, this));
|
||||
|
||||
connect(m_button_box, &QDialogButtonBox::clicked, [this](QAbstractButton *button_)
|
||||
{
|
||||
this->done(m_button_box->buttonRole(button_));
|
||||
});
|
||||
}
|
||||
|
||||
ReplaceFolioDialog::~ReplaceFolioDialog()
|
||||
{}
|
||||
|
||||
/**
|
||||
* @brief ReplaceFolioDialog::titleBlockProperties
|
||||
* @return The title block properties edited by this dialog
|
||||
*/
|
||||
TitleBlockProperties ReplaceFolioDialog::titleBlockProperties() const {
|
||||
return m_widget->titleBlockProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ReplaceFolioDialog::setTitleBlockProperties
|
||||
* @param properties : set the title block properties edited by this dialog
|
||||
*/
|
||||
void ReplaceFolioDialog::setTitleBlockProperties(const TitleBlockProperties &properties) {
|
||||
m_widget->setTitleBlockProperties(properties);
|
||||
}
|
||||
void ReplaceFolioWidget::on_m_title_cb_clicked() {
|
||||
ui->m_title_le->setText(ui->m_title_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_title_le->setDisabled(ui->m_title_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_author_cb_clicked() {
|
||||
ui->m_author_le->setText(ui->m_author_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_author_le->setDisabled(ui->m_author_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_file_cb_clicked() {
|
||||
ui->m_file_le->setText(ui->m_file_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_file_le->setDisabled(ui->m_file_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_folio_cb_clicked() {
|
||||
ui->m_folio_le->setText(ui->m_folio_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_folio_le->setDisabled(ui->m_folio_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_mach_cb_clicked() {
|
||||
ui->m_mach->setText(ui->m_mach_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_mach->setDisabled(ui->m_mach_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_loc_cb_clicked() {
|
||||
ui->m_loc->setText(ui->m_loc_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_loc->setDisabled(ui->m_loc_cb->isChecked());
|
||||
}
|
||||
|
||||
void ReplaceFolioWidget::on_m_indice_cb_clicked() {
|
||||
ui->m_indice->setText(ui->m_indice_cb->isChecked() ? SearchAndReplaceWorker::eraseText() : QString());
|
||||
ui->m_indice->setDisabled(ui->m_indice_cb->isChecked());
|
||||
}
|
||||
76
sources/SearchAndReplace/ui/replacefoliowidget.h
Normal file
76
sources/SearchAndReplace/ui/replacefoliowidget.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 REPLACEFOLIOWIDGET_H
|
||||
#define REPLACEFOLIOWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QDialog>
|
||||
|
||||
#include "diagramcontext.h"
|
||||
#include "titleblockproperties.h"
|
||||
|
||||
class DiagramContextWidget;
|
||||
class QDialogButtonBox;
|
||||
|
||||
namespace Ui {
|
||||
class ReplaceFolioWidget;
|
||||
}
|
||||
|
||||
class ReplaceFolioWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ReplaceFolioWidget(QWidget *parent = nullptr);
|
||||
~ReplaceFolioWidget();
|
||||
|
||||
TitleBlockProperties titleBlockProperties() const;
|
||||
void setTitleBlockProperties (const TitleBlockProperties &properties);
|
||||
|
||||
private slots:
|
||||
void on_m_title_cb_clicked();
|
||||
void on_m_author_cb_clicked();
|
||||
void on_m_file_cb_clicked();
|
||||
void on_m_folio_cb_clicked();
|
||||
void on_m_mach_cb_clicked();
|
||||
void on_m_loc_cb_clicked();
|
||||
void on_m_indice_cb_clicked();
|
||||
|
||||
private:
|
||||
Ui::ReplaceFolioWidget *ui;
|
||||
DiagramContextWidget *m_diagram_context_widget = nullptr;
|
||||
|
||||
};
|
||||
|
||||
class ReplaceFolioDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ReplaceFolioDialog(QWidget *parent = nullptr);
|
||||
~ReplaceFolioDialog();
|
||||
|
||||
TitleBlockProperties titleBlockProperties() const;
|
||||
void setTitleBlockProperties (const TitleBlockProperties &properties);
|
||||
|
||||
private:
|
||||
ReplaceFolioWidget *m_widget = nullptr;
|
||||
QDialogButtonBox *m_button_box = nullptr;
|
||||
};
|
||||
|
||||
#endif // REPLACEFOLIOWIDGET_H
|
||||
388
sources/SearchAndReplace/ui/replacefoliowidget.ui
Normal file
388
sources/SearchAndReplace/ui/replacefoliowidget.ui
Normal file
@@ -0,0 +1,388 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ReplaceFolioWidget</class>
|
||||
<widget class="QWidget" name="ReplaceFolioWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>449</width>
|
||||
<height>389</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="tabPosition">
|
||||
<enum>QTabWidget::South</enum>
|
||||
</property>
|
||||
<property name="tabShape">
|
||||
<enum>QTabWidget::Rounded</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="elideMode">
|
||||
<enum>Qt::ElideNone</enum>
|
||||
</property>
|
||||
<property name="usesScrollButtons">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="tabsClosable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Principales</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="9" column="1">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Indice Rev</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Localisation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Fichier :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="m_title_le">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %title pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QLineEdit" name="m_author_le">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %author pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Auteur :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Date :</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Installation :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="3">
|
||||
<widget class="QLineEdit" name="m_indice">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %indexrev pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QLineEdit" name="m_file_le">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %filename pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="3">
|
||||
<layout class="QGridLayout" name="gridLayout"/>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Folio :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="m_no_date_rb">
|
||||
<property name="text">
|
||||
<string>Pas de date</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDateEdit" name="m_date_edit">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %date pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="frame">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="calendarPopup">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QRadioButton" name="m_fixed_date_rb">
|
||||
<property name="text">
|
||||
<string>Date fixe :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="m_date_now_pb">
|
||||
<property name="toolTip">
|
||||
<string>Appliquer la date actuelle</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../qelectrotech.qrc">
|
||||
<normaloff>:/ico/22x22/start.png</normaloff>:/ico/22x22/start.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="m_unchanged_date">
|
||||
<property name="text">
|
||||
<string>Non &modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="5" column="3">
|
||||
<widget class="QLineEdit" name="m_folio_le">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %folio pour les modèles de cartouches
|
||||
Les variables suivantes sont utilisables :
|
||||
- %id : numéro du folio courant dans le projet
|
||||
- %total : nombre total de folios dans le projet
|
||||
- %autonum : Folio Auto Numeration</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="3">
|
||||
<widget class="QLineEdit" name="m_loc">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %locmach pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="3">
|
||||
<widget class="QLineEdit" name="m_mach">
|
||||
<property name="toolTip">
|
||||
<string>Disponible en tant que %machine pour les modèles de cartouches</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Non modifier</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Titre :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QCheckBox" name="m_title_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<widget class="QCheckBox" name="m_author_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<widget class="QCheckBox" name="m_file_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4">
|
||||
<widget class="QCheckBox" name="m_folio_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="4">
|
||||
<widget class="QCheckBox" name="m_mach_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="4">
|
||||
<widget class="QCheckBox" name="m_loc_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="4">
|
||||
<widget class="QCheckBox" name="m_indice_cb">
|
||||
<property name="toolTip">
|
||||
<string>Supprimer ce texte</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>Personnalisées</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="m_tab2_vlayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
|
||||
associer le nom "volta" et la valeur "1745" remplacera %{volta} par 1745 dans le cartouche.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../../../qelectrotech.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>m_fixed_date_rb</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>m_date_edit</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>144</x>
|
||||
<y>145</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>250</x>
|
||||
<y>145</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>m_fixed_date_rb</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>m_date_now_pb</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>144</x>
|
||||
<y>145</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>356</x>
|
||||
<y>145</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "element.h"
|
||||
#include "independenttextitem.h"
|
||||
#include "conductor.h"
|
||||
#include "replacefoliowidget.h"
|
||||
|
||||
#include <QSettings>
|
||||
|
||||
@@ -202,8 +203,9 @@ void SearchAndReplaceWidget::setHideAdvanced(bool hide) const
|
||||
ui->m_advanced_pb ->setChecked(!hide);
|
||||
ui->m_replace ->setHidden(hide);
|
||||
ui->m_replace_le ->setHidden(hide);
|
||||
ui->m_mode ->setHidden(hide);
|
||||
ui->m_mode_cb ->setHidden(hide);
|
||||
ui->m_folio_pb ->setHidden(hide);
|
||||
ui->m_element_pb ->setHidden(hide);
|
||||
ui->m_conductor_pb ->setHidden(hide);
|
||||
ui->m_tree_widget ->setHidden(hide);
|
||||
ui->m_replace_pb ->setHidden(hide);
|
||||
ui->m_replace_all_pb->setHidden(hide);
|
||||
@@ -574,6 +576,22 @@ void SearchAndReplaceWidget::updateParentCheckState(QTreeWidgetItem *item, bool
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchAndReplaceWidget::activateNextChecked
|
||||
* Activate the next checked (and visible) item
|
||||
*/
|
||||
void SearchAndReplaceWidget::activateNextChecked()
|
||||
{
|
||||
//Next button is disabled, so there is not a next item.
|
||||
if (!ui->m_next_pb->isEnabled())
|
||||
return;
|
||||
|
||||
do {
|
||||
on_m_next_pb_clicked();
|
||||
} while ((ui->m_tree_widget->currentItem()->checkState(0) != Qt::Checked) &&
|
||||
ui->m_next_pb->isEnabled());
|
||||
}
|
||||
|
||||
void SearchAndReplaceWidget::on_m_quit_button_clicked() {
|
||||
this->setHidden(true);
|
||||
}
|
||||
@@ -675,6 +693,11 @@ void SearchAndReplaceWidget::on_m_tree_widget_currentItemChanged(QTreeWidgetItem
|
||||
}
|
||||
|
||||
updateNextPreviousButtons();
|
||||
if (current->checkState(0) == Qt::Checked && !m_category_qtwi.contains(current)) {
|
||||
ui->m_replace_pb->setEnabled(true);
|
||||
} else {
|
||||
ui->m_replace_pb->setDisabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
void SearchAndReplaceWidget::on_m_next_pb_clicked()
|
||||
@@ -720,3 +743,69 @@ void SearchAndReplaceWidget::on_m_previous_pb_clicked()
|
||||
ui->m_tree_widget->scrollToItem(item);
|
||||
on_m_tree_widget_itemDoubleClicked(item, 0);
|
||||
}
|
||||
|
||||
void SearchAndReplaceWidget::on_m_folio_pb_clicked()
|
||||
{
|
||||
ReplaceFolioDialog *dialog = new ReplaceFolioDialog(this);
|
||||
dialog->setTitleBlockProperties(m_worker.m_titleblock_properties);
|
||||
|
||||
int result = dialog->exec();
|
||||
if (result == QDialogButtonBox::AcceptRole)
|
||||
{
|
||||
QString text = ui->m_folio_pb->text();
|
||||
if (!text.endsWith(tr(" [Édité]"))) {
|
||||
text.append(tr(" [Édité]"));
|
||||
}
|
||||
ui->m_folio_pb->setText(text);
|
||||
m_worker.m_titleblock_properties = dialog->titleBlockProperties();
|
||||
}
|
||||
else if (result == QDialogButtonBox::ResetRole)
|
||||
{
|
||||
QString text = ui->m_folio_pb->text();
|
||||
if (text.endsWith(tr(" [Édité]"))) {
|
||||
text.remove(tr(" [Édité]"));
|
||||
}
|
||||
ui->m_folio_pb->setText(text);
|
||||
m_worker.m_titleblock_properties = TitleBlockProperties();
|
||||
}
|
||||
}
|
||||
|
||||
void SearchAndReplaceWidget::on_m_replace_pb_clicked()
|
||||
{
|
||||
QTreeWidgetItem *qtwi = ui->m_tree_widget->currentItem();
|
||||
if(!qtwi) {
|
||||
return;
|
||||
}
|
||||
if (!m_category_qtwi.contains(qtwi) && qtwi->checkState(0) == Qt::Checked)
|
||||
{
|
||||
if (ui->m_folio_pb->text().endsWith(tr(" [Édité]")) &&
|
||||
m_diagram_hash.keys().contains(qtwi))
|
||||
{
|
||||
QPointer<Diagram> d = m_diagram_hash.value(qtwi);
|
||||
if (d) {
|
||||
m_worker.replaceDiagram(d.data());
|
||||
}
|
||||
}
|
||||
}
|
||||
activateNextChecked();
|
||||
ui->m_replace_pb->setEnabled(ui->m_next_pb->isEnabled());
|
||||
}
|
||||
|
||||
void SearchAndReplaceWidget::on_m_replace_all_pb_clicked()
|
||||
{
|
||||
if (ui->m_folio_pb->text().endsWith(tr(" [Édité]")))
|
||||
{
|
||||
QList <Diagram *> d;
|
||||
for (QTreeWidgetItem *qtwi : m_diagram_hash.keys())
|
||||
{
|
||||
if (!qtwi->isHidden() && qtwi->checkState(0) == Qt::Checked)
|
||||
{
|
||||
QPointer <Diagram> p = m_diagram_hash.value(qtwi);
|
||||
if (p) {
|
||||
d.append(p.data());
|
||||
}
|
||||
}
|
||||
}
|
||||
m_worker.replaceDiagram(d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,10 @@
|
||||
|
||||
#include <QWidget>
|
||||
#include <QTreeWidgetItemIterator>
|
||||
|
||||
#include "element.h"
|
||||
#include "independenttextitem.h"
|
||||
#include "searchandreplaceworker.h"
|
||||
|
||||
class QTreeWidgetItem;
|
||||
|
||||
@@ -57,6 +59,7 @@ class SearchAndReplaceWidget : public QWidget
|
||||
void itemChanged(QTreeWidgetItem *item, int column);
|
||||
void setChildCheckState(QTreeWidgetItem *item, Qt::CheckState check, bool deep = true);
|
||||
void updateParentCheckState(QTreeWidgetItem *item, bool all_parents = true);
|
||||
void activateNextChecked();
|
||||
|
||||
private slots:
|
||||
void on_m_quit_button_clicked();
|
||||
@@ -66,6 +69,9 @@ class SearchAndReplaceWidget : public QWidget
|
||||
void on_m_tree_widget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
void on_m_next_pb_clicked();
|
||||
void on_m_previous_pb_clicked();
|
||||
void on_m_folio_pb_clicked();
|
||||
void on_m_replace_pb_clicked();
|
||||
void on_m_replace_all_pb_clicked();
|
||||
|
||||
private:
|
||||
Ui::SearchAndReplaceWidget *ui;
|
||||
@@ -88,6 +94,7 @@ class SearchAndReplaceWidget : public QWidget
|
||||
QPointer<Element> m_highlighted_element;
|
||||
QPointer<QGraphicsObject> m_last_selected;
|
||||
QHash<QTreeWidgetItem *, QPointer <Diagram>> m_diagram_hash;
|
||||
SearchAndReplaceWorker m_worker;
|
||||
};
|
||||
|
||||
#endif // SEARCHANDREPLACEWIDGET_H
|
||||
|
||||
@@ -26,6 +26,20 @@
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="6">
|
||||
<widget class="QPushButton" name="m_reload_pb">
|
||||
<property name="toolTip">
|
||||
<string>Actualiser</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../qelectrotech.qrc">
|
||||
<normaloff>:/ico/16x16/view-refresh.png</normaloff>:/ico/16x16/view-refresh.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="m_next_pb">
|
||||
<property name="toolTip">
|
||||
@@ -43,6 +57,29 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<widget class="QPushButton" name="m_advanced_pb">
|
||||
<property name="toolTip">
|
||||
<string>Avancé</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../qelectrotech.qrc">
|
||||
<normaloff>:/ico/16x16/configure-toolbars.png</normaloff>:/ico/16x16/configure-toolbars.png</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="8">
|
||||
<widget class="QTreeWidget" name="m_tree_widget">
|
||||
<property name="uniformRowHeights">
|
||||
@@ -81,6 +118,19 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="m_v_spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="m_quit_button">
|
||||
<property name="toolTip">
|
||||
@@ -100,75 +150,24 @@
|
||||
</item>
|
||||
<item row="0" column="3" rowspan="3">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="1" colspan="4">
|
||||
<item row="1" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="m_replace_le">
|
||||
<property name="placeholderText">
|
||||
<string>Champ texte de folio</string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="m_replace">
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="m_folio_pb">
|
||||
<property name="text">
|
||||
<string>Remplacer :</string>
|
||||
<string>Folio</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QPushButton" name="m_replace_pb">
|
||||
<property name="toolTip">
|
||||
<string>Remplacer la correspondance séléctionner</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remplacer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<widget class="QPushButton" name="m_replace_all_pb">
|
||||
<property name="toolTip">
|
||||
<string>Remplacer les correspondances coché</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Tout remplacer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="m_mode">
|
||||
<property name="text">
|
||||
<string>Mode :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="m_mode_cb">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Texte brut</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Mots entiers</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="4">
|
||||
<item row="0" column="1" colspan="5">
|
||||
<widget class="QLineEdit" name="m_search_le">
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
@@ -182,55 +181,68 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<widget class="QPushButton" name="m_advanced_pb">
|
||||
<property name="toolTip">
|
||||
<string>Avancé</string>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="m_element_pb">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../qelectrotech.qrc">
|
||||
<normaloff>:/ico/16x16/configure-toolbars.png</normaloff>:/ico/16x16/configure-toolbars.png</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
<string>Élément</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="m_v_spacer">
|
||||
<item row="1" column="5">
|
||||
<widget class="QPushButton" name="m_conductor_pb">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Conducteur</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="m_replace">
|
||||
<property name="text">
|
||||
<string>Remplacer :</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>0</height>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QPushButton" name="m_reload_pb">
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="4" colspan="2">
|
||||
<widget class="QPushButton" name="m_replace_pb">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Actualiser</string>
|
||||
<string>Remplacer la correspondance séléctionner</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
<string>Remplacer</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../../qelectrotech.qrc">
|
||||
<normaloff>:/ico/16x16/view-refresh.png</normaloff>:/ico/16x16/view-refresh.png</iconset>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="6" colspan="2">
|
||||
<widget class="QPushButton" name="m_replace_all_pb">
|
||||
<property name="toolTip">
|
||||
<string>Remplacer les correspondances coché</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Tout remplacer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2006-2017 The QElectroTech Team
|
||||
Copyright 2006-2018 The QElectroTech Team
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
@@ -528,44 +528,6 @@ void ResetConductorCommand::redo() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param d Schema dont on modifie le cartouche
|
||||
@param old_ip Anciennes proprietes du cartouche
|
||||
@param new_ip Nouvelles proprietes du cartouche
|
||||
@param parent QUndoCommand parent
|
||||
*/
|
||||
ChangeTitleBlockCommand::ChangeTitleBlockCommand(
|
||||
Diagram *d,
|
||||
const TitleBlockProperties &old_ip,
|
||||
const TitleBlockProperties &new_ip,
|
||||
QUndoCommand *parent
|
||||
) :
|
||||
QUndoCommand(QObject::tr("modifier le cartouche", "undo caption"), parent),
|
||||
diagram(d),
|
||||
old_titleblock(old_ip),
|
||||
new_titleblock(new_ip)
|
||||
{
|
||||
}
|
||||
|
||||
/// Destructeur
|
||||
ChangeTitleBlockCommand::~ChangeTitleBlockCommand() {
|
||||
}
|
||||
|
||||
/// Annule la modification de cartouche
|
||||
void ChangeTitleBlockCommand::undo() {
|
||||
diagram -> showMe();
|
||||
diagram -> border_and_titleblock.importTitleBlock(old_titleblock);
|
||||
diagram -> invalidate(diagram -> border_and_titleblock.borderAndTitleBlockRect());
|
||||
}
|
||||
|
||||
/// Refait la modification de cartouche
|
||||
void ChangeTitleBlockCommand::redo() {
|
||||
diagram -> showMe();
|
||||
diagram -> border_and_titleblock.importTitleBlock(new_titleblock);
|
||||
diagram -> invalidate(diagram -> border_and_titleblock.borderAndTitleBlockRect());
|
||||
}
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@param dia Schema modifie
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2006-2017 The QElectroTech Team
|
||||
Copyright 2006-2018 The QElectroTech Team
|
||||
This file is part of QElectroTech.
|
||||
|
||||
QElectroTech is free software: you can redistribute it and/or modify
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "borderproperties.h"
|
||||
#include "qetgraphicsitem/conductor.h"
|
||||
#include "diagramcontent.h"
|
||||
#include "titleblockproperties.h"
|
||||
#include "qet.h"
|
||||
#include "qetgraphicsitem/qetshapeitem.h"
|
||||
#include "conductorprofile.h"
|
||||
@@ -273,31 +272,7 @@ class ResetConductorCommand : public QUndoCommand {
|
||||
Diagram *diagram;
|
||||
};
|
||||
|
||||
/**
|
||||
This command changes the title block properties for a particular diagram.
|
||||
*/
|
||||
class ChangeTitleBlockCommand : public QUndoCommand {
|
||||
// constructors, destructor
|
||||
public:
|
||||
ChangeTitleBlockCommand(Diagram *, const TitleBlockProperties &, const TitleBlockProperties &, QUndoCommand * = nullptr);
|
||||
~ChangeTitleBlockCommand() override;
|
||||
private:
|
||||
ChangeTitleBlockCommand(const ChangeTitleBlockCommand &);
|
||||
|
||||
// methods
|
||||
public:
|
||||
void undo() override;
|
||||
void redo() override;
|
||||
|
||||
// attributes
|
||||
private:
|
||||
/// modified diagram
|
||||
Diagram *diagram;
|
||||
/// properties before the change
|
||||
TitleBlockProperties old_titleblock;
|
||||
/// properties after the change
|
||||
TitleBlockProperties new_titleblock;
|
||||
};
|
||||
|
||||
/**
|
||||
This command changes the border properties of a particular diagram.
|
||||
|
||||
@@ -20,6 +20,21 @@
|
||||
#include "qet.h"
|
||||
#include <algorithm>
|
||||
|
||||
/**
|
||||
* @brief DiagramContext::add
|
||||
* Add all value of @other to this.
|
||||
* If a key already exist, the value is replaced.
|
||||
* If a key doesn't exist, she will be added.
|
||||
* All other keys of this context, which are not present in @other, stay unchanged.
|
||||
* @param other
|
||||
*/
|
||||
void DiagramContext::add(DiagramContext other)
|
||||
{
|
||||
for (QString key : other.keys()) {
|
||||
addValue(key, other.value(key));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@return a list containing all the keys in the context object.
|
||||
*/
|
||||
|
||||
@@ -56,6 +56,7 @@ class DiagramContext
|
||||
DecreasingLength
|
||||
};
|
||||
|
||||
void add(DiagramContext other);
|
||||
QList<QString> keys(KeyOrder = None) const;
|
||||
bool contains(const QString &) const;
|
||||
const QVariant operator[](const QString &) const;
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "undocommand/deleteqgraphicsitemcommand.h"
|
||||
#include "dynamicelementtextitem.h"
|
||||
#include "multipastedialog.h"
|
||||
#include "changetitleblockcommand.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "diagramcommands.h"
|
||||
#include "projectpropertiesdialog.h"
|
||||
#include "diagram.h"
|
||||
#include "changetitleblockcommand.h"
|
||||
|
||||
/**
|
||||
* @brief DiagramPropertiesDialog::DiagramPropertiesDialog
|
||||
|
||||
55
sources/undocommand/changetitleblockcommand.cpp
Normal file
55
sources/undocommand/changetitleblockcommand.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 "changetitleblockcommand.h"
|
||||
#include "diagram.h"
|
||||
|
||||
/**
|
||||
* @brief ChangeTitleBlockCommand::ChangeTitleBlockCommand
|
||||
* @param d
|
||||
* @param old_ip
|
||||
* @param new_ip
|
||||
* @param parent
|
||||
*/
|
||||
ChangeTitleBlockCommand::ChangeTitleBlockCommand(
|
||||
Diagram *d,
|
||||
const TitleBlockProperties &old_ip,
|
||||
const TitleBlockProperties &new_ip,
|
||||
QUndoCommand *parent
|
||||
) :
|
||||
QUndoCommand(QObject::tr("modifier le cartouche", "undo caption"), parent),
|
||||
diagram(d),
|
||||
old_titleblock(old_ip),
|
||||
new_titleblock(new_ip)
|
||||
{}
|
||||
|
||||
ChangeTitleBlockCommand::~ChangeTitleBlockCommand() {}
|
||||
|
||||
void ChangeTitleBlockCommand::undo()
|
||||
{
|
||||
diagram -> showMe();
|
||||
diagram -> border_and_titleblock.importTitleBlock(old_titleblock);
|
||||
diagram -> invalidate(diagram -> border_and_titleblock.borderAndTitleBlockRect());
|
||||
}
|
||||
|
||||
void ChangeTitleBlockCommand::redo()
|
||||
{
|
||||
diagram -> showMe();
|
||||
diagram -> border_and_titleblock.importTitleBlock(new_titleblock);
|
||||
diagram -> invalidate(diagram -> border_and_titleblock.borderAndTitleBlockRect());
|
||||
}
|
||||
48
sources/undocommand/changetitleblockcommand.h
Normal file
48
sources/undocommand/changetitleblockcommand.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
Copyright 2006-2018 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 CHANGETITLEBLOCKCOMMAND_H
|
||||
#define CHANGETITLEBLOCKCOMMAND_H
|
||||
|
||||
#include <QUndoCommand>
|
||||
|
||||
#include "titleblockproperties.h"
|
||||
|
||||
class Diagram;
|
||||
/**
|
||||
* @brief The ChangeTitleBlockCommand class
|
||||
* This command changes the title block properties for a particular diagram.
|
||||
*/
|
||||
class ChangeTitleBlockCommand : public QUndoCommand
|
||||
{
|
||||
public:
|
||||
ChangeTitleBlockCommand(Diagram *, const TitleBlockProperties &, const TitleBlockProperties &, QUndoCommand * = nullptr);
|
||||
~ChangeTitleBlockCommand() override;
|
||||
private:
|
||||
ChangeTitleBlockCommand(const ChangeTitleBlockCommand &);
|
||||
|
||||
public:
|
||||
void undo() override;
|
||||
void redo() override;
|
||||
|
||||
private:
|
||||
Diagram *diagram;
|
||||
TitleBlockProperties old_titleblock;
|
||||
TitleBlockProperties new_titleblock;
|
||||
};
|
||||
|
||||
#endif // CHANGETITLEBLOCKCOMMAND_H
|
||||
Reference in New Issue
Block a user