Compare commits

..

2 Commits
0.8.1 ... 081

Author SHA1 Message Date
Laurent Trinques
264392cd0e Update SingleApplication to upstream master 2021-03-02 14:06:19 +01:00
Laurent Trinques
f53e429771 Upgrade pugixml XML parser to 1.11 release
https://pugixml.org/docs/manual.html#v1.11
2021-03-02 14:05:29 +01:00
33 changed files with 1777 additions and 2075 deletions

View File

@@ -19,7 +19,7 @@ include(cmake/hoto_update_cmake_message.cmake)
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
project(qelectrotech
VERSION 0.9.0
VERSION 0.8.0
DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features."
HOMEPAGE_URL "https://qelectrotech.org/"
LANGUAGES CXX)
@@ -131,28 +131,3 @@ target_include_directories(
${QET_DIR}/sources/factory/ui
${QET_DIR}/sources/print
)
install(TARGETS ${PROJECT_NAME})
install(DIRECTORY ico/breeze-icons/16x16 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/22x22 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/32x32 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/48x48 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/64x64 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/128x128 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY ico/breeze-icons/256x256 DESTINATION ${QET_ICONS_PATH})
install(DIRECTORY elements DESTINATION share/qelectrotech)
install(DIRECTORY examples DESTINATION share/qelectrotech)
install(DIRECTORY titleblocks DESTINATION share/qelectrotech)
install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech)
install(FILES misc/qelectrotech.desktop DESTINATION share/applications)
install(FILES misc/x-qet-element.xml
misc/x-qet-project.xml
misc/x-qet-titleblock.xml
DESTINATION share/mime/application)
install(FILES misc/x-qet-element.desktop
misc/x-qet-project.desktop
misc/x-qet-titleblock.desktop
DESTINATION share/mimelnk/application)
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})

View File

@@ -19,9 +19,9 @@ message(" - fetch_kdeaddons")
if(DEFINED BUILD_WITH_KF5)
Include(FetchContent)
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
set(BUILD_KF5_YES "YES")
if(BUILD_KF5)
if(DEFINED BUILD_KF5_YES)
if(NOT DEFINED KF5_GIT_TAG)
#https://qelectrotech.org/forum/viewtopic.php?pid=13924#p13924

View File

@@ -18,16 +18,9 @@ message(" - fetch_pugixml")
Include(FetchContent)
option(BUILD_PUGIXML "Build pugixml library, use system one otherwise" YES)
if(BUILD_PUGIXML)
FetchContent_Declare(
pugixml
GIT_REPOSITORY https://github.com/zeux/pugixml.git
GIT_TAG v1.11.4)
GIT_TAG v1.11.1)
FetchContent_MakeAvailable(pugixml)
else()
find_package(pugixml REQUIRED)
endif()

View File

@@ -26,6 +26,6 @@ Include(FetchContent)
FetchContent_Declare(
SingleApplication
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
GIT_TAG v3.2.0)
GIT_TAG v3.1.5)
FetchContent_MakeAvailable(SingleApplication)

View File

@@ -28,6 +28,9 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
# This strips terminating newline in the variable
string(REGEX REPLACE "\n$" "" GIT_COMMIT_SHA "${GIT_COMMIT_SHA}")
# This adds to definitions => .cpp
add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}")
if(NOT GIT_COMMIT_RESULT EQUAL "0")
message(
FATAL_ERROR
@@ -36,6 +39,3 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
", please check")
endif()
endif()
# This adds to definitions => .cpp
add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}")

View File

