diff --git a/sources/ElementsCollection/ui/renamedialog.cpp b/sources/ElementsCollection/ui/renamedialog.cpp index fe8558b14..c7e761b22 100644 --- a/sources/ElementsCollection/ui/renamedialog.cpp +++ b/sources/ElementsCollection/ui/renamedialog.cpp @@ -20,12 +20,14 @@ #include #include "ui_renamedialog.h" +#include "../../qet.h" RenameDialog::RenameDialog(QString path, QWidget *parent) : QDialog(parent), ui(new Ui::RenameDialog), m_path(std::move(path)) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_name = m_path.split("/").last(); if (m_name.endsWith(".elmt")) m_name.remove(".elmt"); ui->m_label->setText(tr("L'élément « %1 » existe déjà. Que souhaitez-vous faire ?").arg(m_path)); diff --git a/sources/NameList/ui/namelistdialog.cpp b/sources/NameList/ui/namelistdialog.cpp index bb942536b..71e606a4b 100644 --- a/sources/NameList/ui/namelistdialog.cpp +++ b/sources/NameList/ui/namelistdialog.cpp @@ -19,6 +19,7 @@ #include "ui_namelistdialog.h" #include "namelistwidget.h" +#include "../../qet.h" #include #include @@ -27,6 +28,7 @@ NameListDialog::NameListDialog(QWidget *parent) : ui(new Ui::NameListDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_namelist_widget = new NameListWidget(this); ui->m_main_layout->insertWidget(1, m_namelist_widget); diff --git a/sources/PropertiesEditor/propertieseditordialog.h b/sources/PropertiesEditor/propertieseditordialog.h index 50cb96aef..b9e3bae86 100644 --- a/sources/PropertiesEditor/propertieseditordialog.h +++ b/sources/PropertiesEditor/propertieseditordialog.h @@ -18,6 +18,8 @@ #ifndef PROPERTIESEDITORDIALOG_H #define PROPERTIESEDITORDIALOG_H +#include "../qet.h" + #include #include #include @@ -74,6 +76,14 @@ class PropertiesEditorDialog : public QDialog this); vlayout->addWidget(button_box); + // Keyed on the wrapped editor's own class, not this + // dialog's -- every instantiation of this constructor + // template is the same PropertiesEditorDialog class, + // so using its class name here would have every kind + // of wrapped editor (conductor properties, element + // properties, ...) fight over one saved size. + QET::trackDialogGeometry(this, editor->metaObject()->className()); + //Setup connection between button box and the editor connect(button_box, &QDialogButtonBox::clicked, diff --git a/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp b/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp index 81f9f9e83..a728ab374 100644 --- a/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp +++ b/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp @@ -21,6 +21,7 @@ #include "../../qetinformation.h" #include "ui_replaceadvanceddialog.h" +#include "../../qet.h" #include /** @@ -33,6 +34,7 @@ replaceAdvancedDialog::replaceAdvancedDialog(advancedReplaceStruct advanced, QWi ui(new Ui::replaceAdvancedDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); connect(ui->m_button_box, &QDialogButtonBox::clicked, [this](QAbstractButton *button_) { this->done(ui->m_button_box->buttonRole(button_)); diff --git a/sources/SearchAndReplace/ui/replaceconductordialog.cpp b/sources/SearchAndReplace/ui/replaceconductordialog.cpp index 112452846..9b8fd7017 100644 --- a/sources/SearchAndReplace/ui/replaceconductordialog.cpp +++ b/sources/SearchAndReplace/ui/replaceconductordialog.cpp @@ -20,6 +20,7 @@ #include "../searchandreplaceworker.h" #include "ui_replaceconductordialog.h" +#include "../../qet.h" #include #include @@ -37,6 +38,7 @@ ReplaceConductorDialog::ReplaceConductorDialog( ui(new Ui::ReplaceConductorDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); initWidget(); setProperties(properties); } diff --git a/sources/SearchAndReplace/ui/replaceelementdialog.cpp b/sources/SearchAndReplace/ui/replaceelementdialog.cpp index d1fa0e34b..ad5dfbf3f 100644 --- a/sources/SearchAndReplace/ui/replaceelementdialog.cpp +++ b/sources/SearchAndReplace/ui/replaceelementdialog.cpp @@ -24,6 +24,7 @@ #include "replaceelementdialog.h" #include "ui_replaceelementdialog.h" +#include "../../qet.h" #include ReplaceElementDialog::ReplaceElementDialog(DiagramContext context, QWidget *parent) : @@ -31,6 +32,7 @@ ReplaceElementDialog::ReplaceElementDialog(DiagramContext context, QWidget *pare ui(new Ui::ReplaceElementDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); buildWidget(); setContext(context); } diff --git a/sources/SearchAndReplace/ui/replacefoliowidget.cpp b/sources/SearchAndReplace/ui/replacefoliowidget.cpp index ea75b87cf..be11c4352 100644 --- a/sources/SearchAndReplace/ui/replacefoliowidget.cpp +++ b/sources/SearchAndReplace/ui/replacefoliowidget.cpp @@ -18,6 +18,7 @@ #include "replacefoliowidget.h" #include "../../ui/diagramcontextwidget.h" +#include "../../qet.h" #include "../searchandreplaceworker.h" #include "ui_replacefoliowidget.h" @@ -132,6 +133,8 @@ ReplaceFolioDialog::ReplaceFolioDialog(QWidget *parent) : { this->done(m_button_box->buttonRole(button_)); }); + + QET::trackDialogGeometry(this); } ReplaceFolioDialog::~ReplaceFolioDialog() diff --git a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp index c61b67ad6..fe4c77d8b 100644 --- a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp +++ b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp @@ -23,6 +23,7 @@ #include "../GraphicsItem/terminalstripitem.h" #include "../../diagram.h" +#include "../../qet.h" void AddTerminalStripItemDialog::openDialog(Diagram *diagram, QWidget *parent) { AddTerminalStripItemDialog d(diagram->project(), parent); @@ -46,6 +47,7 @@ AddTerminalStripItemDialog::AddTerminalStripItemDialog(QETProject *project, QWid ui{new Ui::AddTerminalStripItemDialog} { ui->setupUi(this); + QET::trackDialogGeometry(this); fillComboBox(); } diff --git a/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp b/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp index 52363065e..3cf5d7e4c 100644 --- a/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp +++ b/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp @@ -20,6 +20,7 @@ #include "../terminalstrip.h" #include "../../qetproject.h" +#include "../../qet.h" /** * @brief TerminalStripCreatorDialog::TerminalStripCreatorDialog * @param project : Project to add a new terminal strip @@ -31,6 +32,7 @@ TerminalStripCreatorDialog::TerminalStripCreatorDialog(QETProject *project, QWid m_project(project) { ui->setupUi(this); + QET::trackDialogGeometry(this); } /** diff --git a/sources/autoNum/ui/renumberelementsdialog.cpp b/sources/autoNum/ui/renumberelementsdialog.cpp index a8c4c9dd1..7d9cfe48a 100644 --- a/sources/autoNum/ui/renumberelementsdialog.cpp +++ b/sources/autoNum/ui/renumberelementsdialog.cpp @@ -17,6 +17,7 @@ */ #include "renumberelementsdialog.h" +#include "../../qet.h" #include #include @@ -60,6 +61,8 @@ RenumberElementsDialog::RenumberElementsDialog(const QStringList &scheme_titles, connect(m_all_rb, &QRadioButton::toggled, this, &RenumberElementsDialog::updateUi); connect(m_one_rb, &QRadioButton::toggled, this, &RenumberElementsDialog::updateUi); + + QET::trackDialogGeometry(this); } QString RenumberElementsDialog::selectedSchemeTitle() const diff --git a/sources/configdialog.cpp b/sources/configdialog.cpp index 10a0d0e0e..1e4f2bbe2 100644 --- a/sources/configdialog.cpp +++ b/sources/configdialog.cpp @@ -19,6 +19,7 @@ #include "configdialog.h" #include "ui/configpage/configpages.h" #include "qetapp.h" +#include "qet.h" #include "machine_info.h" @@ -89,6 +90,8 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { setWindowFlags(Qt::Sheet); } #endif + + QET::trackDialogGeometry(this); } /// Destructeur diff --git a/sources/editor/ui/elementpropertieseditorwidget.cpp b/sources/editor/ui/elementpropertieseditorwidget.cpp index 6e16ffa1b..78386abd1 100644 --- a/sources/editor/ui/elementpropertieseditorwidget.cpp +++ b/sources/editor/ui/elementpropertieseditorwidget.cpp @@ -22,6 +22,7 @@ #include "../../qetinformation.h" #include "ui_elementpropertieseditorwidget.h" +#include "../../qet.h" #include #include #include @@ -95,6 +96,7 @@ ElementPropertiesEditorWidget::ElementPropertiesEditorWidget(ElementData data, Q m_data(data) { ui->setupUi(this); + QET::trackDialogGeometry(this); setUpInterface(); upDateInterface(); } diff --git a/sources/elementdialog.cpp b/sources/elementdialog.cpp index 503aefc6b..64d62bd46 100644 --- a/sources/elementdialog.cpp +++ b/sources/elementdialog.cpp @@ -20,6 +20,7 @@ #include "ElementsCollection/elementcollectionitem.h" #include "ElementsCollection/elementscollectionmodel.h" #include "ElementsCollection/elementstreeview.h" +#include "qet.h" #include "qetapp.h" #include "qetmessagebox.h" #include "qfilenameedit.h" @@ -41,6 +42,7 @@ ElementDialog::ElementDialog(uint mode, QWidget *parent) : { setUpWidget(); setUpConnection(); + QET::trackDialogGeometry(this); } /** diff --git a/sources/elementscategoryeditor.cpp b/sources/elementscategoryeditor.cpp index 600b7e28e..455f4e115 100644 --- a/sources/elementscategoryeditor.cpp +++ b/sources/elementscategoryeditor.cpp @@ -41,6 +41,7 @@ ElementsCategoryEditor::ElementsCategoryEditor(const ElementsLocation &location, m_location(location) { setUpWidget(); + QET::trackDialogGeometry(this); if (m_location.isElement()) { QET::QetMessageBox::warning(this, diff --git a/sources/exportdialog.cpp b/sources/exportdialog.cpp index 95d0f8fb6..4242d726d 100644 --- a/sources/exportdialog.cpp +++ b/sources/exportdialog.cpp @@ -22,6 +22,7 @@ #include "dxfexport.h" #include "exportpropertieswidget.h" #include "factory/elementpicturefactory.h" +#include "qet.h" #include "qetgraphicsitem/ViewItem/qetgraphicstableitem.h" #include "dxfpaintdevice.h" #include "qetgraphicsitem/conductor.h" @@ -108,6 +109,8 @@ ExportDialog::ExportDialog( // ajustement des extensions des fichiers slot_changeFilesExtension(true); + + QET::trackDialogGeometry(this); } /** diff --git a/sources/factory/ui/addtabledialog.cpp b/sources/factory/ui/addtabledialog.cpp index b2de24aad..6ea094a01 100644 --- a/sources/factory/ui/addtabledialog.cpp +++ b/sources/factory/ui/addtabledialog.cpp @@ -22,6 +22,7 @@ #include "../../utils/qetutils.h" #include "ui_addtabledialog.h" +#include "../../qet.h" #include /** @@ -35,6 +36,7 @@ AddTableDialog::AddTableDialog(QWidget *content_widget, QWidget *parent) : ui(new Ui::AddTableDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); ui->m_header_font_pb->setText(m_header_font.family()); ui->m_table_font_pb->setText(m_table_font.family()); m_content_widget = content_widget; diff --git a/sources/logging/ui/diagnosticsreportdialog.cpp b/sources/logging/ui/diagnosticsreportdialog.cpp index 538b289f8..badfea564 100644 --- a/sources/logging/ui/diagnosticsreportdialog.cpp +++ b/sources/logging/ui/diagnosticsreportdialog.cpp @@ -17,6 +17,7 @@ */ #include "diagnosticsreportdialog.h" +#include "../../qet.h" #include "../../qetmessagebox.h" #include @@ -63,6 +64,8 @@ DiagnosticsReportDialog::DiagnosticsReportDialog( // holds a QString copy but we save the original UTF-8 bytes to avoid // any round-trip surprises. setProperty("qet_report_content", content); + + QET::trackDialogGeometry(this); } void DiagnosticsReportDialog::saveToFile() diff --git a/sources/materiallist/materialentrydialog.cpp b/sources/materiallist/materialentrydialog.cpp index 2795df12f..477dd0805 100644 --- a/sources/materiallist/materialentrydialog.cpp +++ b/sources/materiallist/materialentrydialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "materialentrydialog.h" +#include "../qet.h" #include "../qetmessagebox.h" @@ -92,6 +93,8 @@ MaterialEntryDialog::MaterialEntryDialog(const QStringList &columns, QWidget *pa if (!m_edits.isEmpty()) { m_edits.first()->setFocus(); } + + QET::trackDialogGeometry(this); } /** diff --git a/sources/qet.cpp b/sources/qet.cpp index 8f9b79908..4e5db31d8 100644 --- a/sources/qet.cpp +++ b/sources/qet.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -272,6 +273,27 @@ bool QET::infoFlagIsTrue(const QString &value) || v == QLatin1String("on"); } +/** + @brief QET::trackDialogGeometry + @see the declaration in qet.h for the rationale. +*/ +void QET::trackDialogGeometry(QDialog *dialog, const QString &key) +{ + const QString settings_key = QStringLiteral("dialoggeometry/%1").arg( + key.isEmpty() ? QString::fromLatin1(dialog->metaObject()->className()) : key); + + QSettings settings; + const QVariant geometry = settings.value(settings_key); + if (geometry.isValid()) { + dialog->restoreGeometry(geometry.toByteArray()); + } + + QObject::connect(dialog, &QDialog::finished, dialog, [dialog, settings_key]() { + QSettings settings; + settings.setValue(settings_key, dialog->saveGeometry()); + }); +} + /** @brief QET::ElementsAndConductorsSentence Permet de composer rapidement la proposition "x elements et y conducteurs" diff --git a/sources/qet.h b/sources/qet.h index cb5a8a0a8..11438d2c2 100644 --- a/sources/qet.h +++ b/sources/qet.h @@ -24,6 +24,7 @@ #include class QActionGroup; +class QDialog; /** This file provides useful functions and enums that may be used from anywhere else within the QElectroTech application. @@ -204,6 +205,18 @@ namespace QET { QActionGroup *depthActionGroup(QObject *parent = nullptr); void saveCustomColors(); void loadCustomColors(); + + /** + Restore a dialog's last-used size/position from QSettings, and + save it back whenever the dialog closes (accepted, rejected, or + via the window's close button). @a key identifies the dialog in + QSettings; defaults to the dialog's class name, which is enough + to distinguish dialogs one-to-one -- pass an explicit @a key for + a dialog class reused for several different kinds of content + (e.g. a generic properties-editor wrapper), so each kind gets + its own remembered size instead of fighting over one entry. + */ + void trackDialogGeometry(QDialog *dialog, const QString &key = QString()); } Q_DECLARE_METATYPE(QET::DepthOption) diff --git a/sources/richtext/richtexteditor.cpp b/sources/richtext/richtexteditor.cpp index 9c8b9b0a6..a982db81f 100644 --- a/sources/richtext/richtexteditor.cpp +++ b/sources/richtext/richtexteditor.cpp @@ -48,6 +48,7 @@ #include "richtexteditor_p.h" #include "ui_addlinkdialog.h" #include "../shortcutmanager.h" +#include "../qet.h" //#include @@ -242,6 +243,7 @@ AddLinkDialog::AddLinkDialog(RichTextEditor *editor, QWidget *parent) : m_ui(new Ui::AddLinkDialog) { m_ui->setupUi(this); + QET::trackDialogGeometry(this); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); @@ -862,6 +864,7 @@ RichTextEditorDialog::RichTextEditorDialog(QWidget *parent) : m_editor->setFocus(); resize(600, 400); + QET::trackDialogGeometry(this); } RichTextEditorDialog::~RichTextEditorDialog() diff --git a/sources/titleblock/dimensionwidget.cpp b/sources/titleblock/dimensionwidget.cpp index 228b9ad57..6e2566c06 100644 --- a/sources/titleblock/dimensionwidget.cpp +++ b/sources/titleblock/dimensionwidget.cpp @@ -17,6 +17,8 @@ */ #include "dimensionwidget.h" +#include "../qet.h" + /** Constructor @param complete True for this dialog to show the radio buttons that allow @@ -31,6 +33,7 @@ TitleBlockDimensionWidget::TitleBlockDimensionWidget(bool complete, QWidget *par { initWidgets(); initLayouts(); + QET::trackDialogGeometry(this); } /** diff --git a/sources/ui/aboutqetdialog.cpp b/sources/ui/aboutqetdialog.cpp index afec0e258..37911e122 100644 --- a/sources/ui/aboutqetdialog.cpp +++ b/sources/ui/aboutqetdialog.cpp @@ -34,6 +34,7 @@ AboutQETDialog::AboutQETDialog(QWidget *parent) : ui(new Ui::AboutQETDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); setAbout(); setAuthors(); setTranslators(); diff --git a/sources/ui/aiassistantdialog.cpp b/sources/ui/aiassistantdialog.cpp index 6d8542d7e..7e0284bdd 100644 --- a/sources/ui/aiassistantdialog.cpp +++ b/sources/ui/aiassistantdialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "aiassistantdialog.h" +#include "../qet.h" #include #include @@ -157,6 +158,8 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) : connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); refresh(); + + QET::trackDialogGeometry(this); } void AiAssistantDialog::refresh() diff --git a/sources/ui/alignmenttextdialog.cpp b/sources/ui/alignmenttextdialog.cpp index e3331800f..f732d9177 100644 --- a/sources/ui/alignmenttextdialog.cpp +++ b/sources/ui/alignmenttextdialog.cpp @@ -20,11 +20,13 @@ #include "../qetgraphicsitem/dynamicelementtextitem.h" #include "ui_alignmenttextdialog.h" +#include "../qet.h" AlignmentTextDialog::AlignmentTextDialog(Qt::Alignment alignment, QWidget *parent) : QDialog(parent), ui(new Ui::AlignmentTextDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); if(alignment == (Qt::AlignTop|Qt::AlignLeft)) ui->top_left->setChecked(true); diff --git a/sources/ui/bomexportdialog.cpp b/sources/ui/bomexportdialog.cpp index da2be53ca..703b9e3c6 100644 --- a/sources/ui/bomexportdialog.cpp +++ b/sources/ui/bomexportdialog.cpp @@ -24,6 +24,7 @@ #include "../qetproject.h" #include "ui_bomexportdialog.h" +#include "../qet.h" #include #include #include @@ -40,6 +41,7 @@ BOMExportDialog::BOMExportDialog(QETProject *project, QWidget *parent) : m_project(project) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_query_widget = new ElementQueryWidget(this); ui->m_main_layout->insertWidget(0, m_query_widget); diff --git a/sources/ui/compositetexteditdialog.cpp b/sources/ui/compositetexteditdialog.cpp index 3e0deca34..ac4e9c89b 100644 --- a/sources/ui/compositetexteditdialog.cpp +++ b/sources/ui/compositetexteditdialog.cpp @@ -5,6 +5,7 @@ #include "../qetgraphicsitem/dynamicelementtextitem.h" #include "../qetgraphicsitem/element.h" #include "../qetinformation.h" +#include "../qet.h" #include "ui_compositetexteditdialog.h" #include @@ -15,6 +16,7 @@ CompositeTextEditDialog::CompositeTextEditDialog(DynamicElementTextItem *text, Q m_text(text) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_default_text = m_text->compositeText(); ui->m_plain_text_edit->setPlainText(m_default_text); ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible")); @@ -31,6 +33,7 @@ CompositeTextEditDialog::CompositeTextEditDialog(QString text, bool report, QWid ui(new Ui::CompositeTextEditDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_default_text = std::move(text); ui->m_plain_text_edit->setPlainText(m_default_text); ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible")); diff --git a/sources/ui/conductorpropertiesdialog.cpp b/sources/ui/conductorpropertiesdialog.cpp index 329cf83a9..1973eb188 100644 --- a/sources/ui/conductorpropertiesdialog.cpp +++ b/sources/ui/conductorpropertiesdialog.cpp @@ -24,6 +24,7 @@ #include "conductorpropertieswidget.h" #include "ui_conductorpropertiesdialog.h" +#include "../qet.h" /** @brief ConductorPropertiesDialog::ConductorPropertiesDialog Constructor @@ -36,6 +37,7 @@ ConductorPropertiesDialog::ConductorPropertiesDialog( ui(new Ui::ConductorPropertiesDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_cpw = new ConductorPropertiesWidget(conductor->properties()); m_cpw -> setHiddenOneTextPerFolio(true); m_cpw->setHiddenAvailableAutonum(true); diff --git a/sources/ui/contactgroupselectiondialog.cpp b/sources/ui/contactgroupselectiondialog.cpp index d1c88a002..e681a79cb 100644 --- a/sources/ui/contactgroupselectiondialog.cpp +++ b/sources/ui/contactgroupselectiondialog.cpp @@ -17,6 +17,8 @@ */ #include "contactgroupselectiondialog.h" +#include "../qet.h" + #include #include #include @@ -207,6 +209,8 @@ ContactGroupSelectionDialog::ContactGroupSelectionDialog( accept(); } }); + + QET::trackDialogGeometry(this); } int ContactGroupSelectionDialog::selectedIndex() const diff --git a/sources/ui/diagrampropertiesdialog.cpp b/sources/ui/diagrampropertiesdialog.cpp index e07de4a6a..75f05fa70 100644 --- a/sources/ui/diagrampropertiesdialog.cpp +++ b/sources/ui/diagrampropertiesdialog.cpp @@ -89,6 +89,8 @@ DiagramPropertiesDialog::DiagramPropertiesDialog(Diagram *diagram, QWidget *pare vlayout.addLayout(glayout); vlayout.addWidget(&boutons); + QET::trackDialogGeometry(this); + // if dialog is accepted if (this -> exec() == QDialog::Accepted && !diagram_is_read_only) { diff --git a/sources/ui/dialogwaiting.cpp b/sources/ui/dialogwaiting.cpp index b203d5d96..498504e1e 100644 --- a/sources/ui/dialogwaiting.cpp +++ b/sources/ui/dialogwaiting.cpp @@ -18,6 +18,7 @@ #include "dialogwaiting.h" #include "ui_dialogwaiting.h" +#include "../qet.h" #include @@ -31,6 +32,7 @@ DialogWaiting::DialogWaiting(QWidget *parent) : ui(new Ui::DialogWaiting) { ui->setupUi(this); + QET::trackDialogGeometry(this); setTitle( "..." ); setDetail( "..." ); } diff --git a/sources/ui/duplicateoffsetdialog.cpp b/sources/ui/duplicateoffsetdialog.cpp index 906bc97cd..86668d570 100644 --- a/sources/ui/duplicateoffsetdialog.cpp +++ b/sources/ui/duplicateoffsetdialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "duplicateoffsetdialog.h" +#include "../qet.h" #include #include @@ -76,6 +77,8 @@ DuplicateOffsetDialog::DuplicateOffsetDialog(QWidget *parent) : auto *layout = new QVBoxLayout(this); layout->addLayout(form); layout->addWidget(buttons); + + QET::trackDialogGeometry(this); } QPoint DuplicateOffsetDialog::stepOffset() const diff --git a/sources/ui/formulaassistantdialog.cpp b/sources/ui/formulaassistantdialog.cpp index 228da7aff..0f921f10b 100644 --- a/sources/ui/formulaassistantdialog.cpp +++ b/sources/ui/formulaassistantdialog.cpp @@ -18,6 +18,7 @@ #include "formulaassistantdialog.h" #include "ui_formulaassistantdialog.h" +#include "../qet.h" #include FormulaAssistantDialog::FormulaAssistantDialog(QWidget *parent) : @@ -25,6 +26,7 @@ FormulaAssistantDialog::FormulaAssistantDialog(QWidget *parent) : ui(new Ui::FormulaAssistantDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); } FormulaAssistantDialog::~FormulaAssistantDialog() diff --git a/sources/ui/imagetransparentcolordialog.cpp b/sources/ui/imagetransparentcolordialog.cpp index ed9f5362c..0318acbee 100644 --- a/sources/ui/imagetransparentcolordialog.cpp +++ b/sources/ui/imagetransparentcolordialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "imagetransparentcolordialog.h" +#include "../qet.h" #include #include @@ -141,6 +142,8 @@ ImageTransparentColorDialog::ImageTransparentColorDialog(const QPixmap &basePixm rebuildSwatches(); // shows existingColors immediately, if any updatePreview(); // and the preview already reflects them too, rather than only appearing after the next pick + + QET::trackDialogGeometry(this); } /** diff --git a/sources/ui/importelementdialog.cpp b/sources/ui/importelementdialog.cpp index 47d59220c..65f131f92 100644 --- a/sources/ui/importelementdialog.cpp +++ b/sources/ui/importelementdialog.cpp @@ -17,6 +17,7 @@ */ #include "importelementdialog.h" #include "ui_importelementdialog.h" +#include "../qet.h" #include ImportElementDialog::ImportElementDialog(QWidget *parent) : @@ -24,6 +25,7 @@ ImportElementDialog::ImportElementDialog(QWidget *parent) : ui(new Ui::ImportElementDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); setUpWidget(); } diff --git a/sources/ui/importelementtextpatterndialog.cpp b/sources/ui/importelementtextpatterndialog.cpp index 4c4429d47..4581fa865 100644 --- a/sources/ui/importelementtextpatterndialog.cpp +++ b/sources/ui/importelementtextpatterndialog.cpp @@ -18,10 +18,12 @@ #include "importelementtextpatterndialog.h" #include "ui_importelementtextpatterndialog.h" +#include "../qet.h" ImportElementTextPatternDialog::ImportElementTextPatternDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ImportElementTextPatternDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); } ImportElementTextPatternDialog::~ImportElementTextPatternDialog() diff --git a/sources/ui/jumptoelementdialog.cpp b/sources/ui/jumptoelementdialog.cpp index 65b2615b3..566a93305 100644 --- a/sources/ui/jumptoelementdialog.cpp +++ b/sources/ui/jumptoelementdialog.cpp @@ -20,6 +20,7 @@ #include "../diagram.h" #include "../diagramview.h" #include "../qetproject.h" +#include "../qet.h" #include "../qetgraphicsitem/element.h" #include @@ -59,6 +60,8 @@ JumpToElementDialog::JumpToElementDialog(Diagram *diagram, QWidget *parent) : buildCandidates(); updateFilteredList(QString()); m_filter_edit->setFocus(); + + QET::trackDialogGeometry(this); } JumpToElementDialog::~JumpToElementDialog() diff --git a/sources/ui/marginseditdialog.cpp b/sources/ui/marginseditdialog.cpp index 65a8ac1a4..2177cb7d0 100644 --- a/sources/ui/marginseditdialog.cpp +++ b/sources/ui/marginseditdialog.cpp @@ -18,6 +18,7 @@ #include "marginseditdialog.h" #include "ui_marginseditdialog.h" +#include "../qet.h" #include MarginsEditDialog::MarginsEditDialog(QMargins margins, QWidget *parent) : @@ -25,6 +26,7 @@ MarginsEditDialog::MarginsEditDialog(QMargins margins, QWidget *parent) : ui(new Ui::MarginsEditDialog) { ui->setupUi(this); + QET::trackDialogGeometry(this); ui->m_top_sb->setValue(margins.top()); ui->m_left_sb->setValue(margins.left()); ui->m_right_sb->setValue(margins.right()); diff --git a/sources/ui/multipastedialog.cpp b/sources/ui/multipastedialog.cpp index 953b5bccd..c4c8dda4f 100644 --- a/sources/ui/multipastedialog.cpp +++ b/sources/ui/multipastedialog.cpp @@ -26,6 +26,7 @@ #include "../qetgraphicsitem/conductor.h" #include "../ui_multipastedialog.h" +#include "../qet.h" #include #include @@ -35,6 +36,7 @@ MultiPasteDialog::MultiPasteDialog(Diagram *diagram, QWidget *parent) : m_diagram(diagram) { ui->setupUi(this); + QET::trackDialogGeometry(this); connect(ui->m_x_sb, static_cast(&QSpinBox::valueChanged), this, &MultiPasteDialog::updatePreview); connect(ui->m_y_sb, static_cast(&QSpinBox::valueChanged), this, &MultiPasteDialog::updatePreview); diff --git a/sources/ui/pdfpagesdialog.cpp b/sources/ui/pdfpagesdialog.cpp index 00a460862..586887b40 100644 --- a/sources/ui/pdfpagesdialog.cpp +++ b/sources/ui/pdfpagesdialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "pdfpagesdialog.h" +#include "../qet.h" // Whole file is a no-op unless QtPdf is available (see pdfpagesdialog.h). #ifdef QET_HAS_QTPDF @@ -125,6 +126,8 @@ PdfPagesDialog::PdfPagesDialog(QPdfDocument &document, QWidget *parent) // Render initial preview updatePreview(); + + QET::trackDialogGeometry(this); } /** diff --git a/sources/ui/potentialselectordialog.cpp b/sources/ui/potentialselectordialog.cpp index 2a39252c7..7122676a0 100644 --- a/sources/ui/potentialselectordialog.cpp +++ b/sources/ui/potentialselectordialog.cpp @@ -19,6 +19,7 @@ #include "potentialselectordialog.h" #include "../QPropertyUndoCommand/qpropertyundocommand.h" +#include "../qet.h" #include "../autoNum/assignvariables.h" #include "../diagram.h" #include "../qetgraphicsitem/conductor.h" @@ -270,6 +271,7 @@ PotentialSelectorDialog::PotentialSelectorDialog(Conductor *conductor, m_parent_undo(parent_undo) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_potential_selector = new NewConductorPotentialSelector(conductor); buildWidget(); } @@ -292,6 +294,7 @@ PotentialSelectorDialog::PotentialSelectorDialog(Element *report, m_parent_undo(parent_undo) { ui->setupUi(this); + QET::trackDialogGeometry(this); m_potential_selector = new LinkReportPotentialSelector(report); buildWidget(); } diff --git a/sources/ui/terminalnumberingdialog.cpp b/sources/ui/terminalnumberingdialog.cpp index 85f299214..fde1df6da 100644 --- a/sources/ui/terminalnumberingdialog.cpp +++ b/sources/ui/terminalnumberingdialog.cpp @@ -5,6 +5,7 @@ #include "../diagram.h" #include "../qetgraphicsitem/element.h" #include "../undocommand/changeelementinformationcommand.h" +#include "../qet.h" #include #include #include @@ -67,6 +68,8 @@ TerminalNumberingDialog::TerminalNumberingDialog(QWidget *parent, QETProject *pr m_stripCheckboxes.insert(prefix, cb); } } + + QET::trackDialogGeometry(this); } /** diff --git a/sources/ui/thirdpartybinaryinstalldialog.cpp b/sources/ui/thirdpartybinaryinstalldialog.cpp index 80754a269..0eb82fc07 100644 --- a/sources/ui/thirdpartybinaryinstalldialog.cpp +++ b/sources/ui/thirdpartybinaryinstalldialog.cpp @@ -18,6 +18,7 @@ #include "thirdpartybinaryinstalldialog.h" #include "ui_thirdpartybinaryinstalldialog.h" +#include "../qet.h" #include #include #include @@ -32,6 +33,7 @@ ThirdPartyBinaryInstallDialog::ThirdPartyBinaryInstallDialog(const QString &text ui{new Ui::ThirdPartyBinaryInstallDialog} { ui->setupUi(this); + QET::trackDialogGeometry(this); ui->m_label->setText(text); connect(ui->m_download_pb, &QPushButton::clicked, [downloadLink](){ diff --git a/sources/ui/wiringlistdialog.cpp b/sources/ui/wiringlistdialog.cpp index a28f2425e..da2e7746c 100644 --- a/sources/ui/wiringlistdialog.cpp +++ b/sources/ui/wiringlistdialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "wiringlistdialog.h" +#include "../qet.h" #include "../dataBase/projectdatabase.h" #include "../qetproject.h" @@ -111,4 +112,6 @@ WiringListDialog::WiringListDialog(QETProject *project, QWidget *parent) : auto *buttons = new QDialogButtonBox(QDialogButtonBox::Close, this); connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); layout->addWidget(buttons); + + QET::trackDialogGeometry(this); }