mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-03 10:34:14 +02:00
031710b5fc
Resetting an active numbering counter back to a starting value, or marking it as needing manual numbering, currently requires the full round trip through the project properties dialog: open it from the dock's Configure button, locate the right numbering context, select the specific part row, clear and retype the value, confirm. Add two small buttons next to each of the three combo boxes (Conductor/Element/Folio) on AutoNumberingDockWidget itself: - Reset to start: calls NumerotationContext::replaceValue() on every part that represents a progressing counter, using a sensible per-type value -- the part's own stored initialvalue for folio-anchored types (unitfolio/tenfolio/hundredfolio), "1" for plain numeric types and wrap, "a" for alpha. Non-incrementing types (string, plant, locmach, idfolio, folio, elementline, elementcolumn, elementprefix) are left untouched, since there's no meaningful "start" distinct from whatever the user configured for a fixed/contextual value. - Reset to "?": sets every part's value to the literal placeholder "?" unconditionally, for marking a context as needing manual numbering. Both write the updated context back via the same addConductorAutoNum/addElementAutoNum/addFolioAutoNum calls the project properties dialog itself already uses, so the dock's existing refresh signals fire exactly as they do today. Verified with a full build (Qt6) after the change -- clean compile and link, including the .ui-generated Ui class correctly picking up the six new button object names. Wasn't able to get a reliable live GUI run in this environment to click-test the buttons themselves (ran into unrelated session/display instability before any interaction with the new buttons occurred), so this is verified by code review and successful build rather than a runtime screenshot. Implements https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/597
89 lines
2.5 KiB
C++
89 lines
2.5 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 AUTONUMBERINGDOCKWIDGET_H
|
|
#define AUTONUMBERINGDOCKWIDGET_H
|
|
|
|
#include "../../projectview.h"
|
|
#include "../../qetproject.h"
|
|
|
|
#include <QDockWidget>
|
|
|
|
class QComboBox;
|
|
|
|
namespace Ui {
|
|
class AutoNumberingDockWidget;
|
|
}
|
|
|
|
class AutoNumberingDockWidget : public QDockWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit AutoNumberingDockWidget(QWidget *parent = nullptr);
|
|
~AutoNumberingDockWidget() override;
|
|
|
|
void setContext();
|
|
void setProject(QETProject*, ProjectView*);
|
|
|
|
public slots:
|
|
void setActive();
|
|
void setConductorActive(DiagramView*);
|
|
|
|
private slots:
|
|
void on_m_conductor_cb_activated(int);
|
|
void on_m_element_cb_activated(int);
|
|
void on_m_folio_cb_activated(int);
|
|
void conductorAutoNumChanged();
|
|
void elementAutoNumChanged();
|
|
void folioAutoNumChanged();
|
|
void clear();
|
|
void projectClosed();
|
|
|
|
void on_m_configure_pb_clicked();
|
|
|
|
void on_m_conductor_reset_start_pb_clicked();
|
|
void on_m_conductor_reset_placeholder_pb_clicked();
|
|
void on_m_element_reset_start_pb_clicked();
|
|
void on_m_element_reset_placeholder_pb_clicked();
|
|
void on_m_folio_reset_start_pb_clicked();
|
|
void on_m_folio_reset_placeholder_pb_clicked();
|
|
|
|
signals:
|
|
void folioAutoNumChanged(QString);
|
|
|
|
private:
|
|
enum class AutoNumCategory { Conductor, Element, Folio };
|
|
|
|
/**
|
|
@brief resetAutoNum
|
|
Reset the numerotation context currently selected in combo_box
|
|
(for the given category) either to a per-type starting value
|
|
(to_placeholder = false) or to the literal placeholder "?" on
|
|
every part (to_placeholder = true). Does nothing if no context
|
|
is selected.
|
|
*/
|
|
void resetAutoNum(QComboBox *combo_box, AutoNumCategory category, bool to_placeholder);
|
|
|
|
Ui::AutoNumberingDockWidget *ui;
|
|
QETProject* m_project = nullptr;
|
|
ProjectView* m_project_view = nullptr;
|
|
|
|
};
|
|
|
|
#endif // AUTONUMBERINGDOCKWIDGET_H
|