mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-09 21:54:13 +02:00
82fc56c5e6
Pressing OK in Projet > Propriétés du projet without changing anything marked the project modified and rewrote its defaults for new folios. Besides the Page Num placeholder (fixed separately), four causes: - Title block custom fields: since #271 the dialog offers the template's variables for filling in; those left empty came back as part of the context. Drop the ones not in the stored context. - DiagramContext::remove() left the key's show flag behind, so a context with a key removed never equalled one without it. - Guides: applyConf() marked the project modified whether or not the guides changed. Compare them like every other setting. - Wire dash size and cross-reference offsets: the spin boxes cannot show the stored default (dash size 1 under a minimum of 2; offset 0 under a minimum of 40 shown as "Default"), so the clamped value came back. Keep the stored value unless the box shows something else, as #1204 did for the wire panel. Checked in the GUI (with the Page Num fix as well) on grafcet, schema_indus and Projet_vierge: OK with no edit then Ctrl+S saves the same file as Ctrl+S alone; master writes dash-size 1 -> 2, a cross-reference offset 0 -> 40, and on Projet_vierge 22 empty custom fields. New test for DiagramContext::remove() fails without the fix. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
113 lines
3.6 KiB
C++
113 lines
3.6 KiB
C++
/*
|
|
Copyright 2006-2026 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 TITLEBLOCKPROPERTIESWIDGET_H
|
|
#define TITLEBLOCKPROPERTIESWIDGET_H
|
|
|
|
#include "../autoNum/numerotationcontext.h"
|
|
#include "../qet.h"
|
|
#include "../qetproject.h"
|
|
#include "../titleblockproperties.h"
|
|
#include "diagramcontextwidget.h"
|
|
|
|
#include <QWidget>
|
|
|
|
class NumerotationContext;
|
|
class QETProject;
|
|
class QMenu;
|
|
class TitleBlockTemplatesCollection;
|
|
class TitleBlockTemplate;
|
|
|
|
namespace Ui {
|
|
class TitleBlockPropertiesWidget;
|
|
}
|
|
|
|
class TitleBlockPropertiesWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit TitleBlockPropertiesWidget(
|
|
const TitleBlockProperties &titleblock = TitleBlockProperties(),
|
|
bool current_date = false,
|
|
QETProject *project = nullptr,
|
|
QWidget *parent = nullptr);
|
|
explicit TitleBlockPropertiesWidget(
|
|
TitleBlockTemplatesCollection *tbt_collection,
|
|
const TitleBlockProperties &titleblock = TitleBlockProperties(),
|
|
bool current_date = false,
|
|
QETProject *project = nullptr,
|
|
QWidget *parent = nullptr);
|
|
explicit TitleBlockPropertiesWidget(
|
|
QList <TitleBlockTemplatesCollection *> tbt_collection,
|
|
const TitleBlockProperties &titleblock = TitleBlockProperties(),
|
|
bool current_date = false,
|
|
QETProject *project = nullptr,
|
|
QWidget *parent = nullptr);
|
|
~TitleBlockPropertiesWidget() override;
|
|
|
|
void setProperties(const TitleBlockProperties &properties);
|
|
TitleBlockProperties properties() const;
|
|
TitleBlockProperties propertiesAutoNum(QString autoNum) const;
|
|
TitleBlockTemplateLocation currentTitleBlockLocation () const;
|
|
void setPropertiesWithAutoNum(
|
|
const TitleBlockProperties &properties,
|
|
QString autoNum);
|
|
|
|
void setTitleBlockTemplatesVisible(const bool &visible);
|
|
void setReadOnly (const bool &ro);
|
|
|
|
static void addTemplateVariables(
|
|
DiagramContext &context,
|
|
const TitleBlockTemplate *tpl);
|
|
|
|
private:
|
|
void addCollection (
|
|
TitleBlockTemplatesCollection *tbt_collection);
|
|
QString currentTitleBlockTemplateName () const;
|
|
void initDialog(const bool ¤t_date, QETProject *project);
|
|
int getIndexFor (const QString &tbt_name,
|
|
const QET::QetCollection collection) const;
|
|
TitleBlockTemplate *templateForIndex (int index) const;
|
|
void addTemplateVariables (DiagramContext &context, int index) const;
|
|
|
|
private slots:
|
|
void editCurrentTitleBlockTemplate();
|
|
void duplicateCurrentTitleBlockTemplate();
|
|
void updateTemplateList();
|
|
void changeCurrentTitleBlockTemplate(int);
|
|
void on_m_date_now_pb_clicked();
|
|
void on_m_edit_autofolionum_pb_clicked();
|
|
|
|
signals:
|
|
void set_auto_page_num() const;
|
|
void openAutoNumFolioEditor (QString);
|
|
|
|
private:
|
|
Ui::TitleBlockPropertiesWidget *ui;
|
|
DiagramContextWidget *m_dcw;
|
|
/// keys of the context given to setProperties()
|
|
QStringList m_context_keys;
|
|
QAction *m_tbt_edit, *m_tbt_duplicate;
|
|
QMenu *m_tbt_menu;
|
|
QList <TitleBlockTemplatesCollection *> m_tbt_collection_list;
|
|
QList <QET::QetCollection> m_map_index_to_collection_type;
|
|
QList <QString> keys_2;
|
|
};
|
|
|
|
#endif // TITLEBLOCKPROPERTIESWIDGET_H
|