diff --git a/src/app/valentina/dialogs/dialogincrements.cpp b/src/app/valentina/dialogs/dialogincrements.cpp index f5d960bb7..76c1e28d5 100644 --- a/src/app/valentina/dialogs/dialogincrements.cpp +++ b/src/app/valentina/dialogs/dialogincrements.cpp @@ -28,8 +28,6 @@ #include "dialogincrements.h" #include "ui_dialogincrements.h" -#include "../vwidgets/doubledelegate.h" -#include "../vwidgets/textdelegate.h" #include "../vwidgets/vwidgetpopup.h" #include "../xml/vstandardmeasurements.h" #include "../xml/vindividualmeasurements.h" diff --git a/src/app/valentina/dialogs/dialogincrements.h b/src/app/valentina/dialogs/dialogincrements.h index 35ad1d9cb..c6e8cc52c 100644 --- a/src/app/valentina/dialogs/dialogincrements.h +++ b/src/app/valentina/dialogs/dialogincrements.h @@ -29,7 +29,7 @@ #ifndef DIALOGINCREMENTS_H #define DIALOGINCREMENTS_H -#include "../../libs/vtools/dialogs/tools/dialogtool.h" +#include "../vtools/dialogs/tools/dialogtool.h" #include "../xml/vpattern.h" class VIndividualMeasurements; diff --git a/src/libs/vwidgets/doubledelegate.cpp b/src/libs/vwidgets/doubledelegate.cpp deleted file mode 100644 index be1927642..000000000 --- a/src/libs/vwidgets/doubledelegate.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************ - ** - ** @file doubledelegate.cpp - ** @author Roman Telezhynskyi - ** @date November 15, 2013 - ** - ** @brief - ** @copyright - ** This source code is part of the Valentine project, a pattern making - ** program, whose allow create and modeling patterns of clothing. - ** Copyright (C) 2013-2015 Valentina project - ** All Rights Reserved. - ** - ** Valentina 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 3 of the License, or - ** (at your option) any later version. - ** - ** Valentina 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 Valentina. If not, see . - ** - *************************************************************************/ - -#include "doubledelegate.h" -#include -#include "../vmisc/def.h" - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief createEditorReturns the widget used to edit the item specified by index for editing. The parent widget and - * style option are used to control how the editor widget appears. - * @param parent parent widget. - * @param option item options. - * @param index index of data item. - * @return editor to be used for editing the data item. - */ -//cppcheck-suppress unusedFunction -DoubleSpinBoxDelegate::DoubleSpinBoxDelegate(QObject *parent): QItemDelegate(parent), lastValue(-10001.0) -{ - //Little hack. Help save value in const method. - connect(this, &DoubleSpinBoxDelegate::NewLastValue, this, &DoubleSpinBoxDelegate::SetLastValue); -} - -QWidget *DoubleSpinBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, - const QModelIndex &index ) const -{ - Q_UNUSED(option); - Q_UNUSED(index); - emit NewLastValue(-10001.0);//Here need reset value to default because we begin work with new item - QDoubleSpinBox *editor = new QDoubleSpinBox(parent); - editor->setLocale(parent->locale()); - editor->setMinimum(-10000.0); - editor->setMaximum(10000.0); - connect(editor, &QDoubleSpinBox::editingFinished, this, &DoubleSpinBoxDelegate::commitAndCloseEditor); - return editor; -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief setEditorData sets the data to be displayed and edited by the editor from the data model item specified by - * the model index. - * @param editor editor. - * @param index index of data item. - */ -//cppcheck-suppress unusedFunction -void DoubleSpinBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const -{ - qreal value = index.model()->data(index, Qt::EditRole).toDouble(); - - QDoubleSpinBox *spinBox = qobject_cast(editor); - SCASSERT(spinBox != nullptr); - spinBox->setValue(value); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief setModelData gets data from the editor widget and stores it in the specified model at the item index. - * @param editor editor. - * @param model model. - * @param index index of data item. - */ -//cppcheck-suppress unusedFunction -void DoubleSpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const -{ - QDoubleSpinBox *spinBox = qobject_cast(editor); - SCASSERT(spinBox != nullptr); - spinBox->interpretText(); - qreal value = spinBox->value(); - - model->setData(index, value, Qt::EditRole); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief updateEditorGeometry updates the editor for the item specified by index according to the style option - * given. - * @param editor editor. - * @param option item options. - * @param index index of data item. - */ -//cppcheck-suppress unusedFunction -void DoubleSpinBoxDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, - const QModelIndex &index) const -{ - Q_UNUSED(index) - editor->setGeometry(option.rect); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief commitAndCloseEditor commit value if changed. - */ -void DoubleSpinBoxDelegate::commitAndCloseEditor() -{ - QDoubleSpinBox *spinBox = qobject_cast(sender()); - SCASSERT(spinBox != nullptr); - qreal value = spinBox->value(); - if (qFuzzyCompare ( lastValue, value ) == false) - { - lastValue = value; - emit commitData(spinBox); - } - emit closeEditor(spinBox); -} - -//--------------------------------------------------------------------------------------------------------------------- -void DoubleSpinBoxDelegate::SetLastValue(const qreal &newLastValue) -{ - lastValue = newLastValue; -} diff --git a/src/libs/vwidgets/doubledelegate.h b/src/libs/vwidgets/doubledelegate.h deleted file mode 100644 index 40fb65f30..000000000 --- a/src/libs/vwidgets/doubledelegate.h +++ /dev/null @@ -1,65 +0,0 @@ -/************************************************************************ - ** - ** @file doubledelegate.h - ** @author Roman Telezhynskyi - ** @date November 15, 2013 - ** - ** @brief - ** @copyright - ** This source code is part of the Valentine project, a pattern making - ** program, whose allow create and modeling patterns of clothing. - ** Copyright (C) 2013-2015 Valentina project - ** All Rights Reserved. - ** - ** Valentina 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 3 of the License, or - ** (at your option) any later version. - ** - ** Valentina 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 Valentina. If not, see . - ** - *************************************************************************/ - -#ifndef DOUBLEDELEGATE_H -#define DOUBLEDELEGATE_H - -#include - -/** - * @brief The DoubleSpinBoxDelegate class a delegate that allows the user to change double values from the model - * using a double spin box widget. - */ -class DoubleSpinBoxDelegate : public QItemDelegate -{ - Q_OBJECT -public: - /** - * @brief DoubleSpinBoxDelegate constructor. - * @param parent parent object. - */ - DoubleSpinBoxDelegate(QObject *parent = nullptr); - QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; - void setEditorData(QWidget *editor, const QModelIndex &index) const; - void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; - void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const; -signals: - /** - * @brief NewLastValue help reset last value in const method (hack). - */ - void NewLastValue(const qreal &newLastValue) const; -public slots: - void commitAndCloseEditor(); -private slots: - void SetLastValue(const qreal &newLastValue); -private: - /** @brief lastValue last saved value. */ - qreal lastValue; -}; - -#endif diff --git a/src/libs/vwidgets/textdelegate.cpp b/src/libs/vwidgets/textdelegate.cpp deleted file mode 100644 index 1a9768454..000000000 --- a/src/libs/vwidgets/textdelegate.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/************************************************************************ - ** - ** @file textdelegate.cpp - ** @author Roman Telezhynskyi - ** @date 29 1, 2014 - ** - ** @brief - ** @copyright - ** This source code is part of the Valentine project, a pattern making - ** program, whose allow create and modeling patterns of clothing. - ** Copyright (C) 2013-2015 Valentina project - ** All Rights Reserved. - ** - ** Valentina 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 3 of the License, or - ** (at your option) any later version. - ** - ** Valentina 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 Valentina. If not, see . - ** - *************************************************************************/ - -#include "textdelegate.h" -#include -#include "../vpatterndb/vcontainer.h" - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief TextDelegate constructor. - * @param parent parent widget. - */ -TextDelegate::TextDelegate(const QString ®ex, VContainer *data, QObject *parent) - : QItemDelegate(parent), lastText(QString("Name_")), regex(regex), data(data) -{ - SCASSERT(data); - //Little hack. Help save lineedit text in const method. - connect(this, &TextDelegate::SaveText, this, &TextDelegate::InitText); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief createEditorReturns the widget used to edit the item specified by index for editing. The parent widget and - * style option are used to control how the editor widget appears. - * @param parent parent widget. - * @param option item options. - * @param index index of data item. - * @return editor to be used for editing the data item. - */ -QWidget *TextDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const -{ - Q_UNUSED(option); - Q_UNUSED(index); - QLineEdit *editor = new QLineEdit(parent); - editor->setLocale(parent->locale()); - //Same regex pattern in xsd file - editor->setValidator( new QRegularExpressionValidator(QRegularExpression(regex)) ); - connect(editor, &QLineEdit::editingFinished, this, &TextDelegate::commitAndCloseEditor); - return editor; -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief setEditorData sets the data to be displayed and edited by the editor from the data model item specified by - * the model index. - * @param editor editor. - * @param index index of data item. - */ -void TextDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const -{ - QString text = index.model()->data(index, Qt::EditRole).toString(); - - QLineEdit *lineEdit = qobject_cast(editor); - SCASSERT(lineEdit != nullptr); - if ( lastText != text && text.isEmpty() == false) - { - //Here need save text, but this method is const, so, we use signal instead. - emit SaveText(text); - } - lineEdit->setText(text); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief setModelData gets data from the editor widget and stores it in the specified model at the item index. - * @param editor editor. - * @param model model. - * @param index index of data item. - */ -void TextDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const -{ - QLineEdit *lineEdit = qobject_cast(editor); - SCASSERT(lineEdit != nullptr); - QString text = lineEdit->text(); - if (text.isEmpty()) - { - text = lastText; - } - - model->setData(index, text, Qt::EditRole); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief updateEditorGeometry updates the editor for the item specified by index according to the style option - * given. - * @param editor editor. - * @param option item options. - * @param index index of data item. - */ -void TextDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, - const QModelIndex &index) const -{ - Q_UNUSED(index) - editor->setGeometry(option.rect); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief commitAndCloseEditor commit value if changed. - */ -void TextDelegate::commitAndCloseEditor() -{ - QLineEdit *lineEdit = qobject_cast(sender()); - SCASSERT(lineEdit != nullptr); - QString text = lineEdit->text(); - if ( lastText != text && text.isEmpty() == false && data->IsUnique(text)) - { - lastText = text; - emit commitData(lineEdit); - } - else if (text.isEmpty() == false) - { - lineEdit->setText(lastText); - emit commitData(lineEdit); - } - emit closeEditor(lineEdit); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief InitText initialize text. - * @param text text. - */ -void TextDelegate::InitText(const QString &text) -{ - lastText = text; -} diff --git a/src/libs/vwidgets/textdelegate.h b/src/libs/vwidgets/textdelegate.h deleted file mode 100644 index d19012d7e..000000000 --- a/src/libs/vwidgets/textdelegate.h +++ /dev/null @@ -1,68 +0,0 @@ -/************************************************************************ - ** - ** @file textdelegate.h - ** @author Roman Telezhynskyi - ** @date 29 1, 2014 - ** - ** @brief - ** @copyright - ** This source code is part of the Valentine project, a pattern making - ** program, whose allow create and modeling patterns of clothing. - ** Copyright (C) 2013-2015 Valentina project - ** All Rights Reserved. - ** - ** Valentina 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 3 of the License, or - ** (at your option) any later version. - ** - ** Valentina 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 Valentina. If not, see . - ** - *************************************************************************/ - -#ifndef TEXTDELEGATE_H -#define TEXTDELEGATE_H - -#include - -class VContainer; -/** - * @brief The TextDelegate class a delegate that allows the user to change text values from the model - * using a edit line widget. - */ -class TextDelegate : public QItemDelegate -{ - Q_OBJECT -public: - TextDelegate(const QString ®ex, VContainer *data, QObject *parent = nullptr); - QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; - void setEditorData(QWidget *editor, const QModelIndex &index) const; - void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; - void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const; -signals: - /** - * @brief SaveText help save text value of lineedit. - * @param text text. - */ - void SaveText(const QString &text) const; -public slots: - void commitAndCloseEditor(); -private slots: - void InitText(const QString &text); -private: - Q_DISABLE_COPY(TextDelegate) - - /** @brief lastValue last saved value. */ - QString lastText; - - QString regex; - VContainer *data; -}; - -#endif // TEXTDELEGATE_H diff --git a/src/libs/vwidgets/vwidgets.pri b/src/libs/vwidgets/vwidgets.pri index 8d2c768f8..051a53b4e 100644 --- a/src/libs/vwidgets/vwidgets.pri +++ b/src/libs/vwidgets/vwidgets.pri @@ -3,8 +3,6 @@ SOURCES += \ $$PWD/stable.cpp \ - $$PWD/doubledelegate.cpp \ - $$PWD/textdelegate.cpp \ $$PWD/vmaingraphicsscene.cpp \ $$PWD/vmaingraphicsview.cpp \ $$PWD/vsimplecurve.cpp \ @@ -16,8 +14,6 @@ SOURCES += \ HEADERS += \ $$PWD/stable.h \ - $$PWD/doubledelegate.h \ - $$PWD/textdelegate.h \ $$PWD/vmaingraphicsscene.h \ $$PWD/vmaingraphicsview.h \ $$PWD/vsimplecurve.h \