mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-11 22:54:12 +02:00
69eb071f45
Upstream moved 56 commits ahead of the last merge. Six files conflicted,
all of them files where upstream's French -> English tr() translation wave
touched lines we had also touched with the cable feature. Resolution rule
applied everywhere: take upstream's English source strings, keep our cable
additions.
Resolved:
- sources/ui/xrefpropertieswidget.ui : kept our structure (m_labels_gb
pulled out of the display group, m_slave_row, the m_font_pb "Police..."
button of the cable cross-reference) and mechanically applied upstream's
20 English string replacements on top of it.
- sources/ui/xrefpropertieswidget.cpp : our version plus upstream's 7
translated combo entries; the tr("Cable") item we add for the cable
cross-reference type stays.
- sources/autoNum/ui/numparteditorw.cpp : upstream's English part names
("number format 1", "Sheet no.", "Plant", "Location", ...) for the
number-format list, with our comment explaining why type 3 (cable) takes
the conductor kinds of variable.
- sources/ui/configpage/configpages.cpp : upstream's English tab titles
(Conductors / Elements / Sheets) plus our Cables tab.
- sources/ui/configpage/projectconfigpages.cpp : upstream's "Sheets" tab
title plus our Cables tab block (single-rule SelectAutonumW(3)).
- sources/qetdiagrameditor.cpp : union of both sides - upstream's new
"Add a generic device" action (icon, status tip, data id) and its
English menu names ("File"/"Edit"/"Project"/"Display"), together with our
cable action, the Numbering and Lists menus, the cable list actions and
the CSV export in the Project menu.
Kept French: our own cable tr() source strings stay French for now. That
is the smaller change and the translation pass can follow separately.
Verified: full build 1065/1065, ctest 91/92 (only the pre-existing
headless tst_menubarkeyboard fails: no window manager, so Alt+F and F10
cannot open a menu bar), smoke start exit 124, no conflict marker left in
the tree.
122 lines
4.2 KiB
C++
122 lines
4.2 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/>.
|
|
*/
|
|
#include "projectpropertiesdialog.h"
|
|
|
|
#include "../configdialog.h"
|
|
#include "configpage/configpages.h"
|
|
#include "configpage/projectconfigpages.h"
|
|
#include "../TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.h"
|
|
|
|
#include <QObject>
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::ProjectPropertiesDialog
|
|
Default constructor
|
|
@param project : project to edit properties
|
|
@param parent : parent widget of this dialog
|
|
*/
|
|
ProjectPropertiesDialog::ProjectPropertiesDialog(QETProject *project, QWidget *parent)
|
|
{
|
|
m_properties_dialog = new ConfigDialog (parent);
|
|
m_properties_dialog -> setWindowTitle(QObject::tr("Project properties", "window title"));
|
|
m_properties_dialog -> addPage(new ProjectMainConfigPage(project));
|
|
|
|
NewDiagramPage *newDiagramPage = new NewDiagramPage(project,parent,this);
|
|
m_properties_dialog -> addPage(newDiagramPage);
|
|
|
|
ProjectAutoNumConfigPage *projectAutoNumConfigPage = new ProjectAutoNumConfigPage (project);
|
|
m_properties_dialog -> addPage(projectAutoNumConfigPage);
|
|
|
|
m_properties_dialog->addPage(new TerminalStripProjectConfigPage { project, parent });
|
|
|
|
connect(projectAutoNumConfigPage, qOverload<QString>(&ProjectAutoNumConfigPage::setAutoNum), newDiagramPage, &NewDiagramPage::setFolioAutonum);
|
|
connect(projectAutoNumConfigPage, &ProjectAutoNumConfigPage::saveCurrentTbp, newDiagramPage, &NewDiagramPage::saveCurrentTbp);
|
|
connect(projectAutoNumConfigPage, &ProjectAutoNumConfigPage::loadSavedTbp, newDiagramPage, &NewDiagramPage::loadSavedTbp);
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::~ProjectPropertiesDialog
|
|
*/
|
|
ProjectPropertiesDialog::~ProjectPropertiesDialog ()
|
|
{
|
|
delete m_properties_dialog;
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::exec
|
|
execute this dialog.
|
|
*/
|
|
void ProjectPropertiesDialog::exec()
|
|
{
|
|
// ApplicationModal (not WindowModal) so no other window — including other
|
|
// MDI subwindows — can dispatch events while the dialog holds raw
|
|
// QETProject* pointers in its config pages. WindowModal only blocks the
|
|
// parent ProjectView; the rest of the MDI area stays live, which allowed
|
|
// new_project / close_project to replace the project under the dialog
|
|
// and cause a SIGSEGV. See issue #527.
|
|
m_properties_dialog->setWindowModality(Qt::ApplicationModal);
|
|
m_properties_dialog -> exec();
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::setCurrentPage
|
|
Change the current displayed page by p.
|
|
@param p : page to display
|
|
*/
|
|
void ProjectPropertiesDialog::setCurrentPage(ProjectPropertiesDialog::Page p) {
|
|
m_properties_dialog -> setCurrentPage(static_cast <int> (p));
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::changeToFolio
|
|
Change the current displayed tab to folio tab.
|
|
*/
|
|
void ProjectPropertiesDialog::changeToFolio()
|
|
{
|
|
ProjectAutoNumConfigPage *autoNumPage =
|
|
static_cast <ProjectAutoNumConfigPage*>(
|
|
m_properties_dialog->pages.at(2));
|
|
autoNumPage->changeToTab(3);
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::changeToCable
|
|
Change the current displayed tab to the cable numbering tab.
|
|
The caller is the cable tool, which opens this window when it finds
|
|
that the project numbers its cables by no rule at all.
|
|
*/
|
|
void ProjectPropertiesDialog::changeToCable()
|
|
{
|
|
ProjectAutoNumConfigPage *autoNumPage =
|
|
static_cast <ProjectAutoNumConfigPage*>(
|
|
m_properties_dialog->pages.at(2));
|
|
autoNumPage->changeToCableTab();
|
|
}
|
|
|
|
/**
|
|
@brief ProjectPropertiesDialog::changeToElement
|
|
Change the current displayed tab to the element numberings tab.
|
|
*/
|
|
void ProjectPropertiesDialog::changeToElement()
|
|
{
|
|
ProjectAutoNumConfigPage *autoNumPage =
|
|
static_cast <ProjectAutoNumConfigPage*>(
|
|
m_properties_dialog->pages.at(2));
|
|
autoNumPage->changeToTab(2);
|
|
}
|