diff --git a/src/app/seamlyme/dialogs/configpages/seamlymepreferencesconfigurationpage.cpp b/src/app/seamlyme/dialogs/configpages/seamlymepreferencesconfigurationpage.cpp
index 337f2dafe4c8..7591f2290bd3 100644
--- a/src/app/seamlyme/dialogs/configpages/seamlymepreferencesconfigurationpage.cpp
+++ b/src/app/seamlyme/dialogs/configpages/seamlymepreferencesconfigurationpage.cpp
@@ -163,7 +163,7 @@ void SeamlyMePreferencesConfigurationPage::Apply()
// Part about measurments will not be updated automatically
qApp->RetranslateTables();
- qApp->RetranslateGroups();
+ qApp->retranslateGroups();
}
if (m_defGradationChanged)
diff --git a/src/app/seamlyme/dialogs/dialogmdatabase.cpp b/src/app/seamlyme/dialogs/dialogmdatabase.cpp
index b36686dc89f2..81e0790f082a 100644
--- a/src/app/seamlyme/dialogs/dialogmdatabase.cpp
+++ b/src/app/seamlyme/dialogs/dialogmdatabase.cpp
@@ -2,7 +2,7 @@
* *
* Copyright (C) 2017 Seamly, LLC *
* *
- * https://github.com/fashionfreedom/seamly2d *
+ * https://github.com/fashionfreedom/seamly2d *
* *
***************************************************************************
**
@@ -61,76 +61,88 @@
//---------------------------------------------------------------------------------------------------------------------
MeasurementDatabaseDialog::MeasurementDatabaseDialog(const QStringList &list, QWidget *parent)
- :QDialog(parent),
- ui(new Ui::DialogMDataBase),
- selectMode(true),
- measurements(list),
- newMeasurements(),
- groupA(nullptr),
- groupB(nullptr),
- groupC(nullptr),
- groupD(nullptr),
- groupE(nullptr),
- groupF(nullptr),
- groupG(nullptr),
- groupH(nullptr),
- groupI(nullptr),
- groupJ(nullptr),
- groupK(nullptr),
- groupL(nullptr),
- groupM(nullptr),
- groupN(nullptr),
- groupO(nullptr),
- groupP(nullptr),
- groupQ(nullptr)
+ : QDialog(parent)
+ , ui(new Ui::DialogMDataBase)
+ , selectMode(true)
+ , measurements(list)
+ , newMeasurements()
+ , groupA(nullptr)
+ , groupB(nullptr)
+ , groupC(nullptr)
+ , groupD(nullptr)
+ , groupE(nullptr)
+ , groupF(nullptr)
+ , groupG(nullptr)
+ , groupH(nullptr)
+ , groupI(nullptr)
+ , groupJ(nullptr)
+ , groupK(nullptr)
+ , groupL(nullptr)
+ , groupM(nullptr)
+ , groupN(nullptr)
+ , groupO(nullptr)
+ , groupP(nullptr)
+ , groupQ(nullptr)
{
ui->setupUi(this);
+ setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
+
+#if defined(Q_OS_MAC)
+ setWindowFlags(Qt::Window);
+#endif
+
initDataBase();
ui->treeWidget->installEventFilter(this);
- connect(ui->lineEditFind, &QLineEdit::textChanged, this, &MeasurementDatabaseDialog::filter);
- connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &MeasurementDatabaseDialog::UpdateChecks);
- connect(ui->treeWidget, &QTreeWidget::itemClicked, this, &MeasurementDatabaseDialog::ShowDescription);
- connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this, &MeasurementDatabaseDialog::TreeMenu);
+ connect(ui->lineEditFind, &QLineEdit::textChanged, this, &MeasurementDatabaseDialog::filterGroups);
+ connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &MeasurementDatabaseDialog::updateChecks);
+ connect(ui->treeWidget, &QTreeWidget::itemClicked, this, &MeasurementDatabaseDialog::showDescription);
+ connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this, &MeasurementDatabaseDialog::treeContextMenu);
readSettings();
}
//---------------------------------------------------------------------------------------------------------------------
MeasurementDatabaseDialog::MeasurementDatabaseDialog(QWidget *parent)
- :QDialog(parent),
- ui(new Ui::DialogMDataBase),
- selectMode(false),
- measurements(),
- newMeasurements(),
- groupA(nullptr),
- groupB(nullptr),
- groupC(nullptr),
- groupD(nullptr),
- groupE(nullptr),
- groupF(nullptr),
- groupG(nullptr),
- groupH(nullptr),
- groupI(nullptr),
- groupJ(nullptr),
- groupK(nullptr),
- groupL(nullptr),
- groupM(nullptr),
- groupN(nullptr),
- groupO(nullptr),
- groupP(nullptr),
- groupQ(nullptr)
+ : QDialog(parent)
+ , ui(new Ui::DialogMDataBase)
+ , selectMode(false)
+ , measurements()
+ , newMeasurements()
+ , groupA(nullptr)
+ , groupB(nullptr)
+ , groupC(nullptr)
+ , groupD(nullptr)
+ , groupE(nullptr)
+ , groupF(nullptr)
+ , groupG(nullptr)
+ , groupH(nullptr)
+ , groupI(nullptr)
+ , groupJ(nullptr)
+ , groupK(nullptr)
+ , groupL(nullptr)
+ , groupM(nullptr)
+ , groupN(nullptr)
+ , groupO(nullptr)
+ , groupP(nullptr)
+ , groupQ(nullptr)
{
ui->setupUi(this);
+ setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
+
+#if defined(Q_OS_MAC)
+ setWindowFlags(Qt::Window);
+#endif
+
initDataBase();
ui->treeWidget->installEventFilter(this);
- connect(ui->lineEditFind, &QLineEdit::textChanged, this, &MeasurementDatabaseDialog::filter);
- connect(ui->treeWidget, &QTreeWidget::itemClicked, this, &MeasurementDatabaseDialog::ShowDescription);
- connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this, &MeasurementDatabaseDialog::TreeMenu);
- connect(ui->treeWidget, &QTreeWidget::itemActivated, this, &MeasurementDatabaseDialog::ShowDescription);
+ connect(ui->lineEditFind, &QLineEdit::textChanged, this, &MeasurementDatabaseDialog::filterGroups);
+ connect(ui->treeWidget, &QTreeWidget::itemClicked, this, &MeasurementDatabaseDialog::showDescription);
+ connect(ui->treeWidget, &QTreeWidget::customContextMenuRequested, this, &MeasurementDatabaseDialog::treeContextMenu);
+ connect(ui->treeWidget, &QTreeWidget::itemActivated, this, &MeasurementDatabaseDialog::showDescription);
readSettings();
}
@@ -149,7 +161,7 @@ QStringList MeasurementDatabaseDialog::getNewMeasurementNames() const
}
//---------------------------------------------------------------------------------------------------------------------
-void MeasurementDatabaseDialog::RetranslateGroups()
+void MeasurementDatabaseDialog::retranslateGroups()
{
retranslateGroup(groupA, groupAText, ListGroupA());
retranslateGroup(groupB, groupBText, ListGroupB());
@@ -169,15 +181,15 @@ void MeasurementDatabaseDialog::RetranslateGroups()
retranslateGroup(groupP, groupPText, ListGroupP());
retranslateGroup(groupQ, groupQText, ListGroupQ());
- ShowDescription(ui->treeWidget->currentItem(), 0);
+ showDescription(ui->treeWidget->currentItem(), 0);
}
//---------------------------------------------------------------------------------------------------------------------
-QString MeasurementDatabaseDialog::imgTag(const QString &number)
+QString MeasurementDatabaseDialog::imageUrl(const QString &number)
{
QString imgUrl(""); // In case of error
const QString filePath = QString("://diagrams/%1.svg").arg(MapDiagrams(qApp->TrVars(), number));
- if (QFileInfo(filePath).exists())
+ if (QFileInfo::exists(filePath))
{
// Load your SVG
QSvgRenderer renderer;
@@ -239,14 +251,14 @@ bool MeasurementDatabaseDialog::eventFilter(QObject *target, QEvent *event)
{
const QModelIndex model = ui->treeWidget->indexAbove(ui->treeWidget->currentIndex());
QTreeWidgetItem *item = ui->treeWidget->itemAbove(ui->treeWidget->currentItem());
- ShowDescription(item, model.column());
+ showDescription(item, model.column());
break;
}
case Qt::Key_Down:
{
const QModelIndex model = ui->treeWidget->indexBelow(ui->treeWidget->currentIndex());
QTreeWidgetItem *item = ui->treeWidget->itemBelow(ui->treeWidget->currentItem());
- ShowDescription(item, model.column());
+ showDescription(item, model.column());
break;
}
default:
@@ -257,7 +269,7 @@ bool MeasurementDatabaseDialog::eventFilter(QObject *target, QEvent *event)
}
//---------------------------------------------------------------------------------------------------------------------
-void MeasurementDatabaseDialog::UpdateChecks(QTreeWidgetItem *item, int column)
+void MeasurementDatabaseDialog::updateChecks(QTreeWidgetItem *item, int column)
{
bool diff = false;
if (column != 0 && column != -1)
@@ -268,12 +280,12 @@ void MeasurementDatabaseDialog::UpdateChecks(QTreeWidgetItem *item, int column)
if (item->childCount() != 0 && item->checkState(0) != Qt::PartiallyChecked && column != -1)
{
bool flag = false; // Check if we could change atleast one children
- Qt::CheckState checkState = item->checkState(0);
+ Qt::CheckState state = item->checkState(0);
for (int i = 0; i < item->childCount(); ++i)
{
- if (not measurements.contains(item->child(i)->data(0, Qt::UserRole).toString()))
+ if (!measurements.contains(item->child(i)->data(0, Qt::UserRole).toString()))
{
- item->child(i)->setCheckState(0, checkState);
+ item->child(i)->setCheckState(0, state);
flag = true;
}
@@ -287,16 +299,16 @@ void MeasurementDatabaseDialog::UpdateChecks(QTreeWidgetItem *item, int column)
{
QString itemName = item->data(0, Qt::UserRole).toString();
- Qt::CheckState checkState = item->checkState(0);
+ Qt::CheckState state = item->checkState(0);
- if (checkState == Qt::CheckState::Unchecked)
+ if (state == Qt::CheckState::Unchecked)
{
newMeasurements.removeOne(itemName);
}
- else if (checkState == Qt::CheckState::Checked &&
- not measurements.contains(itemName) &&
- not newMeasurements.contains(itemName) &&
- not itemName.isEmpty())
+ else if (state == Qt::CheckState::Checked &&
+ !measurements.contains(itemName) &&
+ !newMeasurements.contains(itemName) &&
+ !itemName.isEmpty())
{
newMeasurements.append(itemName);
}
@@ -323,26 +335,14 @@ void MeasurementDatabaseDialog::UpdateChecks(QTreeWidgetItem *item, int column)
parent->setCheckState(0, item->checkState(0));
}
- UpdateChecks(parent, -1);
+ updateChecks(parent, -1);
}
}
//---------------------------------------------------------------------------------------------------------------------
-void MeasurementDatabaseDialog::ShowDescription(QTreeWidgetItem *item, int column)
+void MeasurementDatabaseDialog::showDescription(QTreeWidgetItem *item, int column)
{
- if (column != 0 && column != -1)
- {
- ui->textEdit->clear();
- return;
- }
-
- if (item == nullptr)
- {
- ui->textEdit->clear();
- return;
- }
-
- if (item->childCount() != 0)
+ if ((column != 0 && column != -1) || item == nullptr || (item->childCount() != 0 ))
{
ui->textEdit->clear();
return;
@@ -356,21 +356,21 @@ void MeasurementDatabaseDialog::ShowDescription(QTreeWidgetItem *item, int colum
"normal\"> %1
%2. %3
%4
") - .arg(imgTag(number)) - .arg(number) - .arg(trv->GuiText(name)) - .arg(trv->Description(name)); + .arg(imageUrl(number)) + .arg(number) + .arg(trv->GuiText(name)) + .arg(trv->Description(name)); ui->textEdit->setHtml(text); } //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::TreeMenu(const QPoint &pos) +void MeasurementDatabaseDialog::treeContextMenu(const QPoint &pos) { // Because item also will be selected need to show description const QModelIndex model = ui->treeWidget->currentIndex(); QTreeWidgetItem *item = ui->treeWidget->currentItem(); - ShowDescription(item, model.column()); + showDescription(item, model.column()); QAction *actionCollapseAll = new QAction(tr("Collapse All"), this); connect(actionCollapseAll, &QAction::triggered, ui->treeWidget, &QTreeWidget::collapseAll); @@ -385,22 +385,22 @@ void MeasurementDatabaseDialog::TreeMenu(const QPoint &pos) if (selectMode) { QString actionName; - GlobalCheckState() == Qt::Checked ? actionName = tr("Check all") : actionName = tr("Uncheck all"); + globalCheckState() == Qt::Checked ? actionName = tr("Check all") : actionName = tr("Uncheck all"); - QAction *actionRecheck = new QAction(actionName, this); - connect(actionRecheck, &QAction::triggered, this, &MeasurementDatabaseDialog::Recheck); + QAction *actionRecheckState = new QAction(actionName, this); + connect(actionRecheckState, &QAction::triggered, this, &MeasurementDatabaseDialog::recheckState); - menu.addAction(actionRecheck); + menu.addAction(actionRecheckState); } menu.exec(ui->treeWidget->mapToGlobal(pos)); } //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::Recheck() +void MeasurementDatabaseDialog::recheckState() { if (selectMode) { - const Qt::CheckState check = GlobalCheckState(); + const Qt::CheckState check = globalCheckState(); changeCheckState(groupA, check); changeCheckState(groupB, check); @@ -423,169 +423,156 @@ void MeasurementDatabaseDialog::Recheck() } //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::initDataBase(const QStringList &newList) +void MeasurementDatabaseDialog::initDataBase(const QStringList &list) { - initGroup(&groupA, groupAText, ListGroupA(), newList); - initGroup(&groupB, groupBText, ListGroupB(), newList); - initGroup(&groupC, groupCText, ListGroupC(), newList); - initGroup(&groupD, groupDText, ListGroupD(), newList); - initGroup(&groupE, groupEText, ListGroupE(), newList); - initGroup(&groupF, groupFText, ListGroupF(), newList); - initGroup(&groupG, groupGText, ListGroupG(), newList); - initGroup(&groupH, groupHText, ListGroupH(), newList); - initGroup(&groupI, groupIText, ListGroupI(), newList); - initGroup(&groupJ, groupJText, ListGroupJ(), newList); - initGroup(&groupK, groupKText, ListGroupK(), newList); - initGroup(&groupL, groupLText, ListGroupL(), newList); - initGroup(&groupM, groupMText, ListGroupM(), newList); - initGroup(&groupN, groupNText, ListGroupN(), newList); - initGroup(&groupO, groupOText, ListGroupO(), newList); - initGroup(&groupP, groupPText, ListGroupP(), newList); - initGroup(&groupQ, groupQText, ListGroupQ(), newList); -} - + initGroup(&groupA, groupAText, ListGroupA(), list); + initGroup(&groupB, groupBText, ListGroupB(), list); + initGroup(&groupC, groupCText, ListGroupC(), list); + initGroup(&groupD, groupDText, ListGroupD(), list); + initGroup(&groupE, groupEText, ListGroupE(), list); + initGroup(&groupF, groupFText, ListGroupF(), list); + initGroup(&groupG, groupGText, ListGroupG(), list); + initGroup(&groupH, groupHText, ListGroupH(), list); + initGroup(&groupI, groupIText, ListGroupI(), list); + initGroup(&groupJ, groupJText, ListGroupJ(), list); + initGroup(&groupK, groupKText, ListGroupK(), list); + initGroup(&groupL, groupLText, ListGroupL(), list); + initGroup(&groupM, groupMText, ListGroupM(), list); + initGroup(&groupN, groupNText, ListGroupN(), list); + initGroup(&groupO, groupOText, ListGroupO(), list); + initGroup(&groupP, groupPText, ListGroupP(), list); + initGroup(&groupQ, groupQText, ListGroupQ(), list); +} + //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::initGroup(QTreeWidgetItem **group, const QString &groupName, const QStringList &groupList, - const QStringList &newList) -{ - *group = AddGroup(groupName); +void MeasurementDatabaseDialog::initGroup(QTreeWidgetItem **group, const QString &groupName, + const QStringList &groupList, const QStringList &measurementList) +{ + *group = addMeasurementGroup(groupName); for (int i=0; i < groupList.size(); ++i) - { - addMeasurement(*group, groupList.at(i), newList); - } -} - + { + addMeasurement(*group, groupList.at(i), measurementList); + } +} + //--------------------------------------------------------------------------------------------------------------------- -QTreeWidgetItem *MeasurementDatabaseDialog::AddGroup(const QString &groupName) -{ +QTreeWidgetItem *MeasurementDatabaseDialog::addMeasurementGroup(const QString &groupName) +{ QTreeWidgetItem *group = new QTreeWidgetItem(ui->treeWidget); group->setText(0, groupName); group->setToolTip(0, groupName); - group->setExpanded(true); - if (selectMode) - { + group->setExpanded(true); + if (selectMode) + { group->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); group->setCheckState(0, Qt::Unchecked); group->setBackground(0, QBrush(Qt::lightGray)); - } - return group; -} - + } + return group; +} + //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::addMeasurement(QTreeWidgetItem *group, const QString &name, const QStringList &newList) -{ - SCASSERT(group != nullptr) - - QTreeWidgetItem *m = new QTreeWidgetItem(group); - - if (selectMode) - { +void MeasurementDatabaseDialog::addMeasurement(QTreeWidgetItem *group, const QString &name, const QStringList &list) +{ + SCASSERT(group != nullptr) + + QTreeWidgetItem *item = new QTreeWidgetItem(group); + + if (selectMode) + { if (measurements.contains(name)) - { - m->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - m->setCheckState(0, Qt::Checked); - m->setBackground(0, QBrush(Qt::yellow)); + { + item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + item->setCheckState(0, Qt::Checked); + item->setBackground(0, QBrush(QColor(231, 231, 0, 127))); } - else if (newList.contains(name)) + else if (list.contains(name)) { - m->setCheckState(0, Qt::Checked); + item->setCheckState(0, Qt::Checked); } else - { - m->setCheckState(0, Qt::Unchecked); + { + item->setCheckState(0, Qt::Unchecked); } - - UpdateChecks(m, 0); - } - + + updateChecks(item, 0); + } + const QString text = qApp->TrVars()->MNumber(name) + ". " + qApp->TrVars()->MToUser(name); - m->setText(0, text); - m->setToolTip(0, text); - m->setData(0, Qt::UserRole, name); -} - + item->setText(0, text); + item->setToolTip(0, text); + item->setData(0, Qt::UserRole, name); +} + //--------------------------------------------------------------------------------------------------------------------- void MeasurementDatabaseDialog::readSettings() -{ - restoreGeometry(qApp->SeamlyMeSettings()->GetDataBaseGeometry()); -} - +{ + restoreGeometry(qApp->SeamlyMeSettings()->getDataBaseGeometry()); +} + //--------------------------------------------------------------------------------------------------------------------- void MeasurementDatabaseDialog::writeSettings() -{ - qApp->SeamlyMeSettings()->SetDataBaseGeometry(saveGeometry()); -} +{ + qApp->SeamlyMeSettings()->setDataBaseGeometry(saveGeometry()); +} //--------------------------------------------------------------------------------------------------------------------- -void MeasurementDatabaseDialog::filter(const QString term) +void MeasurementDatabaseDialog::filterGroups(const QString searchString) { + filterGroup(groupA, searchString); + filterGroup(groupB, searchString); + filterGroup(groupC, searchString); + filterGroup(groupD, searchString); + filterGroup(groupE, searchString); + filterGroup(groupF, searchString); + filterGroup(groupG, searchString); + filterGroup(groupH, searchString); + filterGroup(groupI, searchString); + filterGroup(groupJ, searchString); + filterGroup(groupK, searchString); + filterGroup(groupL, searchString); + filterGroup(groupM, searchString); + filterGroup(groupN, searchString); + filterGroup(groupO, searchString); + filterGroup(groupP, searchString); + filterGroup(groupQ, searchString); + + const QList%1
" "%2. %3
") - .arg(MeasurementDatabaseDialog::imgTag(number)).arg(number).arg(trv->GuiText(name))); + .arg(MeasurementDatabaseDialog::imageUrl(number)).arg(number).arg(trv->GuiText(name))); } // This part is very ugly, can't find better way to resize dockWidget. ui->labelDiagram->adjustSize(); diff --git a/src/app/seamlyme/tmainwindow.ui b/src/app/seamlyme/tmainwindow.ui index dd7c6bcec1ac..a3781d5d00b6 100644 --- a/src/app/seamlyme/tmainwindow.ui +++ b/src/app/seamlyme/tmainwindow.ui @@ -272,8 +272,8 @@