@@ -52,8 +52,6 @@ set(QET_RES_FILES
${QET_DIR}/sources/editor/ui/lineeditor.ui
${QET_DIR}/sources/editor/ui/polygoneditor.ui
${QET_DIR}/sources/editor/ui/rectangleeditor.ui
${QET_DIR}/sources/editor/ui/qetelementeditor.ui
${QET_DIR}/sources/editor/ui/terminaleditor.ui
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.ui
${QET_DIR}/sources/factory/ui/addtabledialog.ui
${QET_DIR}/sources/NameList/ui/namelistdialog.ui
@@ -262,8 +260,12 @@ set(QET_SRC_FILES
${QET_DIR}/sources/editor/elementscene.h
${QET_DIR}/sources/editor/elementview.cpp
${QET_DIR}/sources/editor/elementview.h
${QET_DIR}/sources/editor/qetelementeditor.cpp
${QET_DIR}/sources/editor/qetelementeditor.h
${QET_DIR}/sources/editor/styleeditor.cpp
${QET_DIR}/sources/editor/styleeditor.h
${QET_DIR}/sources/editor/terminaleditor.cpp
${QET_DIR}/sources/editor/terminaleditor.h
${QET_DIR}/sources/editor/esevent/eseventaddarc.cpp
${QET_DIR}/sources/editor/esevent/eseventaddarc.h
@@ -318,12 +320,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/editor/ui/polygoneditor.h
${QET_DIR}/sources/editor/ui/rectangleeditor.cpp
${QET_DIR}/sources/editor/ui/rectangleeditor.h
${QET_DIR}/sources/editor/ui/terminaleditor.cpp
${QET_DIR}/sources/editor/ui/terminaleditor.h
${QET_DIR}/sources/editor/ui/texteditor.cpp
${QET_DIR}/sources/editor/ui/texteditor.h
${QET_DIR}/sources/editor/ui/qetelementeditor.h
${QET_DIR}/sources/editor/ui/qetelementeditor.cpp
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.cpp
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.h
@@ -373,8 +371,6 @@ set(QET_SRC_FILES
${QET_DIR}/sources/print/projectprintwindow.cpp
${QET_DIR}/sources/print/projectprintwindow.h
${QET_DIR}/sources/properties/elementdata.cpp
${QET_DIR}/sources/properties/elementdata.h
${QET_DIR}/sources/properties/propertiesinterface.cpp
${QET_DIR}/sources/properties/propertiesinterface.h
${QET_DIR}/sources/properties/reportproperties.cpp
@@ -383,8 +379,6 @@ set(QET_SRC_FILES
${QET_DIR}/sources/properties/terminaldata.h
${QET_DIR}/sources/properties/xrefproperties.cpp
${QET_DIR}/sources/properties/xrefproperties.h
${QET_DIR}/sources/properties/userproperties.cpp
${QET_DIR}/sources/properties/userproperties.h
${QET_DIR}/sources/PropertiesEditor/propertieseditordialog.h
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.cpp

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -331,7 +331,6 @@ void BorderTitleBlock::importTitleBlock(const TitleBlockProperties &ip) {
// through setFolioData(),
// which in turn calls updateDiagramContextForTitleBlock().
emit(needTitleBlockTemplate(ip.template_name));
emit informationChanged();
}
/**

View File

@@ -246,12 +246,6 @@ class BorderTitleBlock : public QObject
*/
void needTitleBlockTemplate(const QString &);
/**
* @brief infoChanged
* Signal emitted when the informations changed.
*/
void informationChanged();
// attributes
private:
// titleblock basic data

View File

@@ -27,6 +27,7 @@
@param parent QWidget parent
*/
ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
Machine_info *mymachineinfo= new Machine_info(this);
//ScrollArea for low screens
QScrollArea *scroll = new QScrollArea(this);
scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
@@ -35,7 +36,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
// liste des pages
pages_list = new QListWidget();
pages_list -> setViewMode(QListView::IconMode);
if(MachineInfo::instance()->i_max_screen_height()<1000){
if(mymachineinfo->i_max_screen_height()<1000){
pages_list -> setIconSize(QSize(64, 64));
} else {
pages_list -> setIconSize(QSize(128, 128));
@@ -79,8 +80,8 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
connect(pages_list, SIGNAL(currentRowChanged(int)),
pages_widget, SLOT(setCurrentIndex(int)));
setMaximumSize(MachineInfo::instance()->i_max_screen_width(),
MachineInfo::instance()->i_max_screen_height());
setMaximumSize(mymachineinfo->i_max_screen_width(),
mymachineinfo->i_max_screen_height());
resize(1400,1000);
#ifdef Q_OS_MACOS

View File

@@ -157,33 +157,31 @@ void ElementQueryWidget::setQuery(const QString &query)
//Element type filter
if (where.contains("element_sub_type") || where.contains("element_type"))
{
QRegularExpression rx("^(\\( .+?\\))");
auto rxm = rx.match(where);
if (rxm.hasMatch())
{
auto str_type = rxm.captured(1);
where.remove(str_type);
int c=0;
ui->m_simple_cb->setChecked (str_type.contains("Simple") ? true : false);
ui->m_simple_cb->setChecked (where.contains("Simple") ? true : false);
if (ui->m_simple_cb->isChecked()) {
++c;
where.remove("element_type = 'Simple' ");
}
ui->m_terminal_cb->setChecked (str_type.contains("Terminale") ? true : false);
ui->m_terminal_cb->setChecked (where.contains("Terminale") ? true : false);
if (ui->m_terminal_cb->isChecked()) {
++c;
where.remove("element_type = 'Terminale'");
}
ui->m_coil_cb->setChecked (str_type.contains("coil") ? true : false);
ui->m_coil_cb->setChecked (where.contains("coil") ? true : false);
if (ui->m_coil_cb->isChecked()) {
++c;
where.remove("element_sub_type = 'coil' ");
}
ui->m_button_cb->setChecked (str_type.contains("commutator") ? true : false);
ui->m_button_cb->setChecked (where.contains("commutator") ? true : false);
if (ui->m_button_cb->isChecked()) {
++c;
where.remove("element_sub_type = 'commutator' ");
}
ui->m_protection_cb->setChecked(str_type.contains("protection") ? true : false);
ui->m_protection_cb->setChecked(where.contains("protection") ? true : false);
if (ui->m_protection_cb) {
++c;
where.remove("element_sub_type = 'protection'");
}
if (c == 5) {
@@ -191,7 +189,8 @@ void ElementQueryWidget::setQuery(const QString &query)
} else if (c > 0) {
ui->m_all_cb->setCheckState(Qt::PartiallyChecked);
}
}
where.remove("OR");
}
else // There is not "element_sub_type" or "element_type" that mean every element are selected
{
@@ -207,16 +206,20 @@ void ElementQueryWidget::setQuery(const QString &query)
strl.append(item->data(Qt::UserRole).toString());
}
QString join_str = strl.join("|");
QString beginning_rx;
beginning_rx.append(QString("^(").append(strl.join("|")));
beginning_rx.append(")");
QRegularExpression rx_is_not_null(beginning_rx + " IS NOT NULL$");
QRegularExpression rx_is_null (beginning_rx + " IS NULL$");
QRegularExpression rx_like (beginning_rx + QString(" LIKE'%(.+)%'$"));
QRegularExpression rx_not_like (beginning_rx + QString(" NOT LIKE'%(.+)%'$"));
QRegularExpression rx_equal (beginning_rx + QString("='(.+)'$"));
QRegularExpression rx_not_equal (beginning_rx + QString("!='(.+)'$"));
QRegularExpression rx_is_not_null(QStringLiteral("^(%1) != ''$").arg(join_str));
QRegularExpression rx_is_null (QStringLiteral("^\\((%1) IS NULL OR (%1) = ''\\)").arg(join_str));
QRegularExpression rx_like (QStringLiteral("^(%1) LIKE'%(.+)%'$").arg(join_str));
QRegularExpression rx_not_like (QStringLiteral("^(%1) NOT LIKE'%(.+)%'$").arg(join_str));
QRegularExpression rx_equal (QStringLiteral("^(%1)='(.+)'$").arg(join_str));
QRegularExpression rx_not_equal (QStringLiteral("^(%1)!='(.+)'$").arg(join_str));
QStringList split_where;
//Remove the white space at begin and end of each string
for (auto str : where.split("AND "))
{
@@ -307,22 +310,22 @@ QString ElementQueryWidget::queryStr() const
case 0: //No filter
break;
case 1: //Not empty
filter_ += QStringLiteral(" AND ") += key += " != ''";
filter_ += QString(" AND ") += key += " IS NOT NULL";
break;
case 2: //empty
filter_ += QStringLiteral(" AND (%1 IS NULL OR %1 = '')").arg(key);
filter_ += QString(" AND ") += key += " IS NULL";
break;
case 3: // contain
filter_ += QStringLiteral(" AND ") += key += QStringLiteral(" LIKE'%") += f.second += "%'";
filter_ += QString(" AND ") += key += QString(" LIKE'%") += f.second += "%'";
break;
case 4: // not contain
filter_ += QStringLiteral(" AND ") += key += QStringLiteral(" NOT LIKE'%") += f.second += "%'";
filter_ += QString(" AND ") += key += QString(" NOT LIKE'%") += f.second += "%'";
break;
case 5: // is equal
filter_ += QStringLiteral(" AND ") += key += QStringLiteral("='") += f.second += "'";
filter_ += QString(" AND ") += key += QString("='") += f.second += "'";
break;
case 6: // is not equal
filter_ += QStringLiteral(" AND ") += key += QStringLiteral("!='") += f.second += "'";
filter_ += QString(" AND ") += key += QString("!='") += f.second += "'";
break;
}
}

View File

@@ -92,9 +92,6 @@ Diagram::Diagram(QETProject *project) :
pen.setColor(Qt::black);
conductor_setter_ -> setPen(pen);
connect(&border_and_titleblock,
&BorderTitleBlock::informationChanged,
this, &Diagram::diagramInformationChanged);
connect(&border_and_titleblock,
&BorderTitleBlock::needTitleBlockTemplate,
this, &Diagram::setTitleBlockTemplate);
@@ -137,20 +134,15 @@ Diagram::~Diagram()
delete m_event_interface;
// list removable items
QVector<QGraphicsItem *> deletable_items;
for(const auto &qgi : items())
QList<QGraphicsItem *> deletable_items;
for(QGraphicsItem *qgi : items())
{
if (qgi->parentItem())
continue;
if (qgraphicsitem_cast<Conductor *>(qgi))
continue;
deletable_items.append(qgi);
}
for (const auto &item : qAsConst(deletable_items))
{
removeItem(item);
delete item;
if (qgi -> parentItem()) continue;
if (qgraphicsitem_cast<Conductor *>(qgi)) continue;
deletable_items << qgi;
}
qDeleteAll (deletable_items);
}
/**
@@ -197,12 +189,12 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
// If user allow zoom out beyond of folio,
// we draw grid outside of border.
QSettings settings;
int xGrid = settings.value(QStringLiteral("diagrameditor/Xgrid"),
int xGrid = settings.value("diagrameditor/Xgrid",
Diagram::xGrid).toInt();
int yGrid = settings.value(QStringLiteral("diagrameditor/Ygrid"),
int yGrid = settings.value("diagrameditor/Ygrid",
Diagram::yGrid).toInt();
QRectF rect = settings.value(
QStringLiteral("diagrameditor/zoom-out-beyond-of-folio"),
"diagrameditor/zoom-out-beyond-of-folio",
false).toBool() ? r
: border_and_titleblock
.insideBorderRect()
@@ -332,6 +324,15 @@ void Diagram::wheelEvent(QGraphicsSceneWheelEvent *event)
*/
void Diagram::keyPressEvent(QKeyEvent *event)
{
QSettings settings;
int xKeyGrid = settings.value("diagrameditor/key_Xgrid",
Diagram::xKeyGrid).toInt();
int yKeyGrid = settings.value("diagrameditor/key_Ygrid",
Diagram::yKeyGrid).toInt();
int xKeyGridFine = settings.value("diagrameditor/key_fine_Xgrid",
Diagram::xKeyGridFine).toInt();
int yKeyGridFine = settings.value("diagrameditor/key_fine_Ygrid",
Diagram::yKeyGridFine).toInt();
event->setAccepted(false);
if (m_event_interface) {
@@ -360,11 +361,6 @@ void Diagram::keyPressEvent(QKeyEvent *event)
//Move item with the keyboard arrow
if(event->modifiers() == Qt::NoModifier)
{
QSettings settings;
int xKeyGrid = settings.value(QStringLiteral("diagrameditor/key_Xgrid"),
Diagram::xKeyGrid).toInt();
int yKeyGrid = settings.value(QStringLiteral("diagrameditor/key_Ygrid"),
Diagram::yKeyGrid).toInt();
switch(event->key())
{
case Qt::Key_Left:
@@ -403,11 +399,6 @@ void Diagram::keyPressEvent(QKeyEvent *event)
}
else if(event->modifiers() == Qt::AltModifier)
{
QSettings settings;
int xKeyGridFine = settings.value(QStringLiteral("diagrameditor/key_fine_Xgrid"),
Diagram::xKeyGridFine).toInt();
int yKeyGridFine = settings.value(QStringLiteral("diagrameditor/key_fine_Ygrid"),
Diagram::yKeyGridFine).toInt();
switch(event->key())
{
case Qt::Key_Left:
@@ -741,7 +732,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
// XML tree root
// racine de l'arbre XML
auto dom_root = document.createElement(QStringLiteral("diagram"));
auto dom_root = document.createElement("diagram");
// schema properties
// proprietes du schema
@@ -751,24 +742,24 @@ QDomDocument Diagram::toXml(bool whole_content) {
// Default conductor properties
QDomElement default_conductor =
document.createElement(QStringLiteral("defaultconductor"));
document.createElement("defaultconductor");
defaultConductorProperties.toXml(default_conductor);
dom_root.appendChild(default_conductor);
// Conductor autonum
if (!m_conductors_autonum_name.isEmpty()) {
dom_root.setAttribute(QStringLiteral("conductorAutonum"),
dom_root.setAttribute("conductorAutonum",
m_conductors_autonum_name);
}
//Default New Element
dom_root.setAttribute(QStringLiteral("freezeNewElement"),
m_freeze_new_elements ? QStringLiteral("true") : QStringLiteral("false"));
dom_root.setAttribute("freezeNewElement",
m_freeze_new_elements ? "true" : "false");
//Default New Conductor
dom_root.setAttribute(QStringLiteral("freezeNewConductor"),
dom_root.setAttribute("freezeNewConductor",
m_freeze_new_conductors_
? QStringLiteral("true") : QStringLiteral("false"));
? "true" : "false");
//Element Folio Sequential Variables
if (!m_elmt_unitfolio_max.isEmpty()
@@ -776,37 +767,37 @@ QDomDocument Diagram::toXml(bool whole_content) {
|| !m_elmt_hundredfolio_max.isEmpty()) {
QDomElement elmtfoliosequential =
document.createElement(
QStringLiteral("elementautonumfoliosequentials"));
"elementautonumfoliosequentials");
if (!m_elmt_unitfolio_max.isEmpty()) {
QDomElement elmtfolioseq =
document.createElement(
QStringLiteral("elementunitfolioseq"));
"elementunitfolioseq");
folioSequentialsToXml(&m_elmt_unitfolio_max,
&elmtfolioseq,
QStringLiteral("sequf_"),
QStringLiteral("unitfolioseq"),
"sequf_",
"unitfolioseq",
&document);
elmtfoliosequential.appendChild(elmtfolioseq);
}
if (!m_elmt_tenfolio_max.isEmpty()) {
QDomElement elmtfolioseq =
document.createElement(
QStringLiteral("elementtenfolioseq"));
"elementtenfolioseq");
folioSequentialsToXml(&m_elmt_tenfolio_max,
&elmtfolioseq,
QStringLiteral("seqtf_"),
QStringLiteral("tenfolioseq"),
"seqtf_",
"tenfolioseq",
&document);
elmtfoliosequential.appendChild(elmtfolioseq);
}
if (!m_elmt_hundredfolio_max.isEmpty()) {
QDomElement elmtfolioseq =
document.createElement(
QStringLiteral("elementhundredfolioseq"));
"elementhundredfolioseq");
folioSequentialsToXml(&m_elmt_hundredfolio_max,
&elmtfolioseq,
QStringLiteral("seqhf_"),
QStringLiteral("hundredfolioseq"),
"seqhf_",
"hundredfolioseq",
&document);
elmtfoliosequential.appendChild(elmtfolioseq);
}
@@ -818,38 +809,38 @@ QDomDocument Diagram::toXml(bool whole_content) {
!m_cnd_hundredfolio_max.isEmpty()) {
QDomElement cndfoliosequential =
document.createElement(
QStringLiteral("conductorautonumfoliosequentials"));
"conductorautonumfoliosequentials");
QHash<QString, QStringList>::iterator i;
if (!m_cnd_unitfolio_max.isEmpty()) {
QDomElement cndfolioseq =
document.createElement(
QStringLiteral("conductorunitfolioseq"));
"conductorunitfolioseq");
folioSequentialsToXml(&m_cnd_unitfolio_max,
&cndfolioseq,
QStringLiteral("sequf_"),
QStringLiteral("unitfolioseq"),
"sequf_",
"unitfolioseq",
&document);
cndfoliosequential.appendChild(cndfolioseq);
}
if (!m_cnd_tenfolio_max.isEmpty()) {
QDomElement cndfolioseq =
document.createElement(
QStringLiteral("conductortenfolioseq"));
"conductortenfolioseq");
folioSequentialsToXml(&m_cnd_tenfolio_max,
&cndfolioseq,
QStringLiteral("seqtf_"),
QStringLiteral("tenfolioseq"),
"seqtf_",
"tenfolioseq",
&document);
cndfoliosequential.appendChild(cndfolioseq);
}
if (!m_cnd_hundredfolio_max.isEmpty()) {
QDomElement cndfolioseq =
document.createElement(
QStringLiteral("conductorhundredfolioseq"));
"conductorhundredfolioseq");
folioSequentialsToXml(&m_cnd_hundredfolio_max,
&cndfolioseq,
QStringLiteral("seqhf_"),
QStringLiteral("hundredfolioseq"),
"seqhf_",
"hundredfolioseq",
&document);
cndfoliosequential.appendChild(cndfolioseq);
}
@@ -860,7 +851,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
//this method with whole_content to false,
//is often use to copy and paste the current selection
//so we add the id of the project where copy occur.
dom_root.setAttribute(QStringLiteral("projectId"), QETApp::projectId(m_project));
dom_root.setAttribute("projectId", QETApp::projectId(m_project));
}
document.appendChild(dom_root);
@@ -930,7 +921,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
QHash<Terminal *, int> table_adr_id;
if (!list_elements.isEmpty()) {
auto dom_elements = document.createElement(QStringLiteral("elements"));
auto dom_elements = document.createElement("elements");
for (auto elmt : list_elements) {
dom_elements.appendChild(elmt->toXml(document,
table_adr_id));
@@ -939,7 +930,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
}
if (!list_conductors.isEmpty()) {
auto dom_conductors = document.createElement(QStringLiteral("conductors"));
auto dom_conductors = document.createElement("conductors");
for (auto cond : list_conductors) {
dom_conductors.appendChild(cond->toXml(document,
table_adr_id));
@@ -948,7 +939,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
}
if (!list_texts.isEmpty()) {
auto dom_texts = document.createElement(QStringLiteral("inputs"));
auto dom_texts = document.createElement("inputs");
for (auto dti : list_texts) {
dom_texts.appendChild(dti->toXml(document));
}
@@ -956,7 +947,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
}
if (!list_images.isEmpty()) {
auto dom_images = document.createElement(QStringLiteral("images"));
auto dom_images = document.createElement("images");
for (auto dii : list_images) {
dom_images.appendChild(dii->toXml(document));
}
@@ -964,7 +955,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
}
if (!list_shapes.isEmpty()) {
auto dom_shapes = document.createElement(QStringLiteral("shapes"));
auto dom_shapes = document.createElement("shapes");
for (auto dii : list_shapes) {
dom_shapes.appendChild(dii -> toXml(document));
}
@@ -972,7 +963,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
}
if (table_vector.size()) {
auto tables = document.createElement(QStringLiteral("tables"));
auto tables = document.createElement("tables");
for (auto table : table_vector) {
tables.appendChild(table->toXml(document));
}
@@ -996,15 +987,11 @@ void Diagram::folioSequentialsToXml(QHash<QString,
QDomElement *domElement,
const QString& seq_type,
const QString& type,
QDomDocument *doc)
{
QDomDocument *doc) {
QHash<QString, QStringList>::iterator i;
for (i = hash->begin(); i != hash->end(); i++)
{
for (i = hash->begin(); i != hash->end(); i++) {
QDomElement folioseq = doc->createElement(type);
folioseq.setAttribute(QStringLiteral("title"), i.key());
folioseq.setAttribute("title", i.key());
for (int j = 0; j < i.value().size(); j++) {
folioseq.setAttribute(seq_type + QString::number(j+1),
i.value().at(j));
@@ -1110,14 +1097,13 @@ bool Diagram::initFromXml(QDomElement &document,
*/
Terminal* findTerminal(int conductor_index,
QDomElement& f,
QHash<int,Terminal *>& table_adr_id,
QList<Element *>& added_elements)
{
QHash<int,
Terminal *>& table_adr_id,
QList<Element *>& added_elements) {
assert(conductor_index == 1 || conductor_index == 2);
auto str_index = QString::number(conductor_index);
QString element_index = QStringLiteral("element") + str_index;
QString terminal_index = QStringLiteral("terminal") + str_index;
QString element_index = "element" + QString::number(conductor_index);
QString terminal_index = "terminal" + QString::number(conductor_index);
if (f.hasAttribute(element_index)) {
QUuid element_uuid = QUuid(f.attribute(element_index));
@@ -1199,13 +1185,10 @@ Terminal* findTerminal(int conductor_index,
bool Diagram::fromXml(QDomElement &document,
QPointF position,
bool consider_informations,
DiagramContent *content_ptr)
{
DiagramContent *content_ptr) {
const QDomElement& root = document;
// The first element must be a diagram
if (root.tagName() != QLatin1String("diagram")) {
return(false);
}
if (root.tagName() != "diagram") return(false);
// Read attributes of this diagram
if (consider_informations)
@@ -1217,54 +1200,53 @@ bool Diagram::fromXml(QDomElement &document,
// Find the element "defaultconductor".
// If found, load default conductor properties.
QDomElement default_conductor_elmt =
root.firstChildElement(QStringLiteral("defaultconductor"));
root.firstChildElement("defaultconductor");
if (!default_conductor_elmt.isNull()) {
defaultConductorProperties.fromXml(default_conductor_elmt);
}
// Load the autonum
m_conductors_autonum_name = root.attribute(QStringLiteral("conductorAutonum"));
m_conductors_autonum_name = root.attribute("conductorAutonum");
// Load Freeze New Element
m_freeze_new_elements = root.attribute(QStringLiteral("freezeNewElement")).toInt();
m_freeze_new_elements = root.attribute("freezeNewElement").toInt();
// Load Freeze New Conductor
m_freeze_new_conductors_ = root.attribute(QStringLiteral("freezeNewConductor")).toInt();
m_freeze_new_conductors_ = root.attribute("freezeNewConductor").toInt();
//Load Element Folio Sequential
folioSequentialsFromXml(root,
&m_elmt_unitfolio_max,
QStringLiteral("elementunitfolioseq"),
QStringLiteral("sequf_"),
QStringLiteral("unitfolioseq"),
QStringLiteral("elementautonumfoliosequentials"));
"elementunitfolioseq",
"sequf_",
"unitfolioseq",
"elementautonumfoliosequentials");
folioSequentialsFromXml(root, &m_elmt_tenfolio_max,
QStringLiteral("elementtenfolioseq"),
QStringLiteral("seqtf_"),
QStringLiteral("tenfolioseq"),
QStringLiteral("elementautonumfoliosequentials"));
"elementtenfolioseq",
"seqtf_",
"tenfolioseq",
"elementautonumfoliosequentials");
folioSequentialsFromXml(root, &m_elmt_hundredfolio_max,
QStringLiteral("elementhundredfolioseq"),
QStringLiteral("seqhf_"),
QStringLiteral("hundredfolioseq"),
QStringLiteral("elementautonumfoliosequentials"));
"elementhundredfolioseq",
"seqhf_",
"hundredfolioseq",
"elementautonumfoliosequentials");
//Load Conductor Folio Sequential
folioSequentialsFromXml(root, &m_cnd_unitfolio_max,
QStringLiteral("conductorunitfolioseq"),
QStringLiteral("sequf_"),
QStringLiteral("unitfolioseq"),
QStringLiteral("conductorautonumfoliosequentials"));
"conductorunitfolioseq",
"sequf_",
"unitfolioseq",
"conductorautonumfoliosequentials");
folioSequentialsFromXml(root, &m_cnd_tenfolio_max,
QStringLiteral("conductortenfolioseq"),
QStringLiteral("seqtf_"),
QStringLiteral("tenfolioseq"),
QStringLiteral("conductorautonumfoliosequentials"));
"conductortenfolioseq",
"seqtf_","tenfolioseq",
"conductorautonumfoliosequentials");
folioSequentialsFromXml(root, &m_cnd_hundredfolio_max,
QStringLiteral("conductorhundredfolioseq"),
QStringLiteral("seqhf_"),
QStringLiteral("hundredfolioseq"),
QStringLiteral("conductorautonumfoliosequentials"));
"conductorhundredfolioseq",
"seqhf_",
"hundredfolioseq",
"conductorautonumfoliosequentials");
}
// if child haven't got a child, loading is finish (diagram is empty)
@@ -1273,10 +1255,10 @@ bool Diagram::fromXml(QDomElement &document,
}
//If paste from another project
if (root.hasAttribute(QStringLiteral("projectId")))
{
QETProject *other_project = QETApp::project(root.attribute(QStringLiteral("projectId"),
QStringLiteral("-1")).toInt());
if (root.hasAttribute("projectId")) {
QETProject *other_project = QETApp::project(
root.attribute("projectId",
"-1").toInt());
/* We try to paste from another project,
* then befor paste elements,
@@ -1284,18 +1266,17 @@ bool Diagram::fromXml(QDomElement &document,
* (owned by other project)
* in the embedded collection of this project
*/
if (other_project && other_project != m_project)
{
if (other_project && other_project != m_project) {
ElementCollectionHandler ech;
for (auto element_xml :
foreach (QDomElement element_xml,
QET::findInDomElement(root,
QStringLiteral("elements"),
QStringLiteral("element"))) {
"elements",
"element")) {
if (!Element::valideXml(element_xml)) continue;
QString type_id = element_xml.attribute(QStringLiteral("type"));
QString type_id = element_xml.attribute("type");
if (type_id.startsWith(QStringLiteral("embed://"))) {
if (type_id.startsWith("embed://")) {
ElementsLocation location(
type_id,
other_project);
@@ -1308,15 +1289,15 @@ bool Diagram::fromXml(QDomElement &document,
//Load all elements from the XML
QList<Element *> added_elements;
QHash<int, Terminal *> table_adr_id;
for (auto element_xml :
QET::findInDomElement(root, QStringLiteral("elements"), QStringLiteral("element")))
foreach (QDomElement element_xml,
QET::findInDomElement(root, "elements", "element"))
{
if (!Element::valideXml(element_xml)) continue;
// cree un element dont le type correspond a l'id type
QString type_id = element_xml.attribute(QStringLiteral("type"));
QString type_id = element_xml.attribute("type");
ElementsLocation element_location;
if (type_id.startsWith(QStringLiteral("embed://"))) {
if (type_id.startsWith("embed://")) {
element_location = ElementsLocation(type_id, m_project);
}
else {
@@ -1345,7 +1326,8 @@ bool Diagram::fromXml(QDomElement &document,
{
removeItem(nvel_elmt);
delete nvel_elmt;
qDebug() << QStringLiteral("Diagram::fromXml() : Le chargement des parametres d'un element a echoue");
qDebug() << "Diagram::fromXml() : Le chargement des "
"parametres d'un element a echoue";
} else {
added_elements << nvel_elmt;
}
@@ -1353,9 +1335,9 @@ bool Diagram::fromXml(QDomElement &document,
// Load text
QList<IndependentTextItem *> added_texts;
for (auto text_xml : QET::findInDomElement(root,
QStringLiteral("inputs"),
QStringLiteral("input"))) {
foreach (QDomElement text_xml, QET::findInDomElement(root,
"inputs",
"input")) {
IndependentTextItem *iti = new IndependentTextItem();
iti -> fromXml(text_xml);
addItem(iti);
@@ -1364,9 +1346,9 @@ bool Diagram::fromXml(QDomElement &document,
// Load image
QList<DiagramImageItem *> added_images;
for (auto image_xml : QET::findInDomElement(root,
QStringLiteral("images"),
QStringLiteral("image"))) {
foreach (QDomElement image_xml, QET::findInDomElement(root,
"images",
"image")) {
DiagramImageItem *dii = new DiagramImageItem ();
dii -> fromXml(image_xml);
addItem(dii);
@@ -1375,9 +1357,9 @@ bool Diagram::fromXml(QDomElement &document,
// Load shape
QList<QetShapeItem *> added_shapes;
for (auto shape_xml : QET::findInDomElement(root,
QStringLiteral("shapes"),
QStringLiteral("shape"))) {
foreach (QDomElement shape_xml, QET::findInDomElement(root,
"shapes",
"shape")) {
QetShapeItem *dii = new QetShapeItem (QPointF(0,0));
dii -> fromXml(shape_xml);
addItem(dii);
@@ -1386,9 +1368,9 @@ bool Diagram::fromXml(QDomElement &document,
// Load conductor
QList<Conductor *> added_conductors;
for (auto f : QET::findInDomElement(root,
QStringLiteral("conductors"),
QStringLiteral("conductor")))
foreach (QDomElement f, QET::findInDomElement(root,
"conductors",
"conductor"))
{
if (!Conductor::valideXml(f)) continue;
@@ -1413,8 +1395,9 @@ bool Diagram::fromXml(QDomElement &document,
//Load tables
QVector<QetGraphicsTableItem *> added_tables;
for (const auto &dom_table : QETXML::subChild(root,
QStringLiteral("tables"),
for (auto dom_table
: QETXML::subChild(root,
"tables",
QetGraphicsTableItem::xmlTagName()))
{
auto table = new QetGraphicsTableItem();
@@ -1427,12 +1410,12 @@ bool Diagram::fromXml(QDomElement &document,
if (position != QPointF())
{
QVector <QGraphicsItem *> added_items;
for (auto element : qAsConst(added_elements )) added_items << element;
for (auto cond : qAsConst(added_conductors )) added_items << cond;
for (auto shape : qAsConst(added_shapes )) added_items << shape;
for (auto text : qAsConst(added_texts )) added_items << text;
for (auto image : qAsConst(added_images )) added_items << image;
for (auto table : qAsConst(added_tables )) added_items << table;
for (auto element : added_elements ) added_items << element;
for (auto cond : added_conductors) added_items << cond;
for (auto shape : added_shapes ) added_items << shape;
for (auto text : added_texts ) added_items << text;
for (auto image : added_images ) added_items << image;
for (auto table : added_tables ) added_items << table;
//Get the top left corner of the rectangle that contain all added items
QRectF items_rect;
@@ -1504,7 +1487,7 @@ void Diagram::folioSequentialsFromXml(const QDomElement &root,
= folioSeqAutoNum.firstChildElement(type);
!folioseq.isNull();
folioseq = folioseq.nextSiblingElement(type)) {
QString title = folioseq.attribute(QStringLiteral("title"));
QString title = folioseq.attribute("title");
QStringList list;
int i = 1;
while (folioseq.hasAttribute(seq
@@ -1888,10 +1871,10 @@ void Diagram::loadElmtFolioSeq()
|| !m_elmt_unitfolio_max.contains(title)) {
//Insert Initial Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%sequf_"))) {
"%sequf_")) {
insertFolioSeqHash(&m_elmt_unitfolio_max,
title,
QStringLiteral("unitfolio"),
"unitfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1899,10 +1882,10 @@ void Diagram::loadElmtFolioSeq()
else if (m_elmt_unitfolio_max.contains(title)) {
//Load Folio Current Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%sequf_"))) {
"%sequf_")) {
loadFolioSeqHash(&m_elmt_unitfolio_max,
title,
QStringLiteral("unitfolio"),
"unitfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1913,10 +1896,10 @@ void Diagram::loadElmtFolioSeq()
|| !m_elmt_tenfolio_max.contains(title)) {
//Insert Initial Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%seqtf_"))) {
"%seqtf_")) {
insertFolioSeqHash(&m_elmt_tenfolio_max,
title,
QStringLiteral("tenfolio"),
"tenfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1924,10 +1907,10 @@ void Diagram::loadElmtFolioSeq()
else if (m_elmt_tenfolio_max.contains(title)) {
//Load Folio Current Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%seqtf_"))) {
"%seqtf_")) {
loadFolioSeqHash(&m_elmt_tenfolio_max,
title,
QStringLiteral("tenfolio"),
"tenfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1938,10 +1921,10 @@ void Diagram::loadElmtFolioSeq()
|| !m_elmt_hundredfolio_max.contains(title)) {
//Insert Initial Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%seqhf_"))) {
"%seqhf_")) {
insertFolioSeqHash(&m_elmt_hundredfolio_max,
title,
QStringLiteral("hundredfolio"),
"hundredfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1949,10 +1932,10 @@ void Diagram::loadElmtFolioSeq()
else if (m_elmt_hundredfolio_max.contains(title)) {
//Load Folio Current Value
if (project()->elementAutoNumCurrentFormula().contains(
QStringLiteral("%seqhf_"))) {
"%seqhf_")) {
loadFolioSeqHash(&m_elmt_hundredfolio_max,
title,
QStringLiteral("hundredfolio"),
"hundredfolio",
&nc);
project()->addElementAutoNum(title,nc);
}
@@ -1975,20 +1958,20 @@ void Diagram::loadCndFolioSeq()
if (m_cnd_unitfolio_max.isEmpty()
|| !m_cnd_unitfolio_max.contains(title)) {
//Insert Initial Value
if (formula.contains(QStringLiteral("%sequf_"))) {
if (formula.contains("%sequf_")) {
insertFolioSeqHash(&m_cnd_unitfolio_max,
title,
QStringLiteral("unitfolio"),
"unitfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
}
else if (m_cnd_unitfolio_max.contains(title)) {
//Load Folio Current Value
if (formula.contains(QStringLiteral("%sequf_"))) {
if (formula.contains("%sequf_")) {
loadFolioSeqHash(&m_cnd_unitfolio_max,
title,
QStringLiteral("unitfolio"),
"unitfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
@@ -1998,20 +1981,20 @@ void Diagram::loadCndFolioSeq()
if (m_cnd_tenfolio_max.isEmpty()
|| !m_cnd_tenfolio_max.contains(title)) {
//Insert Initial Value
if (formula.contains(QStringLiteral("%seqtf_"))) {
if (formula.contains("%seqtf_")) {
insertFolioSeqHash(&m_cnd_tenfolio_max,
title,
QStringLiteral("tenfolio"),
"tenfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
}
else if (m_cnd_tenfolio_max.contains(title)) {
//Load Folio Current Value
if (formula.contains(QStringLiteral("%seqtf_"))) {
if (formula.contains("%seqtf_")) {
loadFolioSeqHash(&m_cnd_tenfolio_max,
title,
QStringLiteral("tenfolio"),
"tenfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
@@ -2021,20 +2004,20 @@ void Diagram::loadCndFolioSeq()
if (m_cnd_hundredfolio_max.isEmpty()
|| !m_cnd_hundredfolio_max.contains(title)) {
//Insert Initial Value
if (formula.contains(QStringLiteral("%seqhf_"))) {
if (formula.contains("%seqhf_")) {
insertFolioSeqHash(&m_cnd_hundredfolio_max,
title,
QStringLiteral("hundredfolio"),
"hundredfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
}
else if (m_cnd_hundredfolio_max.contains(title)) {
//Load Folio Current Value
if (formula.contains(QStringLiteral("%seqhf_"))) {
if (formula.contains("%seqhf_")) {
loadFolioSeqHash(&m_cnd_hundredfolio_max,
title,
QStringLiteral("hundredfolio"),
"hundredfolio",
&nc);
project()->addConductorAutoNum(title,nc);
}
@@ -2274,9 +2257,9 @@ DiagramPosition Diagram::convertPosition(const QPointF &pos) {
QPointF Diagram::snapToGrid(const QPointF &p)
{
QSettings settings;
int xGrid = settings.value(QStringLiteral("diagrameditor/Xgrid"),
int xGrid = settings.value("diagrameditor/Xgrid",
Diagram::xGrid).toInt();
int yGrid = settings.value(QStringLiteral("diagrameditor/Ygrid"),
int yGrid = settings.value("diagrameditor/Ygrid",
Diagram::yGrid).toInt();
//Return a point rounded to the nearest pixel
@@ -2347,8 +2330,8 @@ QSet<Conductor *> Diagram::selectedConductors() const
bool Diagram::clipboardMayContainDiagram()
{
QString clipboard_text = QApplication::clipboard() -> text().trimmed();
bool may_be_diagram = clipboard_text.startsWith(QStringLiteral("<diagram"))
&& clipboard_text.endsWith(QStringLiteral("</diagram>"));
bool may_be_diagram = clipboard_text.startsWith("<diagram")
&& clipboard_text.endsWith("</diagram>");
return(may_be_diagram);
}

View File

@@ -283,7 +283,6 @@ class Diagram : public QGraphicsScene
void findElementRequired(const ElementsLocation &);
void diagramActivated();
void diagramInformationChanged();
};
Q_DECLARE_METATYPE(Diagram *)

View File

@@ -1219,20 +1219,13 @@ QList<QAction *> DiagramView::contextMenuActions() const
*/
void DiagramView::contextMenuEvent(QContextMenuEvent *e)
{
if (auto qgi = m_diagram->itemAt(mapToScene(e->pos()), transform()))
if (QGraphicsItem *qgi = m_diagram->itemAt(mapToScene(e->pos()), transform()))
{
if (!qgi -> isSelected()) {
m_diagram->clearSelection();
}
// At this step qgi can be deleted for exemple if qgi is a QetGraphicsHandlerItem.
// When we call clearSelection the parent item of the handler
// is deselected and so delete all handlers, in this case,
// qgi become a dangling pointer.
// we need to call again itemAt.
if (auto item_ = m_diagram->itemAt(mapToScene(e->pos()), transform())) {
item_->setSelected(true);
}
qgi->setSelected(true);
}
if (m_diagram->selectedItems().isEmpty())

View File

@@ -1308,29 +1308,14 @@ void CustomElementGraphicPart::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
void CustomElementGraphicPart::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton) {
if(event->button() == Qt::LeftButton)
m_origin_pos = this->pos();
m_first_move = true;
}
QGraphicsObject::mousePressEvent(event);
}
void CustomElementGraphicPart::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
//m_first_move is used to avoid an unwanted behavior
//when the properties dock widget is displayed :
//1 there is no selection
//2 the dock widget width is set to minimum
//3 select a part, the dock widget gain new widgets used to edit
//the current selected part and the width of the dock grow
//so the width of the QGraphicsView is reduced and cause a mouse move event.
//When this case occur the part is moved but they should not. This bool fix it.
if (Q_UNLIKELY(m_first_move)) {
m_first_move = false;
return;
}
if((event->buttons() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable))
{
QPointF pos = event->scenePos() + (m_origin_pos - event->buttonDownScenePos(Qt::LeftButton));

View File

@@ -328,7 +328,6 @@ class CustomElementGraphicPart : public QGraphicsObject, public CustomElementPar
Color _color;
bool _antialiased;
QPointF m_origin_pos;
bool m_first_move;
};
typedef CustomElementGraphicPart CEGP;

View File

@@ -389,12 +389,12 @@ StyleEditor::StyleEditor(QETElementEditor *editor, CustomElementGraphicPart *p,
auto grid_layout = new QGridLayout(this);
grid_layout->addWidget(new QLabel(tr("Contour :")), 0,0, Qt::AlignRight);
grid_layout->addWidget(outline_color, 0, 1);
grid_layout->addWidget(new QLabel(tr("Remplissage :")), 1, 0, Qt::AlignRight);
grid_layout->addWidget(filling_color, 1, 1);
grid_layout->addWidget(new QLabel(tr("Style :")), 2, 0, Qt::AlignRight);
grid_layout->addWidget(line_style, 2, 1);
grid_layout->addWidget(new QLabel(tr("Épaisseur :")), 3, 0, Qt::AlignRight);
grid_layout->addWidget(size_weight, 3 ,1);
grid_layout->addWidget(new QLabel(tr("Remplissage :")), 0, 2, Qt::AlignRight);
grid_layout->addWidget(filling_color, 0, 3);
grid_layout->addWidget(new QLabel(tr("Style :")), 1, 0, Qt::AlignRight);
grid_layout->addWidget(line_style, 1, 1);
grid_layout->addWidget(new QLabel(tr("Épaisseur :")), 1, 2, Qt::AlignRight);
grid_layout->addWidget(size_weight, 1 ,3);
main_layout->addItem(grid_layout);
main_layout -> addWidget(antialiasing);

View File

@@ -79,9 +79,10 @@ void QetGraphicsTableFactory::create(Diagram *diagram, AddTableDialog *dialog)
}
//Add new table if needed and option checked
if (dialog->addNewTableToNewDiagram()
&& table_->displayNRow() > 0
&& table_->model()->rowCount() > table_->displayNRow())
dialog->addNewTableToNewDiagram();
table_->model()->rowCount();
table_->displayNRow();
if (dialog->addNewTableToNewDiagram() && table_->model()->rowCount() > table_->displayNRow())
{
auto already_displayed_rows = table_->displayNRow();
auto project_ = diagram->project();

View File

@@ -29,21 +29,20 @@
#endif
#include "qet.h"
MachineInfo *MachineInfo::m_instance = nullptr;
/**
@brief MachineInfo::MachineInfo
@brief Machine_info::Machine_info
@param parent
*/
MachineInfo::MachineInfo()
Machine_info::Machine_info(QObject *parent) : QObject(parent)
{
init_get_Screen_info();
init_get_cpu_info();
}
/**
@brief MachineInfo::send_info_to_debug
@brief Machine_info::send_info_to_debug
*/
void MachineInfo::send_info_to_debug()
void Machine_info::send_info_to_debug()
{
qInfo()<<"debugging enabled:"
<< QLibraryInfo::isDebugBuild();
@@ -121,7 +120,7 @@ void MachineInfo::send_info_to_debug()
#endif
qInfo() << "GitRevision " + QString(GIT_COMMIT_SHA);
qInfo()<< "QElectroTech V " + QET::displayedVersion;
qInfo()<< QObject::tr("Compilation : ") + pc.built.version;
qInfo()<< tr("Compilation : ") + pc.built.version;
qInfo()<< "Built with Qt " + pc.built.QT
+ " - Date : " + pc.built.date
+ " : " + pc.built.time;
@@ -152,10 +151,10 @@ void MachineInfo::send_info_to_debug()
}
/**
@brief MachineInfo::init_get_Screen_info
@brief Machine_info::init_get_Screen_info
Finds the largest screen and saves the values
*/
void MachineInfo::init_get_Screen_info()
void Machine_info::init_get_Screen_info()
{
const auto screens = qApp->screens();
pc.screen.count=screens.count();
@@ -175,9 +174,9 @@ void MachineInfo::init_get_Screen_info()
}
/**
@brief MachineInfo::init_get_cpu_info
@brief Machine_info::init_get_cpu_info
*/
void MachineInfo::init_get_cpu_info()
void Machine_info::init_get_cpu_info()
{
#ifdef __GNUC__
#ifdef __APPLE_CC__
@@ -192,9 +191,9 @@ void MachineInfo::init_get_cpu_info()
}
/**
@brief MachineInfo::init_get_cpu_info_linux
@brief Machine_info::init_get_cpu_info_linux
*/
void MachineInfo::init_get_cpu_info_linux()
void Machine_info::init_get_cpu_info_linux()
{
QProcess linuxcpuinfo;
linuxcpuinfo.start("bash", QStringList()
@@ -238,9 +237,9 @@ void MachineInfo::init_get_cpu_info_linux()
}
/**
@brief MachineInfo::init_get_cpu_info_winnt
@brief Machine_info::init_get_cpu_info_winnt
*/
void MachineInfo::init_get_cpu_info_winnt()
void Machine_info::init_get_cpu_info_winnt()
{
QProcess wincpuinfo;
wincpuinfo.start("wmic",
@@ -292,9 +291,9 @@ void MachineInfo::init_get_cpu_info_winnt()
}
/**
@brief MachineInfo::init_get_cpu_info_macos
@brief Machine_info::init_get_cpu_info_macos
*/
void MachineInfo::init_get_cpu_info_macos()
void Machine_info::init_get_cpu_info_macos()
{
QProcess macoscpuinfo;
macoscpuinfo.start("bash",
@@ -318,28 +317,30 @@ void MachineInfo::init_get_cpu_info_macos()
}
/**
@brief MachineInfo::i_max_screen_width
@brief Machine_info::i_max_screen_width
@return max screen width
*/
int32_t MachineInfo::i_max_screen_width() {
int32_t Machine_info::i_max_screen_width()
{
return pc.screen.Max_width;
}
/**
@brief MachineInfo::i_max_screen_height
@brief Machine_info::i_max_screen_height
@return max screen height
*/
int32_t MachineInfo::i_max_screen_height() {
int32_t Machine_info::i_max_screen_height()
{
return pc.screen.Max_height;
}
/**
@brief MachineInfo::compilation_info
@brief Machine_info::compilation_info
@return compilation_info
*/
QString MachineInfo::compilation_info()
QString Machine_info::compilation_info()
{
QString compilation_info = "<br />" + QObject::tr("Compilation : ");
QString compilation_info = "<br />" + tr("Compilation : ");
compilation_info +=pc.built.version;
compilation_info += "<br>Built with Qt " + pc.built.QT;
compilation_info += " - Date : " + pc.built.date;

View File

@@ -18,57 +18,31 @@
#ifndef MACHINE_INFO_H
#define MACHINE_INFO_H
#include <QObject>
#include <QThread>
#include <QMutex>
/**
@brief The MachineInfo class
@brief The Machine_info class
This class hold information from your PC.
*/
class MachineInfo
class Machine_info : public QObject
{
static MachineInfo *m_instance;
Q_OBJECT
public:
static MachineInfo *instance()
{
static QMutex mutex;
if (!m_instance)
{
mutex.lock();
if (!m_instance) {
m_instance = new MachineInfo();
}
mutex.unlock();
}
return m_instance;
}
static void dropInstance()
{
static QMutex mutex;
if (m_instance) {
mutex.lock();
delete m_instance;
m_instance = nullptr;
mutex.unlock();
}
}
explicit Machine_info(QObject *parent = nullptr);
int32_t i_max_screen_width();
int32_t i_max_screen_height();
QString compilation_info();
void send_info_to_debug();
signals:
private:
MachineInfo();
void init_get_Screen_info();
void init_get_cpu_info();
void init_get_cpu_info_linux();
void init_get_cpu_info_winnt();
void init_get_cpu_info_macos();
struct Pc
{
struct Screen

View File

@@ -22,7 +22,6 @@
#include "utils/macosxopenevent.h"
#include <QStyleFactory>
#include <QtConcurrent>
/**
@brief myMessageOutput
@@ -201,15 +200,16 @@ int main(int argc, char **argv)
QObject::connect(&app, &SingleApplication::receivedMessage,
&qetapp, &QETApp::receiveMessage);
QtConcurrent::run([=]()
{
// for debugging
qInstallMessageHandler(myMessageOutput);
qInfo("Start-up");
// delete old log files of max 7 days old.
delete_old_log_files(7);
MachineInfo::instance()->send_info_to_debug();
});
{
Machine_info *my_ma =new Machine_info();
my_ma->send_info_to_debug();
delete my_ma;
}
return app.exec();
}

View File

@@ -187,14 +187,13 @@ QHash<QString, XRefProperties> XRefProperties::defaultProperties()
}
bool XRefProperties::operator ==(const XRefProperties &xrp) const{
return (m_show_power_ctc == xrp.m_show_power_ctc
&& m_display == xrp.m_display
&& m_snap_to == xrp.m_snap_to
&& m_prefix == xrp.m_prefix
&& m_master_label== xrp.m_master_label
&& m_offset == xrp.m_offset
&& m_xref_pos == xrp.m_xref_pos
&& m_slave_label == xrp.m_slave_label);
return (m_show_power_ctc == xrp.m_show_power_ctc &&
m_display == xrp.m_display &&
m_snap_to == xrp.m_snap_to &&
m_prefix == xrp.m_prefix &&
m_master_label == xrp.m_master_label &&
m_offset == xrp.m_offset &&
m_xref_pos == xrp.m_xref_pos );
}
bool XRefProperties::operator !=(const XRefProperties &xrp) const

View File

@@ -29,9 +29,9 @@ class QActionGroup;
*/
namespace QET {
/// QElectroTech version (as string, used to mark projects and elements XML documents)
const QString version = "0.81";
const QString version = "0.80";
/// QElectroTech displayed version
const QString displayedVersion = "0.81";
const QString displayedVersion = "0.80";
QString license();
//Describe the current state of a graphic item

View File

@@ -35,7 +35,6 @@
#include "titleblocktemplate.h"
#include "ui/aboutqetdialog.h"
#include "ui/configpage/generalconfigurationpage.h"
#include "machine_info.h"
#include <cstdlib>
#include <iostream>
@@ -71,9 +70,6 @@ QString QETApp::m_user_custom_elements_dir = QString();
QString QETApp::m_user_custom_tbt_dir = QString();
QETApp *QETApp::m_qetapp = nullptr;
bool lang_is_set = false;
QString system_language = QString();
/**
@brief QETApp::QETApp
@@ -150,7 +146,6 @@ QETApp::~QETApp()
ElementFactory::dropInstance();
ElementPictureFactory::dropInstance();
MachineInfo::dropInstance();
}
@@ -229,17 +224,12 @@ void QETApp::setLanguage(const QString &desired_language) {
if nothing was found return the system local.
*/
QString QETApp::langFromSetting()
{
if (!lang_is_set)
{
QSettings settings;
system_language = settings.value("lang", "system").toString();
QString system_language = settings.value("lang", "system").toString();
if(system_language == "system") {
system_language = QLocale::system().name().left(2);
}
lang_is_set = true;
}
return system_language;
}
/**

View File

@@ -84,7 +84,7 @@ class QetGraphicsHeaderItem : public QGraphicsObject
QRect m_current_rect;
QRectF m_bounding_rect;
QPointer<QAbstractItemModel> m_model;
QAbstractItemModel *m_model = nullptr;
QVector<int>
m_sections_minimum_width,

View File

@@ -156,17 +156,7 @@ QetGraphicsTableItem::QetGraphicsTableItem(QGraphicsItem *parent) :
}
QetGraphicsTableItem::~QetGraphicsTableItem()
{
if (m_previous_table) {
if (m_next_table) {
m_previous_table->setNextTable(m_next_table);
} else {
m_previous_table->setNextTable(nullptr);
}
} else if (m_next_table) {
m_next_table->setPreviousTable(nullptr);
}
}
{}
/**
@brief QetGraphicsTableItem::setModel
@@ -185,7 +175,7 @@ void QetGraphicsTableItem::setModel(QAbstractItemModel *model)
this, &QetGraphicsTableItem::modelReseted);
}
m_model = model;
m_header_item->setModel(m_model);
m_header_item->setModel(model);
setUpColumnAndRowMinimumSize();
adjustSize();
@@ -210,7 +200,7 @@ void QetGraphicsTableItem::setModel(QAbstractItemModel *model)
*/
QAbstractItemModel *QetGraphicsTableItem::model() const
{
return m_model.data();
return m_model;
}
/**
@@ -280,8 +270,8 @@ void QetGraphicsTableItem::paint(
if (m_previous_table) //Remove the number of row already displayed by previous tables
row_count -= m_previous_table->displayNRowOffset();
if (m_number_of_row_to_display > 0) //User override the number of row to display
row_count = std::min(row_count, m_number_of_row_to_display);
if (m_number_of_displayed_row > 0) //User override the number of row to display
row_count = std::min(row_count, m_number_of_displayed_row);
//Draw horizontal lines
auto cell_height = static_cast<double>(m_current_size.height())/static_cast<double>(row_count);
@@ -374,8 +364,8 @@ QSize QetGraphicsTableItem::minimumSize() const
row_count -= m_previous_table->displayNRowOffset();
}
if (m_number_of_row_to_display > 0)
row_count = std::min(row_count, m_number_of_row_to_display);
if (m_number_of_displayed_row > 0)
row_count = std::min(row_count, m_number_of_displayed_row);
//m_minimum_column_width already take in count the minimum size of header
@@ -399,7 +389,7 @@ QSize QetGraphicsTableItem::minimumSize() const
*/
void QetGraphicsTableItem::setDisplayNRow(const int &number)
{
m_number_of_row_to_display = number;
m_number_of_displayed_row = number;
setToMinimumHeight();
if (m_next_table)
m_next_table->previousTableDisplayRowChanged();
@@ -412,7 +402,7 @@ void QetGraphicsTableItem::setDisplayNRow(const int &number)
*/
int QetGraphicsTableItem::displayNRow() const
{
return m_number_of_row_to_display;
return m_number_of_displayed_row;
}
/**
@@ -499,41 +489,19 @@ QString QetGraphicsTableItem::tableName() const
*/
int QetGraphicsTableItem::displayNRowOffset() const
{
auto offset_ = m_number_of_row_to_display;
auto offset_ = m_number_of_displayed_row;
if(m_previous_table)
offset_ += m_previous_table->displayNRowOffset();
return offset_;
}
/**
* @brief QetGraphicsTableItem::displayedRowCount
* @return the number of row displayed by this table
*/
int QetGraphicsTableItem::displayedRowCount() const
{
if (!m_model) {
return 0;
}
//Calcule the number of rows to display.
auto row_count = m_model->rowCount();
if (m_previous_table) //Remove the number of row already displayed by previous tables
row_count -= m_previous_table->displayNRowOffset();
if (m_number_of_row_to_display > 0) //User override the number of row to display
row_count = std::min(row_count, m_number_of_row_to_display);
return row_count;
}
QPointer<QetGraphicsTableItem> QetGraphicsTableItem::previousTable() const
QetGraphicsTableItem *QetGraphicsTableItem::previousTable() const
{
return m_previous_table;
}
QPointer<QetGraphicsTableItem> QetGraphicsTableItem::nextTable() const
QetGraphicsTableItem *QetGraphicsTableItem::nextTable() const
{
return m_next_table;
}
@@ -587,7 +555,7 @@ QDomElement QetGraphicsTableItem::toXml(QDomDocument &dom_document) const
dom_table.setAttribute("height", QString::number(m_current_size.height()));
dom_table.setAttribute("uuid", m_uuid.toString());
dom_table.setAttribute("name", m_name);
dom_table.setAttribute("display_n_row", QString::number(m_number_of_row_to_display));
dom_table.setAttribute("display_n_row", QString::number(m_number_of_displayed_row));
//Add the header xml
dom_table.appendChild(m_header_item->toXml(dom_document));
@@ -603,7 +571,7 @@ QDomElement QetGraphicsTableItem::toXml(QDomDocument &dom_document) const
{
//Add model
auto dom_model = dom_document.createElement("model");
auto project_db_model = static_cast<ProjectDBModel *>(m_model.data());
auto project_db_model = static_cast<ProjectDBModel *>(m_model);
dom_model.appendChild(project_db_model->toXml(dom_document));
dom_table.appendChild(dom_model);
@@ -645,7 +613,7 @@ void QetGraphicsTableItem::fromXml(const QDomElement &dom_element)
"uuid",
QUuid::createUuid().toString()));
m_name = dom_element.attribute("name");
m_number_of_row_to_display = dom_element.attribute(
m_number_of_displayed_row = dom_element.attribute(
"display_n_row",
QString::number(0)).toInt();
@@ -710,8 +678,8 @@ bool QetGraphicsTableItem::toDXF(const QString &filepath)
if (m_previous_table) //Remove the number of row already displayed by previous tables
row_count -= m_previous_table->displayNRowOffset();
if (m_number_of_row_to_display > 0) //User override the number of row to display
row_count = std::min(row_count, m_number_of_row_to_display);
if (m_number_of_displayed_row > 0) //User override the number of row to display
row_count = std::min(row_count, m_number_of_displayed_row);
//Draw horizontal lines
auto cell_height = static_cast<double>(m_current_size.height())/static_cast<double>(row_count);
@@ -838,18 +806,13 @@ QVariant QetGraphicsTableItem::itemChange(
return QetGraphicsItem::itemChange(change, value);
}
/**
* @brief QetGraphicsTableItem::modelReseted
*/
void QetGraphicsTableItem::modelReseted()
{
dataChanged(m_model->index(0,0), m_model->index(0,0), QVector<int>());
setToMinimumHeight();
if (!previousTable()) //this is the head table
{
if (!previousTable()) { //this is the head table
checkInsufficientRowsCount(this);
removeUselessNextTable();
}
}
@@ -1083,24 +1046,3 @@ void QetGraphicsTableItem::previousTableDisplayRowChanged()
m_next_table->previousTableDisplayRowChanged();
}
}
/**
* @brief QetGraphicsTableItem::removeUselessNextTable
* Remove next table if useless, an useless table with 0 row displayed.
* If \p recursive is true check and remove for all sub next table.
* @param recursive
*/
void QetGraphicsTableItem::removeUselessNextTable(bool recursive)
{
if (m_next_table)
{
if (recursive) {
m_next_table->removeUselessNextTable();
}
if (m_next_table->displayedRowCount() <= 0)
{
m_next_table.data()->deleteLater();
m_next_table.clear();
}
}
}

View File

@@ -79,9 +79,8 @@ class QetGraphicsTableItem : public QetGraphicsItem
void setTableName(const QString &name);
QString tableName() const;
int displayNRowOffset() const;
int displayedRowCount() const;
QPointer<QetGraphicsTableItem> previousTable() const;
QPointer<QetGraphicsTableItem> nextTable() const;
QetGraphicsTableItem *previousTable() const;
QetGraphicsTableItem *nextTable() const;
void setToMinimumHeight();
void initLink();
QUuid uuid() const {return m_uuid;}
@@ -121,14 +120,13 @@ class QetGraphicsTableItem : public QetGraphicsItem
void headerSectionResized();
void adjustSize();
void previousTableDisplayRowChanged();
void removeUselessNextTable(bool recursive = true);
QPointer<QAbstractItemModel> m_model;
QAbstractItemModel *m_model= nullptr;
QVector<int> m_minimum_column_width;
int
m_minimum_row_height,
m_number_of_row_to_display = 0,
m_number_of_displayed_row = 0,
m_br_margin = 10;
QSize
@@ -141,8 +139,9 @@ class QetGraphicsTableItem : public QetGraphicsItem
QetGraphicsHandlerItem m_handler_item;
QetGraphicsHeaderItem *m_header_item = nullptr;
QPointer<QetGraphicsTableItem> m_previous_table,
m_next_table;
QetGraphicsTableItem
*m_previous_table = nullptr,
*m_next_table = nullptr;
QString m_name;
QUuid

View File

@@ -128,15 +128,6 @@ void CrossRefItem::setUpConnection()
m_update_connection << connect(m_element,
&Element::linkedElementChanged,
this, &CrossRefItem::linkedChanged);
auto diagram_ = dynamic_cast<Diagram *>(this->scene());
auto formula_ = m_properties.masterLabel();
if (diagram_ &&
formula_.contains("%F"))
{
m_update_connection << connect(diagram_ , &Diagram::diagramInformationChanged,
this, &CrossRefItem::updateLabel);
}
linkedChanged();
updateLabel();
}
@@ -170,9 +161,13 @@ QPainterPath CrossRefItem::shape() const{
QString CrossRefItem::elementPositionText(
const Element *elmt, const bool &add_prefix) const
{
XRefProperties xrp =
m_element->diagram()->project()->defaultXRefProperties(
m_element->kindInformations()["type"].toString());
QString formula = xrp.masterLabel();
autonum::sequentialNumbers seq;
QString txt = autonum::AssignVariables::formulaToLabel(
m_properties.masterLabel(),
formula,
seq, elmt->diagram(),
elmt);

View File

@@ -1326,7 +1326,6 @@ void DynamicElementTextItem::updateXref()
m_update_slave_Xref_connection << connect(m_master_element.data(), &Element::xChanged, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(m_master_element.data(), &Element::yChanged, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(m_master_element.data(), &Element::elementInfoChange, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(diagram(), &Diagram::diagramInformationChanged, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(diagram()->project(), &QETProject::projectDiagramsOrderChanged, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(diagram()->project(), &QETProject::diagramRemoved, this, &DynamicElementTextItem::updateXref);
m_update_slave_Xref_connection << connect(diagram()->project(), &QETProject::XRefPropertiesChanged, this, &DynamicElementTextItem::updateXref);

View File

@@ -736,38 +736,48 @@ bool Element::fromXml(
}
QHash<int, Terminal *> priv_id_adr;
for (auto *qgi : childItems())
{
if (auto terminal_ = qgraphicsitem_cast<Terminal *>(qgi))
{
for(auto qde : liste_terminals)
{
if (terminal_ -> fromXml(qde))
{
priv_id_adr.insert(qde.attribute(QStringLiteral("id")).toInt(),
terminal_);
int terminals_non_trouvees = 0;
foreach(QGraphicsItem *qgi, childItems()) {
if (Terminal *p = qgraphicsitem_cast<Terminal *>(qgi)) {
bool terminal_trouvee = false;
foreach(QDomElement qde, liste_terminals) {
if (p -> fromXml(qde)) {
priv_id_adr.insert(
qde.attribute(
"id").toInt(),
p);
terminal_trouvee = true;
// We used to break here, because we did not expect
// several terminals to share the same position.
// Of course, it finally happened.
}
}
if (!terminal_trouvee) ++ terminals_non_trouvees;
}
}
//Check that associated id/adress doesn't conflict with table_id_adr
for(auto found_id : priv_id_adr.keys())
if (terminals_non_trouvees > 0)
{
if (table_id_adr.contains(found_id))
m_state = QET::GIOK;
return(false);
}
else
{
//This element got an id who is already referenced (= conflict)
// verifie que les associations id / adr n'entrent pas en conflit avec table_id_adr
foreach(int id_trouve, priv_id_adr.keys())
{
if (table_id_adr.contains(id_trouve))
{
// cet element possede un id qui est deja reference (= conflit)
m_state = QET::GIOK;
return(false);
}
}
//Copie the association id/adress
for(auto found_id : priv_id_adr.keys()) {
table_id_adr.insert(found_id,
priv_id_adr.value(found_id));
// copie des associations id / adr
foreach(int id_trouve, priv_id_adr.keys()) {
table_id_adr.insert(id_trouve,
priv_id_adr.value(id_trouve));
}
}
//load uuid of connected elements

View File

@@ -120,19 +120,8 @@ QETProject::QETProject(KAutoSaveFile *backup, QObject *parent) :
*/
QETProject::~QETProject()
{
//Each time a diagram is deleted we also remove it from m_diagram_list
//because a lot of thing append during the destructor of a diagram class
//and one of these thing (not directly in the destructor of the diagram
//but in another destructor called by the diagram destructor)
//is to get the diagram list of the project to make some updates @see QList<Diagram *> QETProject::diagrams() const.
//So we need to remove the freshly deleted diagram from the list
//in each iteration of the loop to avoid the use of a dangling pointer.
const auto diag_list = m_diagrams_list;
for (const auto &diagram : diag_list)
{
for (auto diagram : m_diagrams_list)
delete diagram;
m_diagrams_list.removeOne(diagram);
}
}
/**
@@ -170,7 +159,7 @@ void QETProject::init()
writeBackup();
QSettings settings;
int autosave_interval = settings.value(QStringLiteral("diagrameditor/autosave-interval"), 0).toInt();
int autosave_interval = settings.value("diagrameditor/autosave-interval", 0).toInt();
if(autosave_interval > 0)
{
int ms = autosave_interval*60*1000;
@@ -1291,13 +1280,13 @@ void QETProject::readProjectXml(QDomDocument &xml_project)
m_state = ProjectParsingRunning;
//The roots of the xml document must be a "project" element
if (root_elmt.tagName() == QLatin1String("project"))
if (root_elmt.tagName() == "project")
{
//Normal opening mode
if (root_elmt.hasAttribute(QStringLiteral("version")))
if (root_elmt.hasAttribute("version"))
{
bool conv_ok;
m_project_qet_version = root_elmt.attribute(QStringLiteral("version")).toDouble(&conv_ok);
m_project_qet_version = root_elmt.attribute("version").toDouble(&conv_ok);
#if TODO_LIST
#pragma message("@TODO use of version convert")
#endif
@@ -1323,7 +1312,7 @@ void QETProject::readProjectXml(QDomDocument &xml_project)
}
}
}
setTitle(root_elmt.attribute(QStringLiteral("title")));
setTitle(root_elmt.attribute("title"));
}
else
{
@@ -1373,7 +1362,7 @@ void QETProject::readDiagramsXml(QDomDocument &xml_project)
}
//Search the diagrams in the project
QDomNodeList diagram_nodes = xml_project.elementsByTagName(QStringLiteral("diagram"));
QDomNodeList diagram_nodes = xml_project.elementsByTagName("diagram");
if(dlgWaiting)
dlgWaiting->setProgressBarRange(0, diagram_nodes.length()*3);
@@ -1392,7 +1381,7 @@ void QETProject::readDiagramsXml(QDomDocument &xml_project)
int diagram_order = -1;
if (!QET::attributeIsAnInteger(diagram_xml_element,
QStringLiteral("order"),
"order",
&diagram_order))
diagram_order = 500000;
@@ -1435,7 +1424,7 @@ void QETProject::readDiagramsXml(QDomDocument &xml_project)
void QETProject::readElementsCollectionXml(QDomDocument &xml_project)
{
//Get the embedded elements collection of the project
QDomNodeList collection_roots = xml_project.elementsByTagName(QStringLiteral("collection"));
QDomNodeList collection_roots = xml_project.elementsByTagName("collection");
QDomElement collection_root;
if (!collection_roots.isEmpty())
@@ -1460,8 +1449,8 @@ void QETProject::readElementsCollectionXml(QDomDocument &xml_project)
*/
void QETProject::readProjectPropertiesXml(QDomDocument &xml_project)
{
for (auto dom_elmt : QET::findInDomElement(xml_project.documentElement(), QStringLiteral("properties")))
m_project_properties.fromXml(dom_elmt);
foreach (QDomElement e, QET::findInDomElement(xml_project.documentElement(), "properties"))
m_project_properties.fromXml(e);
}
/**
@@ -1473,7 +1462,7 @@ void QETProject::readProjectPropertiesXml(QDomDocument &xml_project)
void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
{
// Find xml element where is stored properties for new diagram
QDomNodeList newdiagrams_nodes = xml_project.elementsByTagName(QStringLiteral("newdiagrams"));
QDomNodeList newdiagrams_nodes = xml_project.elementsByTagName("newdiagrams");
if (newdiagrams_nodes.isEmpty()) return;
QDomElement newdiagrams_elmt = newdiagrams_nodes.at(0).toElement();
@@ -1493,21 +1482,21 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
QDomElement child_elmt = child.toElement();
if (child_elmt.isNull()) continue;
if (child_elmt.tagName() == QLatin1String("border"))
if (child_elmt.tagName() == "border")
border_elmt = child_elmt;
else if (child_elmt.tagName() == QLatin1String("inset"))
else if (child_elmt.tagName() == "inset")
titleblock_elmt = child_elmt;
else if (child_elmt.tagName() == QLatin1String("conductors"))
else if (child_elmt.tagName() == "conductors")
conductors_elmt = child_elmt;
else if (child_elmt.tagName() == QLatin1String("report"))
else if (child_elmt.tagName() == "report")
report_elmt = child_elmt;
else if (child_elmt.tagName() == QLatin1String("xrefs"))
else if (child_elmt.tagName() == "xrefs")
xref_elmt = child_elmt;
else if (child_elmt.tagName() == QLatin1String("conductors_autonums"))
else if (child_elmt.tagName() == "conductors_autonums")
conds_autonums = child_elmt;
else if (child_elmt.tagName()== QLatin1String("folio_autonums"))
else if (child_elmt.tagName()== "folio_autonums")
folio_autonums = child_elmt;
else if (child_elmt.tagName()== QLatin1String("element_autonums"))
else if (child_elmt.tagName()== "element_autonums")
element_autonums = child_elmt;
}
@@ -1515,21 +1504,21 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
if (!border_elmt.isNull()) default_border_properties_.fromXml(border_elmt);
if (!titleblock_elmt.isNull()) default_titleblock_properties_.fromXml(titleblock_elmt);
if (!conductors_elmt.isNull()) default_conductor_properties_.fromXml(conductors_elmt);
if (!report_elmt.isNull()) setDefaultReportProperties(report_elmt.attribute(QStringLiteral("label")));
if (!report_elmt.isNull()) setDefaultReportProperties(report_elmt.attribute("label"));
if (!xref_elmt.isNull())
{
for (auto elmt : QET::findInDomElement(xref_elmt, QStringLiteral("xref")))
foreach(QDomElement elmt, QET::findInDomElement(xref_elmt, "xref"))
{
XRefProperties xrp;
xrp.fromXml(elmt);
m_default_xref_properties.insert(elmt.attribute(QStringLiteral("type")), xrp);
m_default_xref_properties.insert(elmt.attribute("type"), xrp);
}
}
if (!conds_autonums.isNull())
{
m_current_conductor_autonum = conds_autonums.attribute(QStringLiteral("current_autonum"));
m_freeze_new_conductors = conds_autonums.attribute(QStringLiteral("freeze_new_conductors")) == QLatin1String("true");
for (auto elmt : QET::findInDomElement(conds_autonums, QStringLiteral("conductor_autonum")))
m_current_conductor_autonum = conds_autonums.attribute("current_autonum");
m_freeze_new_conductors = conds_autonums.attribute("freeze_new_conductors") == "true";
foreach (QDomElement elmt, QET::findInDomElement(conds_autonums, "conductor_autonum"))
{
NumerotationContext nc;
nc.fromXml(elmt);
@@ -1538,22 +1527,22 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project)
}
if (!folio_autonums.isNull())
{
for (auto elmt : QET::findInDomElement(folio_autonums, QStringLiteral("folio_autonum")))
foreach (QDomElement elmt, QET::findInDomElement(folio_autonums, "folio_autonum"))
{
NumerotationContext nc;
nc.fromXml(elmt);
m_folio_autonum.insert(elmt.attribute(QStringLiteral("title")), nc);
m_folio_autonum.insert(elmt.attribute("title"), nc);
}
}
if (!element_autonums.isNull())
{
m_current_element_autonum = element_autonums.attribute(QStringLiteral("current_autonum"));
m_freeze_new_elements = element_autonums.attribute(QStringLiteral("freeze_new_elements")) == QLatin1String("true");
for (auto elmt : QET::findInDomElement(element_autonums, QStringLiteral("element_autonum")))
m_current_element_autonum = element_autonums.attribute("current_autonum");
m_freeze_new_elements = element_autonums.attribute("freeze_new_elements") == "true";
foreach (QDomElement elmt, QET::findInDomElement(element_autonums, "element_autonum"))
{
NumerotationContext nc;
nc.fromXml(elmt);
m_element_autonum.insert(elmt.attribute(QStringLiteral("title")), nc);
m_element_autonum.insert(elmt.attribute("title"), nc);
}
}
}

View File

@@ -152,7 +152,8 @@ void AboutQETDialog::setVersion()
QString str = "<span style=\"font-weight:bold;font-size:16pt;\">QElectroTech V "
+ QET::displayedVersion
+ "</span>";
ui->m_version_label->setText(str + MachineInfo::instance()->compilation_info());
Machine_info *my_ma =new Machine_info(this);
ui->m_version_label->setText(str + my_ma->compilation_info());
}
/**