Merge with feature

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2015-06-18 21:42:56 +03:00
commit 01d1fc1b83
380 changed files with 4063 additions and 2958 deletions

View file

@ -15,7 +15,9 @@ DEPENDPATH += \
../src/libs/vobj \
../src/libs/vlayout \
../src/libs/vgeometry \
../src/libs/vpatterndb
../src/libs/vpatterndb \
../src/libs/vmisc \
../src/libs/vtools
include(../src/app/app.pri)
include(../src/libs/qmuparser/qmuparser.pri)
@ -25,6 +27,8 @@ include(../src/libs/vobj/vobj.pri)
include(../src/libs/vlayout/vlayout.pri)
include(../src/libs/vgeometry/vgeometry.pri)
include(../src/libs/vpatterndb/vpatterndb.pri)
include(../src/libs/vmisc/vmisc.pri)
include(../src/libs/vtools/vtools.pri)
# Add here path to new translation file with name "valentina_*_*.ts" if you want to add new language.
# Same paths in variable INSTALL_TRANSLATIONS (app.pro).

View file

@ -1,10 +1,6 @@
# Suport subdirectories. Just better project code tree.
include(dialogs/dialogs.pri)
include(tools/tools.pri)
include(widgets/widgets.pri)
include(xml/xml.pri)
include(undocommands/undocommands.pri)
include(visualization/visualization.pri)
include(core/core.pri)
# ADD TO EACH PATH $$PWD VARIABLE!!!!!!

View file

@ -46,10 +46,6 @@ UI_DIR = uic
# Suport subdirectories. Just better project code tree.
include(app.pri)
include(../utils/utils.pri)
# This include path help promoute VMainGraphicsView on main window. Without it compiler can't find path to custom view
INCLUDEPATH += "$${PWD}/widgets"
# Resource files. This files will be included in binary.
RESOURCES += \
@ -87,6 +83,7 @@ CONFIG(debug, debug|release){
-isystem "$${OUT_PWD}/$${UI_DIR}" \
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
-isystem "$${OUT_PWD}/$${RCC_DIR}" \
-isystem "$${OUT_PWD}/../libs/vtools/$${UI_DIR}" \ # For VTools UI files
$$GCC_DEBUG_CXXFLAGS # See Valentina.pri for more details.
noAddressSanitizer{ # For enable run qmake with CONFIG+=noAddressSanitizer
@ -105,6 +102,7 @@ CONFIG(debug, debug|release){
-isystem "$${OUT_PWD}/$${UI_DIR}" \
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
-isystem "$${OUT_PWD}/$${RCC_DIR}" \
-isystem "$${OUT_PWD}/../libs/vtools/$${UI_DIR}" \ # For VTools UI files
$$CLANG_DEBUG_CXXFLAGS # See Valentina.pri for more details.
# -isystem key works only for headers. In some cases it's not enough. But we can't delete this warnings and
@ -564,6 +562,27 @@ else:unix: LIBS += -L$${OUT_PWD}/../libs/vpropertyexplorer/$${DESTDIR} -lvproper
INCLUDEPATH += $${PWD}/../libs/vpropertyexplorer
DEPENDPATH += $${PWD}/../libs/vpropertyexplorer
# When the GNU linker sees a library, it discards all symbols that it doesn't need.
# Add dependent library the first.
#VPatternDB static library (depend on vgeometry)
unix|win32: LIBS += -L$$OUT_PWD/../libs/vpatterndb/$${DESTDIR} -lvpatterndb
INCLUDEPATH += $$PWD/../libs/vpatterndb
DEPENDPATH += $$PWD/../libs/vpatterndb
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
# VGeometry static library (depend on ifc)
unix|win32: LIBS += -L$$OUT_PWD/../libs/vgeometry/$${DESTDIR}/ -lvgeometry
INCLUDEPATH += $$PWD/../libs/vgeometry
DEPENDPATH += $$PWD/../libs/vgeometry
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/vgeometry.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/libvgeometry.a
# IFC static library
unix|win32: LIBS += -L$$OUT_PWD/../libs/ifc/$${DESTDIR}/ -lifc
@ -591,23 +610,33 @@ DEPENDPATH += $$PWD/../libs/vlayout
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vlayout/$${DESTDIR}/vlayout.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vlayout/$${DESTDIR}/libvlayout.a
# VGeometry static library
unix|win32: LIBS += -L$$OUT_PWD/../libs/vgeometry/$${DESTDIR}/ -lvgeometry
#VTools static library (depend on vwidgets and vmisc)
unix|win32: LIBS += -L$$OUT_PWD/../libs/vtools/$${DESTDIR}/ -lvtools
INCLUDEPATH += $$PWD/../libs/vgeometry
DEPENDPATH += $$PWD/../libs/vgeometry
INCLUDEPATH += $$PWD/../libs/vtools
INCLUDEPATH += $$OUT_PWD/../libs/vtools/$${UI_DIR} # For UI files
DEPENDPATH += $$PWD/../libs/vtools
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/vgeometry.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/libvgeometry.a
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vtools/$${DESTDIR}/vtools.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vtools/$${DESTDIR}/libvtools.a
#VPatternDB staic library
unix|win32: LIBS += -L$$OUT_PWD/../libs/vpatterndb/$${DESTDIR}/ -lvpatterndb
#VMisc static library
unix|win32: LIBS += -L$$OUT_PWD/../libs/vmisc/$${DESTDIR}/ -lvmisc
INCLUDEPATH += $$PWD/../libs/vpatterndb
DEPENDPATH += $$PWD/../libs/vpatterndb
INCLUDEPATH += $$PWD/../libs/vmisc
DEPENDPATH += $$PWD/../libs/vmisc
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vmisc/$${DESTDIR}/vmisc.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vmisc/$${DESTDIR}/libvmisc.a
#VWidgets static library
unix|win32: LIBS += -L$$OUT_PWD/../libs/vwidgets/$${DESTDIR}/ -lvwidgets
INCLUDEPATH += $$PWD/../libs/vwidgets
DEPENDPATH += $$PWD/../libs/vwidgets
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vwidgets/$${DESTDIR}/vwidgets.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vwidgets/$${DESTDIR}/libvwidgets.a
noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
# do nothing

View file

@ -3,16 +3,12 @@
HEADERS += \
$$PWD/vapplication.h \
$$PWD/undoevent.h \
$$PWD/vsettings.h \
$$PWD/backport/qcommandlineoption.h \
$$PWD/backport/qcommandlineparser.h \
$$PWD/vformula.h
$$PWD/vformulaproperty.h \
$$PWD/vformulapropertyeditor.h \
$$PWD/vtooloptionspropertybrowser.h
SOURCES += \
$$PWD/vapplication.cpp \
$$PWD/undoevent.cpp \
$$PWD/vsettings.cpp \
$$PWD/backport/qcommandlineoption.cpp \
$$PWD/backport/qcommandlineparser.cpp \
$$PWD/vformula.cpp
$$PWD/vformulaproperty.cpp \
$$PWD/vformulapropertyeditor.cpp \
$$PWD/vtooloptionspropertybrowser.cpp

View file

@ -32,9 +32,9 @@
#include "../libs/ifc/exception/vexceptionconversionerror.h"
#include "../libs/ifc/exception/vexceptionemptyparameter.h"
#include "../libs/ifc/exception/vexceptionwrongid.h"
#include "vmaingraphicsview.h"
#include "../libs/vwidgets/vmaingraphicsview.h"
#include "../version.h"
#include "../../utils/logging.h"
#include "../vmisc/logging.h"
#include <QDebug>
#include <QDir>
@ -156,10 +156,9 @@ const QString VApplication::GistFileName = QStringLiteral("gist.json");
* @param argv command line.
*/
VApplication::VApplication(int &argc, char **argv)
: QApplication(argc, argv), _patternUnit(Unit::Cm), _patternType(MeasurementsType::Individual),
_widthMainLine(DefWidth), _widthHairLine(DefWidth/3.0), trVars(nullptr),
undoStack(nullptr), sceneView(nullptr), currentScene(nullptr), autoSaveTimer(nullptr), mainWindow(nullptr),
openingPattern(false), settings(nullptr), doc(nullptr), log(nullptr),
: VAbstractApplication(argc, argv),
trVars(nullptr), autoSaveTimer(nullptr),
log(nullptr),
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
out(nullptr), logLock(nullptr)
#else
@ -167,8 +166,6 @@ VApplication::VApplication(int &argc, char **argv)
#endif
{
undoStack = new QUndoStack(this);
InitLineWidth();
}
//---------------------------------------------------------------------------------------------------------------------
@ -226,15 +223,6 @@ void VApplication::NewValentina(const QString &fileName)
}
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::CheckFactor(qreal &oldFactor, const qreal &Newfactor)
{
if (Newfactor <= 2 && Newfactor >= 0.5)
{
oldFactor = Newfactor;
}
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief notify Reimplemented from QApplication::notify().
@ -349,27 +337,6 @@ QString VApplication::translationsPath() const
#endif
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::InitLineWidth()
{
switch (_patternUnit)
{
case Unit::Mm:
_widthMainLine = DefWidth;
break;
case Unit::Cm:
_widthMainLine = DefWidth/10.0;
break;
case Unit::Inch:
_widthMainLine = DefWidth/25.4;
break;
default:
_widthMainLine = DefWidth;
break;
}
_widthHairLine = _widthMainLine/3.0;
}
//---------------------------------------------------------------------------------------------------------------------
QString VApplication::LogDirPath() const
{
@ -489,13 +456,6 @@ void VApplication::ClearOldLogs() const
}
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::setPatternUnit(const Unit &patternUnit)
{
_patternUnit = patternUnit;
InitLineWidth();
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::InitOptions()
{
@ -524,7 +484,7 @@ void VApplication::InitOptions()
qDebug()<<"Command-line arguments:"<<this->arguments();
qDebug()<<"Process ID:"<<this->applicationPid();
const QString checkedLocale = getSettings()->GetLocale();
const QString checkedLocale = Settings()->GetLocale();
qDebug()<<"Checked locale:"<<checkedLocale;
QTranslator *qtTranslator = new QTranslator(this);
@ -560,121 +520,6 @@ void VApplication::InitOptions()
}
}
//---------------------------------------------------------------------------------------------------------------------
double VApplication::toPixel(double val) const
{
return ToPixel(val, _patternUnit);
}
//---------------------------------------------------------------------------------------------------------------------
double VApplication::fromPixel(double pix) const
{
return FromPixel(pix, _patternUnit);
}
//---------------------------------------------------------------------------------------------------------------------
QWidget *VApplication::getMainWindow() const
{
return mainWindow;
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::setMainWindow(QWidget *value)
{
SCASSERT(value != nullptr)
mainWindow = value;
}
//---------------------------------------------------------------------------------------------------------------------
bool VApplication::getOpeningPattern() const
{
return openingPattern;
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::setOpeningPattern()
{
openingPattern = !openingPattern;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief VApplication::OpenSettings get acsses to application settings.
*
* Because we can create object in constructor we open file separately.
*/
void VApplication::OpenSettings()
{
settings = new VSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(),
QApplication::applicationName(), this);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief VApplication::getSettings hide settings constructor.
* @return pointer to class for acssesing to settings in ini file.
*/
VSettings *VApplication::getSettings()
{
SCASSERT(settings != nullptr);
return settings;
}
//---------------------------------------------------------------------------------------------------------------------
QGraphicsScene *VApplication::getCurrentScene() const
{
SCASSERT(currentScene != nullptr);
return currentScene;
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::setCurrentScene(QGraphicsScene *value)
{
currentScene = value;
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::setOverrideCursor(const QString &pixmapPath, int hotX, int hotY)
{
#ifndef QT_NO_CURSOR
QPixmap oldPixmap;
if (QCursor *oldCursor = QGuiApplication::overrideCursor())
{
oldPixmap = oldCursor->pixmap();
}
QPixmap newPixmap(pixmapPath);
QImage oldImage = oldPixmap.toImage();
QImage newImage = newPixmap.toImage();
if (oldImage != newImage )
{
QApplication::setOverrideCursor(QCursor(newPixmap, hotX, hotY));
}
#endif
}
//---------------------------------------------------------------------------------------------------------------------
void VApplication::restoreOverrideCursor(const QString &pixmapPath)
{
#ifndef QT_NO_CURSOR
QPixmap oldPixmap;
if (QCursor *oldCursor = QGuiApplication::overrideCursor())
{
oldPixmap = oldCursor->pixmap();
}
QPixmap newPixmap(pixmapPath);
QImage oldImage = oldPixmap.toImage();
QImage newImage = newPixmap.toImage();
if (oldImage == newImage )
{
QApplication::restoreOverrideCursor();
}
#endif
}
//---------------------------------------------------------------------------------------------------------------------
QStringList VApplication::LabelLanguages()
{
@ -731,7 +576,7 @@ const VTranslateVars *VApplication::TrVars()
//---------------------------------------------------------------------------------------------------------------------
void VApplication::InitTrVars()
{
trVars = new VTranslateVars(getSettings());
trVars = new VTranslateVars(Settings());
}
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)

View file

@ -29,14 +29,13 @@
#ifndef VAPPLICATION_H
#define VAPPLICATION_H
#include <QApplication>
#include "../libs/vmisc/vabstractapplication.h"
#include "../options.h"
#include "../widgets/vmaingraphicsview.h"
#include "../libs/vwidgets/vmaingraphicsview.h"
#include "../libs/vpatterndb/vtranslatevars.h"
#include "vsettings.h"
class VApplication;// used in define
class QUndoStack;
class VApplication;// use in define
class VMainGraphicsView;
class VPattern;
class QFile;
@ -47,78 +46,39 @@ class QLockFile;
#if defined(qApp)
#undef qApp
#endif
#define qApp (static_cast<VApplication*>(QCoreApplication::instance()))
#define qApp (static_cast<VApplication*>(VAbstractApplication::instance()))
/**
* @brief The VApplication class reimplamentation QApplication class.
*/
class VApplication : public QApplication
class VApplication : public VAbstractApplication
{
Q_OBJECT
public:
VApplication(int &argc, char ** argv);
virtual ~VApplication();
static void NewValentina(const QString &fileName = QString());
static void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
virtual bool notify(QObject * receiver, QEvent * event);
Unit patternUnit() const;
const Unit *patternUnitP() const;
void setPatternUnit(const Unit &patternUnit);
MeasurementsType patternType() const;
void setPatternType(const MeasurementsType &patternType);
void InitOptions();
double toPixel(double val) const;
double fromPixel(double pix) const;
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
static bool TryLock(QLockFile *lock);
#endif //QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
QString translationsPath() const;
qreal widthMainLine() const;
qreal widthHairLine() const;
template <typename T>
QString LocaleToString(const T &value)
{
QLocale loc;
qApp->getSettings()->GetOsSeparator() ? loc = QLocale::system() : loc = QLocale(QLocale::C);
return loc.toString(value);
}
QUndoStack *getUndoStack() const;
VMainGraphicsView *getSceneView() const;
void setSceneView(VMainGraphicsView *value);
QTimer *getAutoSaveTimer() const;
void setAutoSaveTimer(QTimer *value);
QWidget *getMainWindow() const;
void setMainWindow(QWidget *value);
bool getOpeningPattern() const;
void setOpeningPattern();
void OpenSettings();
VSettings *getSettings();
QGraphicsScene *getCurrentScene() const;
void setCurrentScene(QGraphicsScene *value);
void setCurrentDocument(VPattern *doc);
VPattern *getCurrentDocument()const;
static void setOverrideCursor(const QString & pixmapPath, int hotX = -1, int hotY = -1);
static void restoreOverrideCursor(const QString & pixmapPath);
static QStringList LabelLanguages();
void StartLogging();
QTextStream *LogFile();
const VTranslateVars *TrVars();
virtual const VTranslateVars *TrVars();
void InitTrVars();
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
static void DrMingw();
void CollectReports() const;
@ -131,31 +91,9 @@ private slots:
private:
Q_DISABLE_COPY(VApplication)
Unit _patternUnit;
MeasurementsType _patternType;
qreal _widthMainLine;
qreal _widthHairLine;
VTranslateVars *trVars;
QUndoStack *undoStack;
VMainGraphicsView *sceneView;
QGraphicsScene *currentScene;
QTimer *autoSaveTimer;
/**
* @brief mainWindow pointer to main window. Usefull if need create modal dialog. Without pointer to main window
* modality doesn't work.
*/
QWidget *mainWindow;
/**
* @brief openingPattern true when we opening pattern. If something will be wrong in formula this help understand if
* we can allow user use Undo option.
*/
bool openingPattern;
/**
* @brief settings pointer to settings. Help hide constructor creation settings. Make make code more readable.
*/
VSettings *settings;
VPattern *doc;
QFile *log;
QTextStream *out;
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
@ -180,60 +118,6 @@ private:
void ClearOldLogs()const;
};
//---------------------------------------------------------------------------------------------------------------------
inline Unit VApplication::patternUnit() const
{
return _patternUnit;
}
//---------------------------------------------------------------------------------------------------------------------
inline const Unit *VApplication::patternUnitP() const
{
return &_patternUnit;
}
//---------------------------------------------------------------------------------------------------------------------
inline MeasurementsType VApplication::patternType() const
{
return _patternType;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VApplication::setPatternType(const MeasurementsType &patternType)
{
_patternType = patternType;
}
//---------------------------------------------------------------------------------------------------------------------
inline qreal VApplication::widthMainLine() const
{
return _widthMainLine;
}
//---------------------------------------------------------------------------------------------------------------------
inline qreal VApplication::widthHairLine() const
{
return _widthHairLine;
}
//---------------------------------------------------------------------------------------------------------------------
inline QUndoStack *VApplication::getUndoStack() const
{
return undoStack;
}
//---------------------------------------------------------------------------------------------------------------------
inline VMainGraphicsView *VApplication::getSceneView() const
{
return sceneView;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VApplication::setSceneView(VMainGraphicsView *value)
{
sceneView = value;
}
//---------------------------------------------------------------------------------------------------------------------
inline QTimer *VApplication::getAutoSaveTimer() const
{
@ -246,17 +130,4 @@ inline void VApplication::setAutoSaveTimer(QTimer *value)
autoSaveTimer = value;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VApplication::setCurrentDocument(VPattern *doc)
{
this->doc = doc;
}
//---------------------------------------------------------------------------------------------------------------------
inline VPattern *VApplication::getCurrentDocument() const
{
SCASSERT(doc != nullptr)
return doc;
}
#endif // VAPPLICATION_H

View file

@ -32,7 +32,7 @@
#include "../../libs/vpropertyexplorer/vproperty_p.h"
#include "vformulapropertyeditor.h"
#include "../../libs/vpropertyexplorer/vproperties.h"
#include "../core/vformula.h"
#include "../../libs/vpatterndb/vformula.h"
enum class ChildType : char {Invalid = 0, Value = 1, Formula = 2};

View file

@ -35,7 +35,7 @@
#include <QColorDialog>
#include "../../libs/vpropertyexplorer/vproperty.h"
#include "../dialogs/tools/dialogeditwrongformula.h"
#include "../../libs/vtools/dialogs/support/dialogeditwrongformula.h"
using namespace VPE;

View file

@ -35,7 +35,7 @@
#include <QLabel>
#include <QSpacerItem>
#include "../core/vformula.h"
#include "../../libs/vpatterndb/vformula.h"
class VFormulaPropertyEditor : public QWidget
{

View file

@ -27,14 +27,14 @@
*************************************************************************/
#include "vtooloptionspropertybrowser.h"
#include "../tools/drawTools/drawtools.h"
#include "../../libs/vtools/tools/drawTools/drawtools.h"
#include "../core/vapplication.h"
#include "vmaingraphicsview.h"
#include "../visualization/vgraphicssimpletextitem.h"
#include "../visualization/vcontrolpointspline.h"
#include "../../libs/vwidgets/vmaingraphicsview.h"
#include "../../libs/vwidgets/vgraphicssimpletextitem.h"
#include "../../libs/vwidgets/vcontrolpointspline.h"
#include "../../libs/vpropertyexplorer/vproperties.h"
#include "vformulaproperty.h"
#include "../core/vformula.h"
#include "../../libs/vpatterndb/vformula.h"
#include <QDockWidget>
#include <QHBoxLayout>

View file

@ -33,7 +33,7 @@
#include <QVBoxLayout>
#include <QStackedWidget>
#include <QCloseEvent>
#include "../core/vapplication.h"
#include "../../core/vapplication.h"
//---------------------------------------------------------------------------------------------------------------------
ConfigDialog::ConfigDialog(QWidget *parent) :
@ -93,7 +93,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) :
setWindowTitle(tr("Config Dialog"));
this->setFixedSize(QSize(750, 550));
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
}
//---------------------------------------------------------------------------------------------------------------------
@ -157,7 +157,7 @@ void ConfigDialog::Apply()
default:
break;
}
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
emit UpdateProperties();
setResult(QDialog::Accepted);
}

View file

@ -29,7 +29,7 @@
#include "communitypage.h"
#include "../../../options.h"
#include "../../../core/vapplication.h"
#include "../../../core/vsettings.h"
#include "../../../../libs/vmisc/vsettings.h"
#include <QGroupBox>
#include <QLabel>
#include <QSettings>
@ -58,17 +58,17 @@ CommunityPage::CommunityPage(QWidget *parent):
//---------------------------------------------------------------------------------------------------------------------
void CommunityPage::Apply()
{
qApp->getSettings()->SetServer(this->server->text());
qApp->getSettings()->SetServerSecure(this->secureComm->isChecked());
qApp->getSettings()->SetProxy(this->useProxy->isChecked());
qApp->getSettings()->SetProxyAddress(this->proxyAddress->text());
qApp->getSettings()->SetProxyPort(this->proxyPort->text());
qApp->getSettings()->SetProxyUser(this->proxyUser->text());
qApp->getSettings()->SetProxyPass(this->proxyPass->text());
qApp->Settings()->SetServer(this->server->text());
qApp->Settings()->SetServerSecure(this->secureComm->isChecked());
qApp->Settings()->SetProxy(this->useProxy->isChecked());
qApp->Settings()->SetProxyAddress(this->proxyAddress->text());
qApp->Settings()->SetProxyPort(this->proxyPort->text());
qApp->Settings()->SetProxyUser(this->proxyUser->text());
qApp->Settings()->SetProxyPass(this->proxyPass->text());
qApp->getSettings()->SetUsername(this->username->text());
qApp->getSettings()->SetSavePassword(this->savePassword->isChecked());
qApp->getSettings()->SetUserPassword(this->userpassword->text());
qApp->Settings()->SetUsername(this->username->text());
qApp->Settings()->SetSavePassword(this->savePassword->isChecked());
qApp->Settings()->SetUserPassword(this->userpassword->text());
}
@ -103,9 +103,9 @@ QGroupBox *CommunityPage::ServerGroup()
QGroupBox *ServerGroup = new QGroupBox(tr("Server"));
QFormLayout *serverLayout = new QFormLayout;
CommunityPage::add_lineedit(&this->server, serverLayout, qApp->getSettings()->GetServer(), tr("Server name/IP"));
CommunityPage::add_lineedit(&this->server, serverLayout, qApp->Settings()->GetServer(), tr("Server name/IP"));
CommunityPage::add_checkbox(&this->secureComm, serverLayout, qApp->getSettings()->GetServerSecure(),
CommunityPage::add_checkbox(&this->secureComm, serverLayout, qApp->Settings()->GetServerSecure(),
tr("Secure connection"));
ServerGroup->setLayout(serverLayout);
@ -137,12 +137,12 @@ QGroupBox *CommunityPage::ProxyGroup()
QFormLayout *proxyLayout = new QFormLayout;
CommunityPage::add_checkbox(&this->useProxy, proxyLayout, qApp->getSettings()->GetProxy(), tr("Use Proxy"));
CommunityPage::add_lineedit(&this->proxyAddress, proxyLayout, qApp->getSettings()->GetProxyAddress(),
CommunityPage::add_checkbox(&this->useProxy, proxyLayout, qApp->Settings()->GetProxy(), tr("Use Proxy"));
CommunityPage::add_lineedit(&this->proxyAddress, proxyLayout, qApp->Settings()->GetProxyAddress(),
tr("Proxy address"));
CommunityPage::add_lineedit(&this->proxyPort, proxyLayout, qApp->getSettings()->GetProxyPort(), tr("Proxy port"));
CommunityPage::add_lineedit(&this->proxyUser, proxyLayout, qApp->getSettings()->GetProxyUser(), tr("Proxy user"));
CommunityPage::add_lineedit(&this->proxyPass, proxyLayout, qApp->getSettings()->GetProxyPass(), tr("Proxy pass"));
CommunityPage::add_lineedit(&this->proxyPort, proxyLayout, qApp->Settings()->GetProxyPort(), tr("Proxy port"));
CommunityPage::add_lineedit(&this->proxyUser, proxyLayout, qApp->Settings()->GetProxyUser(), tr("Proxy user"));
CommunityPage::add_lineedit(&this->proxyPass, proxyLayout, qApp->Settings()->GetProxyPass(), tr("Proxy pass"));
connect(this->useProxy, &QCheckBox::stateChanged, this, &CommunityPage::ProxyCheckChanged);
this->ProxyCheckChanged();
@ -157,10 +157,10 @@ QGroupBox *CommunityPage::UserGroup()
QGroupBox *userGroup = new QGroupBox(tr("User settings"));
QFormLayout *userLayout = new QFormLayout;
CommunityPage::add_lineedit(&this->username, userLayout, qApp->getSettings()->GetUsername(), tr("User Name"));
CommunityPage::add_checkbox(&this->savePassword, userLayout, qApp->getSettings()->GetSavePassword(),
CommunityPage::add_lineedit(&this->username, userLayout, qApp->Settings()->GetUsername(), tr("User Name"));
CommunityPage::add_checkbox(&this->savePassword, userLayout, qApp->Settings()->GetSavePassword(),
tr("Save password"));
CommunityPage::add_lineedit(&this->userpassword, userLayout, qApp->getSettings()->GetUserPassword(),
CommunityPage::add_lineedit(&this->userpassword, userLayout, qApp->Settings()->GetUserPassword(),
tr("Password"));
connect(this->savePassword, &QCheckBox::stateChanged, this, &CommunityPage::PasswordCheckChanged);

View file

@ -29,7 +29,7 @@
#include "configurationpage.h"
#include "../../../options.h"
#include "../../../core/vapplication.h"
#include "../../../core/vsettings.h"
#include "../../../../libs/vmisc/vsettings.h"
#include <QDir>
#include <QGroupBox>
#include <QLabel>
@ -67,23 +67,23 @@ ConfigurationPage::ConfigurationPage(QWidget *parent)
//---------------------------------------------------------------------------------------------------------------------
void ConfigurationPage::Apply()
{
qApp->getSettings()->SetAutosaveState(autoSaveCheck->isChecked());
qApp->getSettings()->SetAutosaveTime(autoTime->value());
qApp->Settings()->SetAutosaveState(autoSaveCheck->isChecked());
qApp->Settings()->SetAutosaveTime(autoTime->value());
QTimer *autoSaveTimer = qApp->getAutoSaveTimer();
SCASSERT(autoSaveTimer);
autoSaveCheck->isChecked() ? autoSaveTimer->start(autoTime->value()*60000) : autoSaveTimer->stop();
qApp->getSettings()->SetOsSeparator(osOptionCheck->isChecked());
qApp->getSettings()->SetSendReportState(sendReportCheck->isChecked());
qApp->getSettings()->SetConfirmItemDelete(askPointDeletionCheck->isChecked());
qApp->getSettings()->SetToolBarStyle(toolBarStyleCheck->isChecked());
qApp->Settings()->SetOsSeparator(osOptionCheck->isChecked());
qApp->Settings()->SetSendReportState(sendReportCheck->isChecked());
qApp->Settings()->SetConfirmItemDelete(askPointDeletionCheck->isChecked());
qApp->Settings()->SetToolBarStyle(toolBarStyleCheck->isChecked());
if (langChanged)
{
const QString locale = qvariant_cast<QString>(langCombo->itemData(langCombo->currentIndex()));
qApp->getSettings()->SetLocale(locale);
qApp->Settings()->SetLocale(locale);
langChanged = false;
const QString text = tr("Setup user interface language updated and will be used the next time start") + " " +
QApplication::applicationName();
@ -92,7 +92,7 @@ void ConfigurationPage::Apply()
if (this->unitChanged)
{
const QString unit = qvariant_cast<QString>(this->unitCombo->itemData(this->unitCombo->currentIndex()));
qApp->getSettings()->SetUnit(unit);
qApp->Settings()->SetUnit(unit);
this->unitChanged = false;
const QString text = tr("Default unit updated and will be used the next pattern creation");
QMessageBox::information(this, QApplication::applicationName(), text);
@ -100,7 +100,7 @@ void ConfigurationPage::Apply()
if (labelLangChanged)
{
const QString locale = qvariant_cast<QString>(labelCombo->itemData(labelCombo->currentIndex()));
qApp->getSettings()->SetLabelLanguage(locale);
qApp->Settings()->SetLabelLanguage(locale);
labelLangChanged = false;
}
}
@ -129,11 +129,11 @@ QGroupBox *ConfigurationPage::SaveGroup()
QGroupBox *saveGroup = new QGroupBox(tr("Save"));
autoSaveCheck = new QCheckBox(tr("Auto-save modified pattern"));
autoSaveCheck->setChecked(qApp->getSettings()->GetAutosaveState());
autoSaveCheck->setChecked(qApp->Settings()->GetAutosaveState());
autoTime = new QSpinBox();
autoTime->setRange(1, 60);
autoTime->setValue(qApp->getSettings()->GetAutosaveTime());
autoTime->setValue(qApp->Settings()->GetAutosaveTime());
autoTime->setSuffix(tr("min"));
QHBoxLayout *autosaveLayout = new QHBoxLayout;
@ -181,7 +181,7 @@ QGroupBox *ConfigurationPage::LangGroup()
}
// set default translators and language checked
qint32 index = langCombo->findData(qApp->getSettings()->GetLocale());
qint32 index = langCombo->findData(qApp->Settings()->GetLocale());
if (index != -1)
{
langCombo->setCurrentIndex(index);
@ -197,7 +197,7 @@ QGroupBox *ConfigurationPage::LangGroup()
QLabel *separatorLabel = new QLabel(tr("Decimal separator parts"));
osOptionCheck = new QCheckBox(tr("With OS options (%1)").arg(QLocale::system().decimalPoint().toLatin1()));
osOptionCheck->setChecked(qApp->getSettings()->GetOsSeparator());
osOptionCheck->setChecked(qApp->Settings()->GetOsSeparator());
QHBoxLayout *separatorLayout = new QHBoxLayout;
separatorLayout->addWidget(separatorLabel);
@ -212,7 +212,7 @@ QGroupBox *ConfigurationPage::LangGroup()
this->unitCombo->addItem(tr("Inches"), "in");
// set default unit
qint32 indexUnit = this->unitCombo->findData(qApp->getSettings()->GetUnit());
qint32 indexUnit = this->unitCombo->findData(qApp->Settings()->GetUnit());
if (indexUnit != -1)
{
this->unitCombo->setCurrentIndex(indexUnit);
@ -231,7 +231,7 @@ QGroupBox *ConfigurationPage::LangGroup()
SetLabelComboBox(VApplication::LabelLanguages());
index = labelCombo->findData(qApp->getSettings()->GetLabelLanguage());
index = labelCombo->findData(qApp->Settings()->GetLabelLanguage());
if (index != -1)
{
labelCombo->setCurrentIndex(index);
@ -261,7 +261,7 @@ QGroupBox *ConfigurationPage::SendGroup()
QGroupBox *sendGroup = new QGroupBox(tr("Send crash reports"));
sendReportCheck = new QCheckBox(tr("Send crash reports (recommended)"));
sendReportCheck->setChecked(qApp->getSettings()->GetSendReportState());
sendReportCheck->setChecked(qApp->Settings()->GetSendReportState());
QLabel *description = new QLabel(tr("After each crash Valentina collect information that may help us fix a "
"problem. We do not collect any personal information. Find more about what "
@ -286,7 +286,7 @@ QGroupBox *ConfigurationPage::DrawGroup()
QGroupBox *drawGroup = new QGroupBox(tr("Pattern Editing"));
askPointDeletionCheck = new QCheckBox(tr("Confirm item deletion"));
askPointDeletionCheck->setChecked(qApp->getSettings()->GetConfirmItemDelete());
askPointDeletionCheck->setChecked(qApp->Settings()->GetConfirmItemDelete());
QVBoxLayout *editLayout = new QVBoxLayout;
editLayout->addWidget(askPointDeletionCheck);
@ -301,7 +301,7 @@ QGroupBox *ConfigurationPage::ToolBarGroup()
QGroupBox *toolBarGroup = new QGroupBox(tr("Toolbar"));
toolBarStyleCheck = new QCheckBox(tr("The text appears under the icon. (recommended for beginners.)"));
toolBarStyleCheck->setChecked(qApp->getSettings()->GetToolBarStyle());
toolBarStyleCheck->setChecked(qApp->Settings()->GetToolBarStyle());
QVBoxLayout *editLayout = new QVBoxLayout;
editLayout->addWidget(toolBarStyleCheck);

View file

@ -29,7 +29,7 @@
#include "pathpage.h"
#include "../../../options.h"
#include "../../../core/vapplication.h"
#include "../../../core/vsettings.h"
#include "../../../../libs/vmisc/vsettings.h"
#include <QDir>
#include <QGroupBox>
#include <QLabel>
@ -62,10 +62,10 @@ PathPage::PathPage(QWidget *parent)
//---------------------------------------------------------------------------------------------------------------------
void PathPage::Apply()
{
qApp->getSettings()->SetPathIndividualMeasurements(pathTable->item(0, 1)->text());
qApp->getSettings()->SetPathStandardMeasurements(pathTable->item(1, 1)->text());
qApp->getSettings()->SetPathPattern(pathTable->item(2, 1)->text());
qApp->getSettings()->SetPathLayout(pathTable->item(3, 1)->text());
qApp->Settings()->SetPathIndividualMeasurements(pathTable->item(0, 1)->text());
qApp->Settings()->SetPathStandardMeasurements(pathTable->item(1, 1)->text());
qApp->Settings()->SetPathPattern(pathTable->item(2, 1)->text());
qApp->Settings()->SetPathLayout(pathTable->item(3, 1)->text());
}
//---------------------------------------------------------------------------------------------------------------------
@ -113,16 +113,16 @@ void PathPage::EditPath()
switch (row)
{
case 0: // individual measurements
path = qApp->getSettings()->GetPathIndividualMeasurements();
path = qApp->Settings()->GetPathIndividualMeasurements();
break;
case 1: // standard measurements
path = qApp->getSettings()->GetPathStandardMeasurements();
path = qApp->Settings()->GetPathStandardMeasurements();
break;
case 2: // pattern path
path = qApp->getSettings()->GetPathPattern();
path = qApp->Settings()->GetPathPattern();
break;
case 3: // layout path
path = qApp->getSettings()->GetPathLayout();
path = qApp->Settings()->GetPathLayout();
break;
default:
break;
@ -182,29 +182,29 @@ void PathPage::InitTable()
{
pathTable->setItem(0, 0, new QTableWidgetItem(tr("Individual measurements")));
QTableWidgetItem *item = new QTableWidgetItem(qApp->getSettings()->GetPathIndividualMeasurements());
item->setToolTip(qApp->getSettings()->GetPathIndividualMeasurements());
QTableWidgetItem *item = new QTableWidgetItem(qApp->Settings()->GetPathIndividualMeasurements());
item->setToolTip(qApp->Settings()->GetPathIndividualMeasurements());
pathTable->setItem(0, 1, item);
}
{
pathTable->setItem(1, 0, new QTableWidgetItem(tr("Standard measurements")));
QTableWidgetItem *item = new QTableWidgetItem(qApp->getSettings()->GetPathStandardMeasurements());
item->setToolTip(qApp->getSettings()->GetPathStandardMeasurements());
QTableWidgetItem *item = new QTableWidgetItem(qApp->Settings()->GetPathStandardMeasurements());
item->setToolTip(qApp->Settings()->GetPathStandardMeasurements());
pathTable->setItem(1, 1, item);
}
{
pathTable->setItem(2, 0, new QTableWidgetItem(tr("Patterns")));
QTableWidgetItem *item = new QTableWidgetItem(qApp->getSettings()->GetPathPattern());
item->setToolTip(qApp->getSettings()->GetPathPattern());
QTableWidgetItem *item = new QTableWidgetItem(qApp->Settings()->GetPathPattern());
item->setToolTip(qApp->Settings()->GetPathPattern());
pathTable->setItem(2, 1, item);
}
{
pathTable->setItem(3, 0, new QTableWidgetItem(tr("Layout")));
QTableWidgetItem *item = new QTableWidgetItem(qApp->getSettings()->GetPathLayout());
item->setToolTip(qApp->getSettings()->GetPathLayout());
QTableWidgetItem *item = new QTableWidgetItem(qApp->Settings()->GetPathLayout());
item->setToolTip(qApp->Settings()->GetPathLayout());
pathTable->setItem(3, 1, item);
}

View file

@ -29,8 +29,8 @@
#include "patternpage.h"
#include "../../../options.h"
#include "../../../core/vapplication.h"
#include "../../../core/vsettings.h"
#include "../../../widgets/vmaingraphicsview.h"
#include "../../../../libs/vmisc/vsettings.h"
#include "../../../../libs/vwidgets/vmaingraphicsview.h"
#include <QGroupBox>
#include <QLabel>
#include <QSettings>
@ -58,17 +58,17 @@ PatternPage::PatternPage(QWidget *parent):
//---------------------------------------------------------------------------------------------------------------------
void PatternPage::Apply()
{
qApp->getSettings()->SetUser(userName->text());
qApp->Settings()->SetUser(userName->text());
// Scene antialiasing
qApp->getSettings()->SetGraphicalOutput(graphOutputCheck->isChecked());
qApp->Settings()->SetGraphicalOutput(graphOutputCheck->isChecked());
qApp->getSceneView()->setRenderHint(QPainter::Antialiasing, graphOutputCheck->isChecked());
qApp->getSceneView()->setRenderHint(QPainter::SmoothPixmapTransform, graphOutputCheck->isChecked());
/* Maximum number of commands in undo stack may only be set when the undo stack is empty, since setting it on a
* non-empty stack might delete the command at the current index. Calling setUndoLimit() on a non-empty stack
* prints a warning and does nothing.*/
qApp->getSettings()->SetUndoCount(undoCount->value());
qApp->Settings()->SetUndoCount(undoCount->value());
}
//---------------------------------------------------------------------------------------------------------------------
@ -78,7 +78,7 @@ QGroupBox *PatternPage::UserGroup()
QLabel *nameLabel = new QLabel(tr("User name"));
userName = new QLineEdit;
userName->setText(qApp->getSettings()->GetUser());
userName->setText(qApp->Settings()->GetUser());
QHBoxLayout *nameLayout = new QHBoxLayout;
nameLayout->addWidget(nameLabel);
@ -96,7 +96,7 @@ QGroupBox *PatternPage::GraphOutputGroup()
QGroupBox *graphOutputGroup = new QGroupBox(tr("Graphical output"));
graphOutputCheck = new QCheckBox(tr("Use antialiasing"));
graphOutputCheck->setChecked(qApp->getSettings()->GetGraphicalOutput());
graphOutputCheck->setChecked(qApp->Settings()->GetGraphicalOutput());
QHBoxLayout *graphLayout = new QHBoxLayout;
graphLayout->addWidget(graphOutputCheck);
@ -114,7 +114,7 @@ QGroupBox *PatternPage::UndoGroup()
QLabel *undoLabel = new QLabel(tr("Count steps (0 - no limit)"));
undoCount = new QSpinBox;
undoCount->setMinimum(0);
undoCount->setValue(qApp->getSettings()->GetUndoCount());
undoCount->setValue(qApp->Settings()->GetUndoCount());
QHBoxLayout *countLayout = new QHBoxLayout;
countLayout->addWidget(undoLabel);

View file

@ -33,7 +33,7 @@
#include <QDesktopServices>
#include <QMessageBox>
#include "../../options.h"
#include "../core/vapplication.h"
#include "../../core/vapplication.h"
//---------------------------------------------------------------------------------------------------------------------
DialogAboutApp::DialogAboutApp(QWidget *parent) :
@ -42,7 +42,7 @@ DialogAboutApp::DialogAboutApp(QWidget *parent) :
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
ui->label_Valentina_Version->setText(QString("Valentina %1").arg(APP_VERSION_STR));
ui->labelBuildRevision->setText(QString("Build revision: %1").arg(BUILD_REVISION));

View file

@ -31,10 +31,10 @@
#include "../../libs/vgeometry/varc.h"
#include "../../libs/vgeometry/vsplinepath.h"
#include "../../libs/vgeometry/vpointf.h"
#include "../../tools/vabstracttool.h"
#include "../../tools/drawTools/vtoolcutspline.h"
#include "../../tools/drawTools/vtoolcutsplinepath.h"
#include "../../tools/drawTools/vtoolcutarc.h"
#include "../../libs/vtools/tools/vabstracttool.h"
#include "../../libs/vtools/tools/drawTools/vtoolcutspline.h"
#include "../../libs/vtools/tools/drawTools/vtoolcutsplinepath.h"
#include "../../libs/vtools/tools/drawTools/vtoolcutarc.h"
#include "../../xml/vpattern.h"
//---------------------------------------------------------------------------------------------------------------------
@ -50,7 +50,7 @@ DialogHistory::DialogHistory(VContainer *data, VPattern *doc, QWidget *parent)
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
connect(bOk, &QPushButton::clicked, this, &DialogHistory::DialogAccepted);

View file

@ -29,7 +29,7 @@
#ifndef DIALOGHISTORY_H
#define DIALOGHISTORY_H
#include "../tools/dialogtool.h"
#include "../../libs/vtools/dialogs/tools/dialogtool.h"
#include <QDomElement>

View file

@ -28,12 +28,14 @@
#include "dialogincrements.h"
#include "ui_dialogincrements.h"
#include "../../widgets/doubledelegate.h"
#include "../../widgets/textdelegate.h"
#include "../../widgets/vwidgetpopup.h"
#include "../../libs/vwidgets/doubledelegate.h"
#include "../../libs/vwidgets/textdelegate.h"
#include "../../libs/vwidgets/vwidgetpopup.h"
#include "../../xml/vstandardmeasurements.h"
#include "../../xml/vindividualmeasurements.h"
#include "../../core/vsettings.h"
#include "../../libs/vmisc/vsettings.h"
#include "../../libs/qmuparser/qmudef.h"
#include "../../libs/vpatterndb/vtranslatevars.h"
#include <QFileDialog>
#include <QDir>
@ -56,7 +58,7 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qCDebug(vDialog, "Showing variables.");
if (qApp->patternType() == MeasurementsType::Individual)
@ -613,7 +615,7 @@ void DialogIncrements::OpenTable()
const QString filter(tr("Individual measurements (*.vit)"));
//Use standard path to individual measurements
const QString path = qApp->getSettings()->GetPathIndividualMeasurements();
const QString path = qApp->Settings()->GetPathIndividualMeasurements();
const QString filePath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter);
if (filePath.isEmpty())
@ -656,7 +658,7 @@ void DialogIncrements::OpenTable()
{
const QString filter(tr("Standard measurements (*.vst)"));
//Use standard path to standard measurements
const QString path = qApp->getSettings()->GetPathStandardMeasurements();
const QString path = qApp->Settings()->GetPathStandardMeasurements();
const QString filePath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter);
if (filePath.isEmpty())
{

View file

@ -29,7 +29,7 @@
#ifndef DIALOGINCREMENTS_H
#define DIALOGINCREMENTS_H
#include "../tools/dialogtool.h"
#include "../../libs/vtools/dialogs/tools/dialogtool.h"
#include "../../xml/vpattern.h"
class VIndividualMeasurements;

View file

@ -30,7 +30,7 @@
#include "ui_dialogindividualmeasurements.h"
#include "../../xml/vindividualmeasurements.h"
#include "../../core/vapplication.h"
#include "../../core/vsettings.h"
#include "../../libs/vmisc/vsettings.h"
#include "../../libs/vpatterndb/vcontainer.h"
#include <QFileDialog>
@ -47,7 +47,7 @@ DialogIndividualMeasurements::DialogIndividualMeasurements(VContainer *data, con
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
QRect position = this->frameGeometry();
position.moveCenter(QDesktopWidget().availableGeometry().center());
@ -199,7 +199,7 @@ void DialogIndividualMeasurements::CheckState()
void DialogIndividualMeasurements::OpenTable()
{
const QString filter(tr("Individual measurements (*.vit)"));
const QString path = qApp->getSettings()->GetPathIndividualMeasurements();
const QString path = qApp->Settings()->GetPathIndividualMeasurements();
QString fileName = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter);
if (fileName.isEmpty())
@ -228,7 +228,7 @@ void DialogIndividualMeasurements::OpenTable()
//---------------------------------------------------------------------------------------------------------------------
void DialogIndividualMeasurements::NewTable()
{
const QString dir = qApp->getSettings()->GetPathIndividualMeasurements()+"/measurements.vit";
const QString dir = qApp->Settings()->GetPathIndividualMeasurements()+"/measurements.vit";
QString name = QFileDialog::getSaveFileName(this, tr("Where save measurements?"), dir,
tr("Individual measurements (*.vit)"));
@ -256,7 +256,7 @@ void DialogIndividualMeasurements::InitUnits()
ui->comboBoxUnits->addItem(tr("Inches"), QVariant(VDomDocument::UnitsToStr(Unit::Inch)));
// set default unit
const qint32 indexUnit = ui->comboBoxUnits->findData(qApp->getSettings()->GetUnit());
const qint32 indexUnit = ui->comboBoxUnits->findData(qApp->Settings()->GetUnit());
if (indexUnit != -1)
{
ui->comboBoxUnits->setCurrentIndex(indexUnit);

View file

@ -28,8 +28,8 @@
#include "dialoglayoutprogress.h"
#include "ui_dialoglayoutprogress.h"
#include "../options.h"
#include "../core/vapplication.h"
#include "../../options.h"
#include "../../core/vapplication.h"
#include <QMessageBox>
#include <QPushButton>
@ -41,7 +41,7 @@ DialogLayoutProgress::DialogLayoutProgress(int count, QWidget *parent)
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
ui->progressBar->setMaximum(maxCount);
ui->progressBar->setValue(0);

View file

@ -30,11 +30,11 @@
#include "ui_dialoglayoutsettings.h"
#include "../../core/vapplication.h"
#include "../../libs/ifc/xml/vdomdocument.h"
#include "../../core/vsettings.h"
#include "../../libs/vmisc/vsettings.h"
#include "../../libs/vlayout/vlayoutgenerator.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../../utils/vmath.h"
# include "../../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif
@ -52,7 +52,7 @@ DialogLayoutSettings::DialogLayoutSettings(VLayoutGenerator *generator, QWidget
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
ReadSettings();
@ -359,8 +359,8 @@ void DialogLayoutSettings::InitPaperUnits()
ui->comboBoxPaperSizeUnit->addItem(tr("Pixels"), QVariant(VDomDocument::UnitsToStr(Unit::Px)));
// set default unit
oldPaperUnit = VDomDocument::StrToUnits(qApp->getSettings()->GetUnit());
const qint32 indexUnit = ui->comboBoxPaperSizeUnit->findData(qApp->getSettings()->GetUnit());
oldPaperUnit = VDomDocument::StrToUnits(qApp->Settings()->GetUnit());
const qint32 indexUnit = ui->comboBoxPaperSizeUnit->findData(qApp->Settings()->GetUnit());
if (indexUnit != -1)
{
ui->comboBoxPaperSizeUnit->setCurrentIndex(indexUnit);
@ -375,8 +375,8 @@ void DialogLayoutSettings::InitLayoutUnits()
ui->comboBoxLayoutUnit->addItem(tr("Inches"), QVariant(VDomDocument::UnitsToStr(Unit::Inch)));
// set default unit
oldLayoutUnit = VDomDocument::StrToUnits(qApp->getSettings()->GetUnit());
const qint32 indexUnit = ui->comboBoxLayoutUnit->findData(qApp->getSettings()->GetUnit());
oldLayoutUnit = VDomDocument::StrToUnits(qApp->Settings()->GetUnit());
const qint32 indexUnit = ui->comboBoxLayoutUnit->findData(qApp->Settings()->GetUnit());
if (indexUnit != -1)
{
ui->comboBoxLayoutUnit->setCurrentIndex(indexUnit);
@ -607,33 +607,33 @@ void DialogLayoutSettings::ReadSettings()
MinimumPaperSize();
MinimumLayoutSize();
SetLayoutWidth(qApp->getSettings()->GetLayoutWidth());
SetShift(qApp->getSettings()->GetLayoutShift());
SetLayoutWidth(qApp->Settings()->GetLayoutWidth());
SetShift(qApp->Settings()->GetLayoutShift());
const qreal width = UnitConvertor(qApp->getSettings()->GetLayoutPaperWidth(), Unit::Px, LayoutUnit());
const qreal height = UnitConvertor(qApp->getSettings()->GetLayoutPaperHeight(), Unit::Px, LayoutUnit());
const qreal width = UnitConvertor(qApp->Settings()->GetLayoutPaperWidth(), Unit::Px, LayoutUnit());
const qreal height = UnitConvertor(qApp->Settings()->GetLayoutPaperHeight(), Unit::Px, LayoutUnit());
SheetSize(QSizeF(width, height));
SetGroup(qApp->getSettings()->GetLayoutGroup());
SetRotate(qApp->getSettings()->GetLayoutRotate());
SetIncrease(qApp->getSettings()->GetLayoutRotationIncrease());
SetAutoCrop(qApp->getSettings()->GetLayoutAutoCrop());
SetSaveLength(qApp->getSettings()->GetLayoutSaveLength());
SetUnitePages(qApp->getSettings()->GetLayoutUnitePages());
SetGroup(qApp->Settings()->GetLayoutGroup());
SetRotate(qApp->Settings()->GetLayoutRotate());
SetIncrease(qApp->Settings()->GetLayoutRotationIncrease());
SetAutoCrop(qApp->Settings()->GetLayoutAutoCrop());
SetSaveLength(qApp->Settings()->GetLayoutSaveLength());
SetUnitePages(qApp->Settings()->GetLayoutUnitePages());
}
//---------------------------------------------------------------------------------------------------------------------
void DialogLayoutSettings::WriteSettings() const
{
qApp->getSettings()->SetLayoutWidth(GetLayoutWidth());
qApp->getSettings()->SetLayoutGroup(GetGroup());
qApp->getSettings()->SetLayoutPaperHeight(GetPaperHeight());
qApp->getSettings()->SetLayoutPaperWidth(GetPaperWidth());
qApp->getSettings()->SetLayoutShift(GetShift());
qApp->getSettings()->SetLayoutRotate(GetRotate());
qApp->getSettings()->SetLayoutRotationIncrease(GetIncrease());
qApp->getSettings()->SetLayoutAutoCrop(GetAutoCrop());
qApp->getSettings()->SetLayoutSaveLength(IsSaveLength());
qApp->getSettings()->SetLayoutUnitePages(IsUnitePages());
qApp->Settings()->SetLayoutWidth(GetLayoutWidth());
qApp->Settings()->SetLayoutGroup(GetGroup());
qApp->Settings()->SetLayoutPaperHeight(GetPaperHeight());
qApp->Settings()->SetLayoutPaperWidth(GetPaperWidth());
qApp->Settings()->SetLayoutShift(GetShift());
qApp->Settings()->SetLayoutRotate(GetRotate());
qApp->Settings()->SetLayoutRotationIncrease(GetIncrease());
qApp->Settings()->SetLayoutAutoCrop(GetAutoCrop());
qApp->Settings()->SetLayoutSaveLength(IsSaveLength());
qApp->Settings()->SetLayoutUnitePages(IsUnitePages());
}
//---------------------------------------------------------------------------------------------------------------------

View file

@ -28,7 +28,7 @@
#include "dialogmeasurements.h"
#include "ui_dialogmeasurements.h"
#include "../core/vapplication.h"
#include "../../core/vapplication.h"
//---------------------------------------------------------------------------------------------------------------------
DialogMeasurements::DialogMeasurements(QWidget *parent) :
@ -36,7 +36,7 @@ DialogMeasurements::DialogMeasurements(QWidget *parent) :
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
connect(ui->toolButtonStandard, &QToolButton::clicked, this, &DialogMeasurements::StandardMeasurements);
connect(ui->toolButtonIndividual, &QToolButton::clicked, this, &DialogMeasurements::IndividualMeasurements);

View file

@ -45,7 +45,7 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, QWidget *parent)
SCASSERT(doc != nullptr);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
ui->lineEditAuthor->setText(doc->GetAuthor());
connect(ui->lineEditAuthor, &QLineEdit::editingFinished, this, &DialogPatternProperties::DescEdited);

View file

@ -28,7 +28,7 @@
#include "dialogpatternxmledit.h"
#include "ui_dialogpatternxmledit.h"
#include "../core/vapplication.h"
#include "../../core/vapplication.h"
#include <QInputDialog>
#include <QMessageBox>
@ -46,7 +46,7 @@ DialogPatternXmlEdit::DialogPatternXmlEdit(QWidget *parent, VPattern *xmldoc)
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
this->xmlmodel = new VXMLTreeView();
this->doc=xmldoc;

View file

@ -28,9 +28,9 @@
#include "dialogsavelayout.h"
#include "ui_dialogsavelayout.h"
#include "../options.h"
#include "../../options.h"
#include "../../core/vapplication.h"
#include "../../core/vsettings.h"
#include "../../libs/vmisc/vsettings.h"
#include <QDir>
#include <QFileDialog>
@ -43,7 +43,7 @@ DialogSaveLayout::DialogSaveLayout(const QMap<QString, QString> &formates, int c
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
SCASSERT(bOk != nullptr);
@ -67,7 +67,7 @@ DialogSaveLayout::DialogSaveLayout(const QMap<QString, QString> &formates, int c
connect(ui->pushButtonBrowse, &QPushButton::clicked, this, &DialogSaveLayout::Browse);
connect(ui->lineEditPath, &QLineEdit::textChanged, this, &DialogSaveLayout::PathChanged);
ui->lineEditPath->setText(qApp->getSettings()->GetPathLayout());
ui->lineEditPath->setText(qApp->Settings()->GetPathLayout());
ShowExample();//Show example for current format.
}

View file

@ -30,9 +30,9 @@
#include "ui_dialogstandardmeasurements.h"
#include "../../xml/vstandardmeasurements.h"
#include "../../core/vapplication.h"
#include "../../core/vsettings.h"
#include "../../libs/vmisc/vsettings.h"
#include "../../libs/vpatterndb/vcontainer.h"
#include "../../utils/logging.h"
#include "../vmisc/logging.h"
#include <QDir>
#include <QPushButton>
@ -47,7 +47,7 @@ DialogStandardMeasurements::DialogStandardMeasurements(VContainer *data, const Q
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
QRect position = this->frameGeometry();
position.moveCenter(QDesktopWidget().availableGeometry().center());
@ -153,7 +153,7 @@ void DialogStandardMeasurements::LoadStandardTables()
qCDebug(vStMeasur, "Loading standard table.");
QStringList filters{"*.vst"};
//Use standard path to standard measurements
const QString path = qApp->getSettings()->GetPathStandardMeasurements();
const QString path = qApp->Settings()->GetPathStandardMeasurements();
QDir tablesDir(path);
tablesDir.setNameFilters(filters);
tablesDir.setCurrent(path);

View file

@ -29,34 +29,6 @@
#ifndef DIALOGS_H
#define DIALOGS_H
#include "tools/dialogalongline.h"
#include "tools/dialogarc.h"
#include "tools/dialogarcwithlength.h"
#include "tools/dialogbisector.h"
#include "tools/dialogdetail.h"
#include "tools/dialogendline.h"
#include "tools/dialogline.h"
#include "tools/dialoglineintersect.h"
#include "tools/dialognormal.h"
#include "tools/dialogpointofcontact.h"
#include "tools/dialogshoulderpoint.h"
#include "tools/dialogsinglepoint.h"
#include "tools/dialogspline.h"
#include "tools/dialogsplinepath.h"
#include "tools/dialogheight.h"
#include "tools/dialogcutarc.h"
#include "tools/dialogcutspline.h"
#include "tools/dialogcutsplinepath.h"
#include "tools/dialoguniondetails.h"
#include "tools/dialogtriangle.h"
#include "tools/dialogpointofintersection.h"
#include "tools/dialoglineintersectaxis.h"
#include "tools/dialogcurveintersectaxis.h"
#include "tools/dialogpointofintersectionarcs.h"
#include "tools/dialogpointofintersectioncircles.h"
#include "tools/dialogpointfromcircleandtangent.h"
#include "tools/dialogpointfromarcandtangent.h"
#include "app/dialoghistory.h"
#include "app/dialogincrements.h"
#include "app/configdialog.h"

View file

@ -3,29 +3,6 @@
HEADERS += \
$$PWD/dialogs.h \
$$PWD/tools/dialogtriangle.h \
$$PWD/tools/dialogtool.h \
$$PWD/tools/dialogsplinepath.h \
$$PWD/tools/dialogspline.h \
$$PWD/tools/dialogsinglepoint.h \
$$PWD/tools/dialogshoulderpoint.h \
$$PWD/tools/dialogpointofintersection.h \
$$PWD/tools/dialogpointofcontact.h \
$$PWD/tools/dialognormal.h \
$$PWD/tools/dialoglineintersect.h \
$$PWD/tools/dialogline.h \
$$PWD/tools/dialogheight.h \
$$PWD/tools/dialogendline.h \
$$PWD/tools/dialogdetail.h \
$$PWD/tools/dialogbisector.h \
$$PWD/tools/dialogarc.h \
$$PWD/tools/dialogalongline.h \
$$PWD/tools/dialogcutspline.h \
$$PWD/tools/dialogcutsplinepath.h \
$$PWD/tools/dialoguniondetails.h \
$$PWD/tools/dialogcutarc.h \
$$PWD/tools/dialogeditwrongformula.h \
$$PWD/tools/dialoglineintersectaxis.h \
$$PWD/app/dialogincrements.h \
$$PWD/app/dialoghistory.h \
$$PWD/app/configdialog.h \
@ -40,41 +17,11 @@ HEADERS += \
$$PWD/app/configpages/patternpage.h \
$$PWD/app/configpages/communitypage.h \
$$PWD/app/configpages/pathpage.h \
$$PWD/app/dialogundo.h \
$$PWD/tools/dialogcurveintersectaxis.h \
$$PWD/app/dialoglayoutsettings.h \
$$PWD/app/dialoglayoutprogress.h \
$$PWD/app/dialogsavelayout.h \
$$PWD/tools/dialogpointofintersectionarcs.h \
$$PWD/tools/dialogpointofintersectioncircles.h \
$$PWD/tools/dialogpointfromcircleandtangent.h \
$$PWD/tools/dialogpointfromarcandtangent.h \
$$PWD/tools/dialogarcwithlength.h
$$PWD/app/dialogsavelayout.h
SOURCES += \
$$PWD/tools/dialogtriangle.cpp \
$$PWD/tools/dialogtool.cpp \
$$PWD/tools/dialogsplinepath.cpp \
$$PWD/tools/dialogspline.cpp \
$$PWD/tools/dialogsinglepoint.cpp \
$$PWD/tools/dialogshoulderpoint.cpp \
$$PWD/tools/dialogpointofintersection.cpp \
$$PWD/tools/dialogpointofcontact.cpp \
$$PWD/tools/dialognormal.cpp \
$$PWD/tools/dialoglineintersect.cpp \
$$PWD/tools/dialogline.cpp \
$$PWD/tools/dialogheight.cpp \
$$PWD/tools/dialogendline.cpp \
$$PWD/tools/dialogdetail.cpp \
$$PWD/tools/dialogbisector.cpp \
$$PWD/tools/dialogarc.cpp \
$$PWD/tools/dialogalongline.cpp \
$$PWD/tools/dialogcutspline.cpp \
$$PWD/tools/dialogcutsplinepath.cpp \
$$PWD/tools/dialoguniondetails.cpp \
$$PWD/tools/dialogcutarc.cpp \
$$PWD/tools/dialogeditwrongformula.cpp \
$$PWD/tools/dialoglineintersectaxis.cpp \
$$PWD/app/dialogincrements.cpp \
$$PWD/app/dialoghistory.cpp \
$$PWD/app/configdialog.cpp \
@ -88,40 +35,11 @@ SOURCES += \
$$PWD/app/configpages/patternpage.cpp \
$$PWD/app/configpages/communitypage.cpp \
$$PWD/app/configpages/pathpage.cpp \
$$PWD/app/dialogundo.cpp \
$$PWD/tools/dialogcurveintersectaxis.cpp \
$$PWD/app/dialoglayoutsettings.cpp \
$$PWD/app/dialoglayoutprogress.cpp \
$$PWD/app/dialogsavelayout.cpp \
$$PWD/tools/dialogpointofintersectionarcs.cpp \
$$PWD/tools/dialogpointofintersectioncircles.cpp \
$$PWD/tools/dialogpointfromcircleandtangent.cpp \
$$PWD/tools/dialogpointfromarcandtangent.cpp \
$$PWD/tools/dialogarcwithlength.cpp
$$PWD/app/dialogsavelayout.cpp
FORMS += \
$$PWD/tools/dialogtriangle.ui \
$$PWD/tools/dialogsplinepath.ui \
$$PWD/tools/dialogspline.ui \
$$PWD/tools/dialogsinglepoint.ui \
$$PWD/tools/dialogshoulderpoint.ui \
$$PWD/tools/dialogpointofintersection.ui \
$$PWD/tools/dialogpointofcontact.ui \
$$PWD/tools/dialognormal.ui \
$$PWD/tools/dialoglineintersect.ui \
$$PWD/tools/dialogline.ui \
$$PWD/tools/dialogheight.ui \
$$PWD/tools/dialogendline.ui \
$$PWD/tools/dialogdetail.ui \
$$PWD/tools/dialogbisector.ui \
$$PWD/tools/dialogarc.ui \
$$PWD/tools/dialogalongline.ui \
$$PWD/tools/dialogcutspline.ui \
$$PWD/tools/dialogcutsplinepath.ui \
$$PWD/tools/dialoguniondetails.ui \
$$PWD/tools/dialogcutarc.ui \
$$PWD/tools/dialogeditwrongformula.ui \
$$PWD/tools/dialoglineintersectaxis.ui \
$$PWD/app/dialogincrements.ui \
$$PWD/app/dialoghistory.ui \
$$PWD/app/dialogpatternproperties.ui \
@ -130,13 +48,6 @@ FORMS += \
$$PWD/app/dialogindividualmeasurements.ui \
$$PWD/app/dialogaboutapp.ui \
$$PWD/app/dialogpatternxmledit.ui \
$$PWD/app/dialogundo.ui \
$$PWD/tools/dialogcurveintersectaxis.ui \
$$PWD/app/dialoglayoutsettings.ui \
$$PWD/app/dialoglayoutprogress.ui \
$$PWD/app/dialogsavelayout.ui \
$$PWD/tools/dialogpointofintersectionarcs.ui \
$$PWD/tools/dialogpointofintersectioncircles.ui \
$$PWD/tools/dialogpointfromcircleandtangent.ui \
$$PWD/tools/dialogpointfromarcandtangent.ui \
$$PWD/tools/dialogarcwithlength.ui
$$PWD/app/dialogsavelayout.ui

View file

@ -30,7 +30,7 @@
#include "core/vapplication.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
# include "../core/backport/qcommandlineparser.h"
# include "../libs/vmisc/backport/qcommandlineparser.h"
#else
# include <QCommandLineParser>
#endif

View file

@ -38,13 +38,13 @@
#include "xml/vstandardmeasurements.h"
#include "xml/vindividualmeasurements.h"
#include "core/vapplication.h"
#include "core/undoevent.h"
#include "core/vsettings.h"
#include "../libs/vmisc/undoevent.h"
#include "../libs/vmisc/vsettings.h"
#include "undocommands/renamepp.h"
#include "vtooloptionspropertybrowser.h"
#include "core/vtooloptionspropertybrowser.h"
#include "options.h"
#include "../libs/ifc/xml/vpatternconverter.h"
#include "../../utils/logging.h"
#include "../vmisc/logging.h"
#include <QInputDialog>
#include <QDebug>
@ -1480,7 +1480,7 @@ bool MainWindow::SaveAs()
QString dir;
if (curFile.isEmpty())
{
dir = qApp->getSettings()->GetPathPattern() + "/" + tr("pattern") + ".val";
dir = qApp->Settings()->GetPathPattern() + "/" + tr("pattern") + ".val";
}
else
{
@ -1513,9 +1513,9 @@ bool MainWindow::SaveAs()
if (oldFileName != curFile)
{// Now we have new file name after save as.
// But still have previous name in restore list. We should delete them.
QStringList restoreFiles = qApp->getSettings()->GetRestoreFileList();
QStringList restoreFiles = qApp->Settings()->GetRestoreFileList();
restoreFiles.removeAll(oldFileName);
qApp->getSettings()->SetRestoreFileList(restoreFiles);
qApp->Settings()->SetRestoreFileList(restoreFiles);
}
return result;
}
@ -1564,7 +1564,7 @@ void MainWindow::Open()
qCDebug(vMainWindow, "Openning new file.");
const QString filter(tr("Pattern files (*.val)"));
//Get list last open files
const QStringList files = qApp->getSettings()->GetRecentFileList();
const QStringList files = qApp->Settings()->GetRecentFileList();
QString dir;
if (files.isEmpty())
{
@ -1676,9 +1676,9 @@ void MainWindow::FileClosedCorrect()
WriteSettings();
//File was closed correct.
QStringList restoreFiles = qApp->getSettings()->GetRestoreFileList();
QStringList restoreFiles = qApp->Settings()->GetRestoreFileList();
restoreFiles.removeAll(curFile);
qApp->getSettings()->SetRestoreFileList(restoreFiles);
qApp->Settings()->SetRestoreFileList(restoreFiles);
// Remove autosave file
QFile autofile(curFile +".autosave");
@ -2035,8 +2035,8 @@ void MainWindow::New()
}
//Set scene size to size scene view
VAbstractTool::NewSceneRect(sceneDraw, ui->view);
VAbstractTool::NewSceneRect(sceneDetails, ui->view);
VMainGraphicsView::NewSceneRect(sceneDraw, ui->view);
VMainGraphicsView::NewSceneRect(sceneDetails, ui->view);
ToolBarOption();
AddPP(patternPieceName, path);
@ -2309,7 +2309,7 @@ void MainWindow::setCurrentFile(const QString &fileName)
else
{
qCDebug(vMainWindow, "Updating recent file list.");
QStringList files = qApp->getSettings()->GetRecentFileList();
QStringList files = qApp->Settings()->GetRecentFileList();
files.removeAll(fileName);
files.prepend(fileName);
while (files.size() > MaxRecentFiles)
@ -2317,14 +2317,14 @@ void MainWindow::setCurrentFile(const QString &fileName)
files.removeLast();
}
qApp->getSettings()->SetRecentFileList(files);
qApp->Settings()->SetRecentFileList(files);
UpdateRecentFileActions();
qCDebug(vMainWindow, "Updating restore file list.");
QStringList restoreFiles = qApp->getSettings()->GetRestoreFileList();
QStringList restoreFiles = qApp->Settings()->GetRestoreFileList();
restoreFiles.removeAll(fileName);
restoreFiles.prepend(fileName);
qApp->getSettings()->SetRestoreFileList(restoreFiles);
qApp->Settings()->SetRestoreFileList(restoreFiles);
}
shownName+="[*]";
setWindowTitle(shownName);
@ -2348,17 +2348,17 @@ QString MainWindow::strippedName(const QString &fullFileName)
void MainWindow::ReadSettings()
{
qCDebug(vMainWindow, "Reading settings.");
restoreGeometry(qApp->getSettings()->GetGeometry());
restoreState(qApp->getSettings()->GetWindowState());
restoreState(qApp->getSettings()->GetToolbarsState(), APP_VERSION);
restoreGeometry(qApp->Settings()->GetGeometry());
restoreState(qApp->Settings()->GetWindowState());
restoreState(qApp->Settings()->GetToolbarsState(), APP_VERSION);
// Scene antialiasing
const bool graphOutputValue = qApp->getSettings()->GetGraphicalOutput();
const bool graphOutputValue = qApp->Settings()->GetGraphicalOutput();
ui->view->setRenderHint(QPainter::Antialiasing, graphOutputValue);
ui->view->setRenderHint(QPainter::SmoothPixmapTransform, graphOutputValue);
// Stack limit
qApp->getUndoStack()->setUndoLimit(qApp->getSettings()->GetUndoCount());
qApp->getUndoStack()->setUndoLimit(qApp->Settings()->GetUndoCount());
// Text under tool buton icon
ToolBarStyles();
@ -2372,9 +2372,9 @@ void MainWindow::WriteSettings()
{
ActionDraw(true);
qApp->getSettings()->SetGeometry(saveGeometry());
qApp->getSettings()->SetWindowState(saveState());
qApp->getSettings()->SetToolbarsState(saveState(APP_VERSION));
qApp->Settings()->SetGeometry(saveGeometry());
qApp->Settings()->SetWindowState(saveState());
qApp->Settings()->SetToolbarsState(saveState(APP_VERSION));
}
//---------------------------------------------------------------------------------------------------------------------
@ -2406,7 +2406,7 @@ bool MainWindow::MaybeSave()
void MainWindow::UpdateRecentFileActions()
{
qCDebug(vMainWindow, "Updating recent file actions.");
const QStringList files = qApp->getSettings()->GetRecentFileList();
const QStringList files = qApp->Settings()->GetRecentFileList();
const int numRecentFiles = qMin(files.size(), static_cast<int>(MaxRecentFiles));
for (int i = 0; i < numRecentFiles; ++i)
@ -2685,9 +2685,9 @@ void MainWindow::InitAutoSave()
connect(autoSaveTimer, &QTimer::timeout, this, &MainWindow::AutoSavePattern);
autoSaveTimer->stop();
if (qApp->getSettings()->GetAutosaveState())
if (qApp->Settings()->GetAutosaveState())
{
const qint32 autoTime = qApp->getSettings()->GetAutosaveTime();
const qint32 autoTime = qApp->Settings()->GetAutosaveTime();
autoSaveTimer->start(autoTime*60000);
qCDebug(vMainWindow, "Autosaving each %d minutes.", autoTime);
}
@ -2782,8 +2782,8 @@ void MainWindow::LoadPattern(const QString &fileName)
#endif //QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
// On this stage scene empty. Fit scene size to view size
VAbstractTool::NewSceneRect(sceneDraw, ui->view);
VAbstractTool::NewSceneRect(sceneDetails, ui->view);
VMainGraphicsView::NewSceneRect(sceneDraw, ui->view);
VMainGraphicsView::NewSceneRect(sceneDetails, ui->view);
#ifdef Q_OS_WIN32
qt_ntfs_permission_lookup++; // turn checking on
@ -2871,7 +2871,7 @@ QStringList MainWindow::GetUnlokedRestoreFileList() const
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
QStringList restoreFiles;
//Take all files that need to be restored
QStringList files = qApp->getSettings()->GetRestoreFileList();
QStringList files = qApp->Settings()->GetRestoreFileList();
if (files.size() > 0)
{
for (int i = 0; i < files.size(); ++i)
@ -2893,7 +2893,7 @@ QStringList MainWindow::GetUnlokedRestoreFileList() const
files.removeAll(restoreFiles.at(i));
}
qApp->getSettings()->SetRestoreFileList(files);
qApp->Settings()->SetRestoreFileList(files);
}
return restoreFiles;
@ -2905,7 +2905,7 @@ QStringList MainWindow::GetUnlokedRestoreFileList() const
//---------------------------------------------------------------------------------------------------------------------
void MainWindow::WindowsLocale()
{
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
}
//---------------------------------------------------------------------------------------------------------------------
@ -2939,7 +2939,7 @@ void MainWindow::ShowPaper(int index)
//---------------------------------------------------------------------------------------------------------------------
void MainWindow::ToolBarStyle(QToolBar *bar)
{
if (qApp->getSettings()->GetToolBarStyle())
if (qApp->Settings()->GetToolBarStyle())
{
bar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
}
@ -3023,14 +3023,14 @@ QString MainWindow::CheckPathToMeasurements(const QString &path, const Measureme
{
filter = tr("Standard measurements (*.vst)");
//Use standard path to standard measurements
const QString path = qApp->getSettings()->GetPathStandardMeasurements();
const QString path = qApp->Settings()->GetPathStandardMeasurements();
mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter);
}
else
{
filter = tr("Individual measurements (*.vit)");
//Use standard path to individual measurements
const QString path = qApp->getSettings()->GetPathIndividualMeasurements();
const QString path = qApp->Settings()->GetPathIndividualMeasurements();
mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter);
}
@ -3102,8 +3102,8 @@ void MainWindow::ZoomFirstShow()
ActionDraw(true);
ui->view->ZoomFitBest();
VAbstractTool::NewSceneRect(sceneDraw, ui->view);
VAbstractTool::NewSceneRect(sceneDetails, ui->view);
VMainGraphicsView::NewSceneRect(sceneDraw, ui->view);
VMainGraphicsView::NewSceneRect(sceneDetails, ui->view);
ActionDetails(true);
ui->view->ZoomFitBest();

View file

@ -30,7 +30,8 @@
#define MAINWINDOW_H
#include "mainwindowsnogui.h"
#include "widgets/vmaingraphicsview.h"
#include "../libs/vwidgets/vmaingraphicsview.h"
#include "../libs/vtools/dialogs/tooldialogs.h"
#include "dialogs/dialogs.h"
#include "tools/vtooldetail.h"
#include "tools/vtooluniondetails.h"

View file

@ -27,13 +27,13 @@
*************************************************************************/
#include "mainwindowsnogui.h"
#include "../core/vapplication.h"
#include "core/vapplication.h"
#include "../libs/vpatterndb/vcontainer.h"
#include "../libs/vobj/vobjpaintdevice.h"
#include "../dialogs/app/dialoglayoutsettings.h"
#include "dialogs/app/dialoglayoutsettings.h"
#include "../libs/vlayout/vlayoutgenerator.h"
#include "../dialogs/app/dialoglayoutprogress.h"
#include "../dialogs/app/dialogsavelayout.h"
#include "dialogs/app/dialoglayoutprogress.h"
#include "dialogs/app/dialogsavelayout.h"
#include "../libs/vlayout/vposter.h"
#include <QFileDialog>
@ -154,7 +154,7 @@ void MainWindowsNoGUI::ExportLayoutAs()
suf.replace(".", "");
const QString path = dialog.Path();
qApp->getSettings()->SetPathLayout(path);
qApp->Settings()->SetPathLayout(path);
const QString mask = dialog.FileName();
for (int i=0; i < scenes.size(); ++i)
@ -400,8 +400,8 @@ QIcon MainWindowsNoGUI::ScenePreview(int i) const
QPainter painter(&image);
painter.setFont( QFont( "Arial", 8, QFont::Normal ) );
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->toPixel(qApp->widthMainLine()), Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.setPen(QPen(Qt::black, qApp->toPixel(WidthMainLine(*pattern->GetPatternUnit())), Qt::SolidLine,
Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
scenes.at(i)->render(&painter);
painter.end();
@ -508,8 +508,8 @@ void MainWindowsNoGUI::SvgFile(const QString &name, int i) const
painter.begin(&generator);
painter.setFont( QFont( "Arial", 8, QFont::Normal ) );
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->toPixel(qApp->widthHairLine()), Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.setPen(QPen(Qt::black, qApp->toPixel(WidthHairLine(*pattern->GetPatternUnit())), Qt::SolidLine,
Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
scenes.at(i)->render(&painter, paper->rect(), paper->rect(), Qt::IgnoreAspectRatio);
painter.end();
@ -533,8 +533,8 @@ void MainWindowsNoGUI::PngFile(const QString &name, int i) const
QPainter painter(&image);
painter.setFont( QFont( "Arial", 8, QFont::Normal ) );
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->toPixel(qApp->widthMainLine()), Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.setPen(QPen(Qt::black, qApp->toPixel(WidthMainLine(*pattern->GetPatternUnit())), Qt::SolidLine,
Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
scenes.at(i)->render(&painter, r, r, Qt::IgnoreAspectRatio);
image.save(name);
@ -577,8 +577,8 @@ void MainWindowsNoGUI::PdfFile(const QString &name, int i) const
}
painter.setFont( QFont( "Arial", 8, QFont::Normal ) );
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->toPixel(qApp->widthMainLine()), Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.setPen(QPen(Qt::black, qApp->toPixel(WidthMainLine(*pattern->GetPatternUnit())), Qt::SolidLine,
Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
scenes.at(i)->render(&painter, r, r, Qt::IgnoreAspectRatio);
painter.end();
@ -685,15 +685,15 @@ QVector<QImage> MainWindowsNoGUI::AllSheets()
QPainter painter(&image);
painter.setFont( QFont( "Arial", 8, QFont::Normal ) );
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, qApp->toPixel(qApp->widthMainLine()), Qt::SolidLine, Qt::RoundCap,
Qt::RoundJoin));
painter.setPen(QPen(Qt::black, qApp->toPixel(WidthMainLine(*pattern->GetPatternUnit())), Qt::SolidLine,
Qt::RoundCap, Qt::RoundJoin));
painter.setBrush ( QBrush ( Qt::NoBrush ) );
scenes.at(i)->render(&painter);
painter.end();
images.append(image);
// Resore
paper->setPen(QPen(Qt::black, qApp->toPixel(qApp->widthMainLine())));
paper->setPen(QPen(Qt::black, qApp->toPixel(WidthMainLine(*pattern->GetPatternUnit()))));
brush->setColor( QColor( Qt::gray ) );
brush->setStyle( Qt::SolidPattern );
scenes[i]->setBackgroundBrush( *brush );
@ -719,7 +719,7 @@ void MainWindowsNoGUI::SaveLayoutAs()
printer.setOutputFormat(QPrinter::PdfFormat);
QString fileName = QFileDialog::getSaveFileName(this, tr("Print to pdf"),
qApp->getSettings()->GetPathLayout()+"/"+FileName()+".pdf",
qApp->Settings()->GetPathLayout()+"/"+FileName()+".pdf",
tr("PDF file (*.pdf)"));
if (not fileName.isEmpty())
{
@ -728,7 +728,7 @@ void MainWindowsNoGUI::SaveLayoutAs()
{
fileName.append(".pdf");
}
qApp->getSettings()->SetPathLayout(f.absolutePath());
qApp->Settings()->SetPathLayout(f.absolutePath());
printer.setOutputFileName(fileName);
printer.setResolution(static_cast<int>(PrintDPI));

View file

@ -28,10 +28,3 @@
#include "options.h"
#include <QString>
// From documantation: If you use QStringLiteral you should avoid declaring the same literal in multiple places: This
// furthermore blows up the binary sizes.
const QString degreeSymbol = QStringLiteral("°");
const QString cursorArrowOpenHand = QStringLiteral("://cursor/cursor-arrow-openhand.png");
const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-closehand.png");

View file

@ -32,7 +32,7 @@
#include "../libs/ifc/ifcdef.h"
#include "../libs/vgeometry/vgeometrydef.h"
#include "../libs/qmuparser/qmudef.h"
#include "../../utils/def.h"
#include "../vmisc/def.h"
#ifdef Q_OS_WIN32
# if defined( Q_CC_MSVC ) // MSVC USED
@ -47,18 +47,6 @@
class QString;
class QStringList;
#define SceneSize 50000
#define DefPointRadius 1.5//mm
extern const QString degreeSymbol;
extern const QString cursorArrowOpenHand;
extern const QString cursorArrowCloseHand;
enum class SceneObject : char { Point, Line, Spline, Arc, SplinePath, Detail, Unknown };
enum class Source : char { FromGui, FromFile, FromTool };
enum class Contour : char { OpenContour, CloseContour };
#endif // OPTIONS_H

File diff suppressed because it is too large Load diff

View file

@ -29,224 +29,62 @@
#ifndef VPATTERN_H
#define VPATTERN_H
#include "../libs/ifc/xml/vdomdocument.h"
#include "../libs/ifc/xml/vabstractpattern.h"
#include "../libs/ifc/xml/vtoolrecord.h"
#include "../libs/vpatterndb/vcontainer.h"
class VDataTool;
class VMainGraphicsScene;
enum class Document : char { LiteParse, LitePPParse, FullParse };
enum class LabelType : char {NewPatternPiece, NewLabel};
enum class CrossCirclesPoint : char {FirstPoint = 1, SecondPoint = 2};
/**
* @brief The VPattern class working with pattern file.
*/
class VPattern : public QObject, public VDomDocument
class VPattern : public VAbstractPattern
{
Q_OBJECT
public:
VPattern(VContainer *data, Draw *mode, VMainGraphicsScene *sceneDraw, VMainGraphicsScene *sceneDetail,
QObject *parent = nullptr);
void CreateEmptyFile(const QString &tablePath);
void ChangeActivPP(const QString& name, const Document &parse = Document::FullParse);
QString GetNameActivPP() const;
bool GetActivDrawElement(QDomElement &element) const;
bool appendPP(const QString& name);
bool ChangeNamePP(const QString& oldName, const QString &newName);
QDomElement GetPPElement(const QString &name);
bool CheckExistNamePP(const QString& name) const;
int CountPP() const;
virtual void CreateEmptyFile(const QString &tablePath);
void Parse(const Document &parse);
QHash<quint32, VDataTool*>* getTools();
VDataTool* getTool(const quint32 &id);
QVector<VToolRecord> *getHistory();
QVector<VToolRecord> getLocalHistory() const;
quint32 getCursor() const;
void setCursor(const quint32 &value);
void setCurrentData();
void AddTool(const quint32 &id, VDataTool *tool);
void UpdateToolData(const quint32 &id, VContainer *data);
void IncrementReferens(quint32 id) const;
void DecrementReferens(quint32 id) const;
virtual void UpdateToolData(const quint32 &id, VContainer *data);
virtual void IncrementReferens(quint32 id) const;
virtual void DecrementReferens(quint32 id) const;
quint32 SPointActiveDraw();
bool isPatternModified() const;
void setPatternModified(bool value);
bool GetActivNodeElement(const QString& name, QDomElement& element) const;
QString MPath() const;
void SetPath(const QString &path);
Unit MUnit() const;
MeasurementsType MType() const;
static const QString TagPattern;
static const QString TagCalculation;
static const QString TagModeling;
static const QString TagDetails;
static const QString TagAuthor;
static const QString TagDescription;
static const QString TagNotes;
static const QString TagMeasurements;
static const QString TagIncrements;
static const QString TagIncrement;
static const QString TagDraw;
static const QString TagPoint;
static const QString TagLine;
static const QString TagSpline;
static const QString TagArc;
static const QString TagTools;
static const QString TagGradation;
static const QString TagHeights;
static const QString TagSizes;
static const QString AttrName;
static const QString AttrType;
static const QString AttrPath;
static const QString AttrAll;
static const QString AttrH92;
static const QString AttrH98;
static const QString AttrH104;
static const QString AttrH110;
static const QString AttrH116;
static const QString AttrH122;
static const QString AttrH128;
static const QString AttrH134;
static const QString AttrH140;
static const QString AttrH146;
static const QString AttrH152;
static const QString AttrH158;
static const QString AttrH164;
static const QString AttrH170;
static const QString AttrH176;
static const QString AttrH182;
static const QString AttrH188;
static const QString AttrH194;
static const QString AttrS22;
static const QString AttrS24;
static const QString AttrS26;
static const QString AttrS28;
static const QString AttrS30;
static const QString AttrS32;
static const QString AttrS34;
static const QString AttrS36;
static const QString AttrS38;
static const QString AttrS40;
static const QString AttrS42;
static const QString AttrS44;
static const QString AttrS46;
static const QString AttrS48;
static const QString AttrS50;
static const QString AttrS52;
static const QString AttrS54;
static const QString AttrS56;
static const QString IncrementName;
static const QString IncrementBase;
static const QString IncrementKsize;
static const QString IncrementKgrowth;
static const QString IncrementDescription;
virtual bool SaveDocument(const QString &fileName, QString &error) const;
QStringList getPatternPieces() const;
QRectF ActiveDrawBoundingRect() const;
QMap<GHeights, bool> GetGradationHeights() const;
void SetGradationHeights(const QMap<GHeights, bool> &options);
QString GetAuthor() const;
void SetAuthor(const QString &text);
QMap<GSizes, bool> GetGradationSizes() const;
void SetGradationSizes(const QMap<GSizes, bool> &options);
virtual QString GenerateLabel(const LabelType &type)const;
QString GetAuthor() const;
void SetAuthor(const QString &text);
QString GetDescription() const;
void SetDescription(const QString &text);
QString GetNotes() const;
void SetNotes(const QString &text);
QString GetVersion() const;
void SetVersion();
QString GenerateLabel(const LabelType &type)const;
quint32 SiblingNodeId(const quint32 &nodeId) const;
signals:
/**
* @brief ChangedActivDraw change active pattern peace.
* @param newName new pattern peace name.
*/
void ChangedActivPP(const QString &newName);
/**
* @brief ChangedNameDraw save new name pattern peace.
* @param oldName old name.
* @param newName new name.
*/
void ChangedNameDraw(const QString &oldName, const QString &newName);
/**
* @brief FullUpdateFromFile update tool data form file.
*/
void FullUpdateFromFile();
/**
* @brief patternChanged emit if we have unsaved change.
*/
void patternChanged(bool saved);
/**
* @brief ShowTool highlight tool.
* @param id tool id.
* @param enable enable or disable highlight.
*/
void ShowTool(quint32 id, bool enable);
/**
* @brief ChangedCursor change cursor position.
* @param id tool id.
*/
void ChangedCursor(quint32 id);
void ClearMainWindow();
void UndoCommand();
void SetEnabledGUI(bool enabled);
void CheckLayout();
void SetCurrentPP(const QString &patterPiece);
public slots:
void LiteParseTree(const Document &parse);
void haveLiteChange();
void ShowHistoryTool(quint32 id, bool enable);
void NeedFullParsing();
void ClearScene();
protected:
virtual void customEvent(QEvent * event);
private:
Q_DISABLE_COPY(VPattern)
/** @brief data container with data. */
VContainer *data;
/** @brief nameActivDraw name current pattern peace. */
QString nameActivPP;
/** @brief tools list with pointer on tools. */
QHash<quint32, VDataTool*> tools;
/** @brief history history records. */
QVector<VToolRecord> history;
/** @brief cursor cursor keep id tool after which we will add new tool in file. */
quint32 cursor;
/** @brief patternPieces list of patern pieces names for combobox*/
QStringList patternPieces;
/** @brief mode current draw mode. */
Draw *mode;
Draw *mode;
VMainGraphicsScene *sceneDraw;
VMainGraphicsScene *sceneDetail;
void SetActivPP(const QString& name);
void ParseDrawElement(const QDomNode& node, const Document &parse);
void ParseDrawMode(const QDomNode& node, const Document &parse, const Draw &mode);
void ParseDetailElement(const QDomElement &domElement,
@ -276,55 +114,7 @@ private:
template <typename T>
QRectF ToolBoundingRect(const QRectF &rec, const quint32 &id) const;
void ParseCurrentPP();
void CheckTagExists(const QString &tag);
QString GetLabelBase(unsigned int index)const;
void ToolExists(const quint32 &id) const;
};
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief GetNameActivPP return current pattern piece name.
* @return pattern piece name.
*/
inline QString VPattern::GetNameActivPP() const
{
return nameActivPP;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getTools return list of tools pointers.
* @return list.
*/
inline QHash<quint32, VDataTool *> *VPattern::getTools()
{
return &tools;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getHistory return list with list of history records.
* @return list of history records.
*/
inline QVector<VToolRecord> *VPattern::getHistory()
{
return &history;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getCursor return cursor.
* @return cursor.
*/
inline quint32 VPattern::getCursor() const
{
return cursor;
}
//---------------------------------------------------------------------------------------------------------------------
inline QStringList VPattern::getPatternPieces() const
{
return patternPieces;
}
#endif // VPATTERN_H

View file

@ -29,6 +29,7 @@
#include "vstandardmeasurements.h"
#include <QDebug>
#include "../core/vapplication.h"
#include "../../libs/vmisc/def.h"
const QString VStandardMeasurements::TagDescription = QStringLiteral("description");
const QString VStandardMeasurements::TagId = QStringLiteral("id");

View file

@ -27,8 +27,8 @@
*************************************************************************/
#include "vexception.h"
#include "../../../utils/logging.h"
#include "../../../utils/def.h"
#include "../vmisc/logging.h"
#include "../vmisc/def.h"
#include <QGridLayout>
#include <QMessageBox>

View file

@ -31,7 +31,6 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += QT_MESSAGELOGCONTEXT
include(ifc.pri)
include(../../utils/utils.pri)
# This is static library so no need in "make install"

View file

@ -28,4 +28,32 @@
#include "ifcdef.h"
const qreal PrintDPI = 96.0;
#define DefWidth 1.2//mm
//---------------------------------------------------------------------------------------------------------------------
qreal WidthMainLine(Unit patternUnit)
{
qreal _widthMainLine = DefWidth;
switch (patternUnit)
{
case Unit::Mm:
_widthMainLine = DefWidth;
break;
case Unit::Cm:
_widthMainLine = DefWidth/10.0;
break;
case Unit::Inch:
_widthMainLine = DefWidth/25.4;
break;
default:
_widthMainLine = DefWidth;
break;
}
return _widthMainLine;
}
//---------------------------------------------------------------------------------------------------------------------
qreal WidthHairLine(Unit patternUnit)
{
return WidthMainLine(patternUnit)/3.0;
}

View file

@ -30,15 +30,13 @@
#define IFCDEF_H
#include <QtGlobal>
#include "../vmisc/def.h"
#ifdef Q_OS_WIN32
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
#include <windows.h>
#endif /*Q_OS_WIN32*/
enum class Unit : char { Mm, Cm, Inch, Px };
enum class MeasurementsType : char { Standard, Individual };
static const quint32 null_id = 0;
#define NULL_ID null_id//use this value for initialization variables that keeps id values. 0 mean uknown id value.
@ -59,115 +57,7 @@ static const quint32 null_id = 0;
# define V_NOEXCEPT_EXPR(x)
# endif
extern const qreal PrintDPI;
//---------------------------------------------------------------------------------------------------------------------
inline double ToPixel(double val, const Unit &unit)
{
switch (unit)
{
case Unit::Mm:
return (val / 25.4) * PrintDPI;
case Unit::Cm:
return ((val * 10.0) / 25.4) * PrintDPI;
case Unit::Inch:
return val * PrintDPI;
case Unit::Px:
return val;
default:
break;
}
return 0;
}
//---------------------------------------------------------------------------------------------------------------------
inline double FromPixel(double pix, const Unit &unit)
{
switch (unit)
{
case Unit::Mm:
return (pix / PrintDPI) * 25.4;
case Unit::Cm:
return ((pix / PrintDPI) * 25.4) / 10.0;
case Unit::Inch:
return pix / PrintDPI;
case Unit::Px:
return pix;
default:
break;
}
return 0;
}
//---------------------------------------------------------------------------------------------------------------------
inline qreal UnitConvertor(qreal value, const Unit &from, const Unit &to)
{
switch (from)
{
case Unit::Mm:
switch (to)
{
case Unit::Mm:
return value;
case Unit::Cm:
return value / 10.0;
case Unit::Inch:
return value / 25.4;
case Unit::Px:
return (value / 25.4) * PrintDPI;
default:
break;
}
break;
case Unit::Cm:
switch (to)
{
case Unit::Mm:
return value * 10.0;
case Unit::Cm:
return value;
case Unit::Inch:
return value / 2.54;
case Unit::Px:
return ((value * 10.0) / 25.4) * PrintDPI;
default:
break;
}
break;
case Unit::Inch:
switch (to)
{
case Unit::Mm:
return value * 25.4;
case Unit::Cm:
return value * 2.54;
case Unit::Inch:
return value;
case Unit::Px:
return value * PrintDPI;
default:
break;
}
break;
case Unit::Px:
switch (to)
{
case Unit::Mm:
return (value / PrintDPI) * 25.4;
case Unit::Cm:
return ((value / PrintDPI) * 25.4) / 10.0;
case Unit::Inch:
return value / PrintDPI;
case Unit::Px:
return value;
default:
break;
}
break;
default:
break;
}
return 0;
}
qreal WidthMainLine(Unit patternUnit);
qreal WidthHairLine(Unit patternUnit);
#endif // IFCDEF_H

View file

@ -0,0 +1,991 @@
/************************************************************************
**
** @file vabstractpattern.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 15 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "vabstractpattern.h"
#include "../vmisc/def.h"
#include "exception/vexceptionbadid.h"
#include "vpatternconverter.h"
const QString VAbstractPattern::TagPattern = QStringLiteral("pattern");
const QString VAbstractPattern::TagCalculation = QStringLiteral("calculation");
const QString VAbstractPattern::TagModeling = QStringLiteral("modeling");
const QString VAbstractPattern::TagDetails = QStringLiteral("details");
const QString VAbstractPattern::TagAuthor = QStringLiteral("author");
const QString VAbstractPattern::TagDescription = QStringLiteral("description");
const QString VAbstractPattern::TagNotes = QStringLiteral("notes");
const QString VAbstractPattern::TagMeasurements = QStringLiteral("measurements");
const QString VAbstractPattern::TagIncrements = QStringLiteral("increments");
const QString VAbstractPattern::TagIncrement = QStringLiteral("increment");
const QString VAbstractPattern::TagDraw = QStringLiteral("draw");
const QString VAbstractPattern::TagPoint = QStringLiteral("point");
const QString VAbstractPattern::TagLine = QStringLiteral("line");
const QString VAbstractPattern::TagSpline = QStringLiteral("spline");
const QString VAbstractPattern::TagArc = QStringLiteral("arc");
const QString VAbstractPattern::TagTools = QStringLiteral("tools");
const QString VAbstractPattern::TagGradation = QStringLiteral("gradation");
const QString VAbstractPattern::TagHeights = QStringLiteral("heights");
const QString VAbstractPattern::TagSizes = QStringLiteral("sizes");
const QString VAbstractPattern::AttrName = QStringLiteral("name");
const QString VAbstractPattern::AttrType = QStringLiteral("type");
const QString VAbstractPattern::AttrPath = QStringLiteral("path");
const QString VAbstractPattern::AttrAll = QStringLiteral("all");
const QString VAbstractPattern::AttrH92 = QStringLiteral("h92");
const QString VAbstractPattern::AttrH98 = QStringLiteral("h98");
const QString VAbstractPattern::AttrH104 = QStringLiteral("h104");
const QString VAbstractPattern::AttrH110 = QStringLiteral("h110");
const QString VAbstractPattern::AttrH116 = QStringLiteral("h116");
const QString VAbstractPattern::AttrH122 = QStringLiteral("h122");
const QString VAbstractPattern::AttrH128 = QStringLiteral("h128");
const QString VAbstractPattern::AttrH134 = QStringLiteral("h134");
const QString VAbstractPattern::AttrH140 = QStringLiteral("h140");
const QString VAbstractPattern::AttrH146 = QStringLiteral("h146");
const QString VAbstractPattern::AttrH152 = QStringLiteral("h152");
const QString VAbstractPattern::AttrH158 = QStringLiteral("h158");
const QString VAbstractPattern::AttrH164 = QStringLiteral("h164");
const QString VAbstractPattern::AttrH170 = QStringLiteral("h170");
const QString VAbstractPattern::AttrH176 = QStringLiteral("h176");
const QString VAbstractPattern::AttrH182 = QStringLiteral("h182");
const QString VAbstractPattern::AttrH188 = QStringLiteral("h188");
const QString VAbstractPattern::AttrH194 = QStringLiteral("h194");
const QString VAbstractPattern::AttrS22 = QStringLiteral("s22");
const QString VAbstractPattern::AttrS24 = QStringLiteral("s24");
const QString VAbstractPattern::AttrS26 = QStringLiteral("s26");
const QString VAbstractPattern::AttrS28 = QStringLiteral("s28");
const QString VAbstractPattern::AttrS30 = QStringLiteral("s30");
const QString VAbstractPattern::AttrS32 = QStringLiteral("s32");
const QString VAbstractPattern::AttrS34 = QStringLiteral("s34");
const QString VAbstractPattern::AttrS36 = QStringLiteral("s36");
const QString VAbstractPattern::AttrS38 = QStringLiteral("s38");
const QString VAbstractPattern::AttrS40 = QStringLiteral("s40");
const QString VAbstractPattern::AttrS42 = QStringLiteral("s42");
const QString VAbstractPattern::AttrS44 = QStringLiteral("s44");
const QString VAbstractPattern::AttrS46 = QStringLiteral("s46");
const QString VAbstractPattern::AttrS48 = QStringLiteral("s48");
const QString VAbstractPattern::AttrS50 = QStringLiteral("s50");
const QString VAbstractPattern::AttrS52 = QStringLiteral("s52");
const QString VAbstractPattern::AttrS54 = QStringLiteral("s54");
const QString VAbstractPattern::AttrS56 = QStringLiteral("s56");
const QString VAbstractPattern::IncrementName = QStringLiteral("name");
const QString VAbstractPattern::IncrementBase = QStringLiteral("base");
const QString VAbstractPattern::IncrementKsize = QStringLiteral("ksize");
const QString VAbstractPattern::IncrementKgrowth = QStringLiteral("kgrowth");
const QString VAbstractPattern::IncrementDescription = QStringLiteral("description");
//---------------------------------------------------------------------------------------------------------------------
VAbstractPattern::VAbstractPattern(QObject *parent)
: QObject(parent), VDomDocument(), nameActivPP(QString()), cursor(0), tools(QHash<quint32, VDataTool*>()),
history(QVector<VToolRecord>()), patternPieces(QStringList())
{}
//---------------------------------------------------------------------------------------------------------------------
VAbstractPattern::~VAbstractPattern()
{}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief ChangeActivPP set new active pattern piece name.
* @param name new name.
* @param parse parser file mode.
*/
void VAbstractPattern::ChangeActivPP(const QString &name, const Document &parse)
{
Q_ASSERT_X(name.isEmpty() == false, "ChangeActivPP", "name pattern piece is empty");
if (CheckExistNamePP(name) && this->nameActivPP != name)
{
this->nameActivPP = name;
if (parse == Document::FullParse)
{
emit ChangedActivPP(name);
}
}
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief GetNameActivPP return current pattern piece name.
* @return pattern piece name.
*/
QString VAbstractPattern::GetNameActivPP() const
{
return nameActivPP;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief GetActivDrawElement return draw tag for current pattern peace.
* @param element draw tag.
* @return true if found.
*/
bool VAbstractPattern::GetActivDrawElement(QDomElement &element) const
{
if (nameActivPP.isEmpty() == false)
{
const QDomNodeList elements = this->documentElement().elementsByTagName( TagDraw );
if (elements.size() == 0)
{
return false;
}
for ( qint32 i = 0; i < elements.count(); i++ )
{
element = elements.at( i ).toElement();
if (element.isNull() == false)
{
const QString fieldName = element.attribute( AttrName );
if ( fieldName == nameActivPP )
{
return true;
}
}
}
element = QDomElement();
}
return false;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief CheckNameDraw check if exist pattern peace with this name.
* @param name pattern peace name.
* @return true if exist.
*/
bool VAbstractPattern::CheckExistNamePP(const QString &name) const
{
Q_ASSERT_X(name.isEmpty() == false, "CheckNameDraw", "name draw is empty");
const QDomNodeList elements = this->documentElement().elementsByTagName( TagDraw );
if (elements.size() == 0)
{
return false;
}
for ( qint32 i = 0; i < elements.count(); i++ )
{
const QDomElement elem = elements.at( i ).toElement();
if (elem.isNull() == false)
{
if ( GetParametrString(elem, AttrName) == name )
{
return true;
}
}
}
return false;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief GetActivNodeElement find element in current pattern piece by name.
* @param name name tag.
* @param element element.
* @return true if found.
*/
bool VAbstractPattern::GetActivNodeElement(const QString &name, QDomElement &element) const
{
Q_ASSERT_X(name.isEmpty() == false, "GetActivNodeElement", "name draw is empty");
QDomElement drawElement;
if (GetActivDrawElement(drawElement))
{
const QDomNodeList listElement = drawElement.elementsByTagName(name);
if (listElement.size() != 1)
{
return false;
}
element = listElement.at( 0 ).toElement();
if (element.isNull() == false)
{
return true;
}
else
{
return false;
}
}
return false;
}
//---------------------------------------------------------------------------------------------------------------------
int VAbstractPattern::CountPP() const
{
const QDomElement rootElement = this->documentElement();
if (rootElement.isNull())
{
return 0;
}
return rootElement.elementsByTagName( TagDraw ).count();
}
//---------------------------------------------------------------------------------------------------------------------
QDomElement VAbstractPattern::GetPPElement(const QString &name)
{
if (name.isEmpty() == false)
{
const QDomNodeList elements = this->documentElement().elementsByTagName( TagDraw );
if (elements.size() == 0)
{
return QDomElement();
}
for ( qint32 i = 0; i < elements.count(); i++ )
{
QDomElement element = elements.at( i ).toElement();
if (element.isNull() == false)
{
if ( element.attribute( AttrName ) == name )
{
return element;
}
}
}
}
return QDomElement();
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief ChangeNamePP change pattern piece name.
* @param oldName old pattern piece name.
* @param newName new pattern piece name.
* @return true if success.
*/
bool VAbstractPattern::ChangeNamePP(const QString &oldName, const QString &newName)
{
Q_ASSERT_X(newName.isEmpty() == false, "SetNamePP", "new name pattern piece is empty");
Q_ASSERT_X(oldName.isEmpty() == false, "SetNamePP", "old name pattern piece is empty");
if (CheckExistNamePP(oldName) == false)
{
qDebug()<<"Do not exist pattern piece with name"<<oldName;
return false;
}
if (CheckExistNamePP(newName))
{
qDebug()<<"Already exist pattern piece with name"<<newName;
return false;
}
QDomElement ppElement = GetPPElement(oldName);
if (ppElement.isElement())
{
if (nameActivPP == oldName)
{
nameActivPP = newName;
}
ppElement.setAttribute(AttrName, newName);
emit patternChanged(false);//For situation when we change name directly, without undocommands.
emit ChangedNameDraw(oldName, newName);
return true;
}
else
{
qDebug()<<"Can't find pattern piece node with name"<<oldName<<Q_FUNC_INFO;
return false;
}
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief appendPP add new pattern piece.
*
* Method check if not exist pattern piece with the same name and change name active pattern piece name, send signal
* about change pattern piece. Doen't add pattern piece to file structure. This task make SPoint tool.
* @param name pattern peace name.
* @return true if success.
*/
bool VAbstractPattern::appendPP(const QString &name)
{
Q_ASSERT_X(name.isEmpty() == false, "appendPP", "name pattern piece is empty");
if (name.isEmpty())
{
return false;
}
if (CheckExistNamePP(name) == false)
{
SetActivPP(name);
return true;
}
return false;
}
//---------------------------------------------------------------------------------------------------------------------
quint32 VAbstractPattern::getCursor() const
{
return cursor;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::setCursor(const quint32 &value)
{
if (cursor != value)
{
cursor = value;
emit ChangedCursor(cursor);
}
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getTool return tool from tool list.
* @param id tool id.
* @return tool.
*/
VDataTool *VAbstractPattern::getTool(const quint32 &id)
{
ToolExists(id);
return tools.value(id);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief AddTool add tool to list tools.
* @param id tool id.
* @param tool tool.
*/
void VAbstractPattern::AddTool(const quint32 &id, VDataTool *tool)
{
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
SCASSERT(tool != nullptr);
tools.insert(id, tool);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getHistory return list with list of history records.
* @return list of history records.
*/
QVector<VToolRecord> *VAbstractPattern::getHistory()
{
return &history;
}
//---------------------------------------------------------------------------------------------------------------------
QVector<VToolRecord> VAbstractPattern::getLocalHistory() const
{
QVector<VToolRecord> historyPP;
for (qint32 i = 0; i< history.size(); ++i)
{
const VToolRecord tool = history.at(i);
if (tool.getNameDraw() != GetNameActivPP())
{
continue;
}
historyPP.append(tool);
}
return historyPP;
}
//---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::MPath() const
{
QDomNodeList list = elementsByTagName(TagMeasurements);
QDomElement element = list.at(0).toElement();
if (element.isElement())
{
return GetParametrString(element, AttrPath);
}
else
{
return QString();
}
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetPath(const QString &path)
{
if (path.isEmpty())
{
qDebug()<<"Path to measurements is empty"<<Q_FUNC_INFO;
return;
}
QDomNodeList list = elementsByTagName(TagMeasurements);
QDomElement element = list.at(0).toElement();
if (element.isElement())
{
SetAttribute(element, AttrPath, path);
emit patternChanged(false);
}
else
{
qDebug()<<"Can't save path to measurements"<<Q_FUNC_INFO;
}
}
//---------------------------------------------------------------------------------------------------------------------
Unit VAbstractPattern::MUnit() const
{
QDomNodeList list = elementsByTagName(VAbstractPattern::TagMeasurements);
QDomElement element = list.at(0).toElement();
if (element.isElement())
{
QStringList units = QStringList() <<"mm" << "cm" << "inch";
QString unit = GetParametrString(element, AttrUnit);
switch (units.indexOf(unit))
{
case 0:// mm
return Unit::Mm;
break;
case 1:// cm
return Unit::Cm;
break;
case 2:// in
return Unit::Inch;
break;
default:
return Unit::Cm;
break;
}
}
else
{
return Unit::Cm;
}
}
//---------------------------------------------------------------------------------------------------------------------
MeasurementsType VAbstractPattern::MType() const
{
QDomNodeList list = elementsByTagName(VAbstractPattern::TagMeasurements);
QDomElement element = list.at(0).toElement();
if (element.isElement())
{
QString type = GetParametrString(element, AttrType);
QStringList types = QStringList() << "standard" << "individual";
switch (types.indexOf(type))
{
case 0:// standard
return MeasurementsType::Standard;
break;
case 1:// individual
return MeasurementsType::Individual;
break;
default:
return MeasurementsType::Individual;
break;
}
}
else
{
return MeasurementsType::Individual;
}
}
//---------------------------------------------------------------------------------------------------------------------
quint32 VAbstractPattern::SiblingNodeId(const quint32 &nodeId) const
{
quint32 siblingId = NULL_ID;
const QVector<VToolRecord> history = getLocalHistory();
for (qint32 i = 0; i < history.size(); ++i)
{
const VToolRecord tool = history.at(i);
if (nodeId == tool.getId())
{
if (i == 0)
{
siblingId = NULL_ID;
}
else
{
for (qint32 j = i; j > 0; --j)
{
const VToolRecord tool = history.at(j-1);
switch ( tool.getTypeTool() )
{
case Tool::Detail:
case Tool::UnionDetails:
case Tool::NodeArc:
case Tool::NodePoint:
case Tool::NodeSpline:
case Tool::NodeSplinePath:
continue;
break;
default:
siblingId = tool.getId();
j = 0;// break loop
break;
}
}
}
}
}
return siblingId;
}
//---------------------------------------------------------------------------------------------------------------------
QStringList VAbstractPattern::getPatternPieces() const
{
return patternPieces;
}
//---------------------------------------------------------------------------------------------------------------------
QMap<GHeights, bool> VAbstractPattern::GetGradationHeights() const
{
QMap<GHeights, bool> map;
map.insert(GHeights::ALL, true);
map.insert(GHeights::H92, true);
map.insert(GHeights::H98, true);
map.insert(GHeights::H104, true);
map.insert(GHeights::H110, true);
map.insert(GHeights::H116, true);
map.insert(GHeights::H122, true);
map.insert(GHeights::H128, true);
map.insert(GHeights::H134, true);
map.insert(GHeights::H140, true);
map.insert(GHeights::H146, true);
map.insert(GHeights::H152, true);
map.insert(GHeights::H158, true);
map.insert(GHeights::H164, true);
map.insert(GHeights::H170, true);
map.insert(GHeights::H176, true);
map.insert(GHeights::H182, true);
map.insert(GHeights::H188, true);
map.insert(GHeights::H194, true);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
return map;
}
QStringList gTags = QStringList() << TagHeights << TagSizes;
QDomNode domNode = tags.at(0).firstChild();
while (domNode.isNull() == false)
{
if (domNode.isElement())
{
const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
const QString defValue = QStringLiteral("true");
switch (gTags.indexOf(domElement.tagName()))
{
case 0: // TagHeights
if (GetParametrBool(domElement, AttrAll, defValue))
{
return map;
}
else
{
map.insert(GHeights::ALL, false);
}
map.insert(GHeights::H92, GetParametrBool(domElement, AttrH92, defValue));
map.insert(GHeights::H98, GetParametrBool(domElement, AttrH98, defValue));
map.insert(GHeights::H104, GetParametrBool(domElement, AttrH104, defValue));
map.insert(GHeights::H110, GetParametrBool(domElement, AttrH110, defValue));
map.insert(GHeights::H116, GetParametrBool(domElement, AttrH116, defValue));
map.insert(GHeights::H122, GetParametrBool(domElement, AttrH122, defValue));
map.insert(GHeights::H128, GetParametrBool(domElement, AttrH128, defValue));
map.insert(GHeights::H134, GetParametrBool(domElement, AttrH134, defValue));
map.insert(GHeights::H140, GetParametrBool(domElement, AttrH140, defValue));
map.insert(GHeights::H146, GetParametrBool(domElement, AttrH146, defValue));
map.insert(GHeights::H152, GetParametrBool(domElement, AttrH152, defValue));
map.insert(GHeights::H158, GetParametrBool(domElement, AttrH158, defValue));
map.insert(GHeights::H164, GetParametrBool(domElement, AttrH164, defValue));
map.insert(GHeights::H170, GetParametrBool(domElement, AttrH170, defValue));
map.insert(GHeights::H176, GetParametrBool(domElement, AttrH176, defValue));
map.insert(GHeights::H182, GetParametrBool(domElement, AttrH182, defValue));
map.insert(GHeights::H188, GetParametrBool(domElement, AttrH188, defValue));
map.insert(GHeights::H194, GetParametrBool(domElement, AttrH194, defValue));
return map;
break;
case 1: // TagSizes
break;
default:
break;
}
}
}
domNode = domNode.nextSibling();
}
return map;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetGradationHeights(const QMap<GHeights, bool> &options)
{
CheckTagExists(TagGradation);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
return;
}
QStringList gTags = QStringList() << TagHeights << TagSizes;
QDomNode domNode = tags.at(0).firstChild();
while (domNode.isNull() == false)
{
if (domNode.isElement())
{
QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
switch (gTags.indexOf(domElement.tagName()))
{
case 0: // TagHeights
SetAttribute(domElement, AttrAll, options.value(GHeights::ALL));
SetAttribute(domElement, AttrH92, options.value(GHeights::H92));
SetAttribute(domElement, AttrH98, options.value(GHeights::H98));
SetAttribute(domElement, AttrH104, options.value(GHeights::H104));
SetAttribute(domElement, AttrH110, options.value(GHeights::H110));
SetAttribute(domElement, AttrH116, options.value(GHeights::H116));
SetAttribute(domElement, AttrH122, options.value(GHeights::H122));
SetAttribute(domElement, AttrH128, options.value(GHeights::H128));
SetAttribute(domElement, AttrH134, options.value(GHeights::H134));
SetAttribute(domElement, AttrH140, options.value(GHeights::H140));
SetAttribute(domElement, AttrH146, options.value(GHeights::H146));
SetAttribute(domElement, AttrH152, options.value(GHeights::H152));
SetAttribute(domElement, AttrH158, options.value(GHeights::H158));
SetAttribute(domElement, AttrH164, options.value(GHeights::H164));
SetAttribute(domElement, AttrH170, options.value(GHeights::H170));
SetAttribute(domElement, AttrH176, options.value(GHeights::H176));
SetAttribute(domElement, AttrH182, options.value(GHeights::H182));
SetAttribute(domElement, AttrH188, options.value(GHeights::H188));
SetAttribute(domElement, AttrH194, options.value(GHeights::H194));
emit patternChanged(false);
return;
break;
case 1: // TagSizes
break;
default:
break;
}
}
}
domNode = domNode.nextSibling();
}
}
//---------------------------------------------------------------------------------------------------------------------
QMap<GSizes, bool> VAbstractPattern::GetGradationSizes() const
{
QMap<GSizes, bool> map;
map.insert(GSizes::ALL, true);
map.insert(GSizes::S22, true);
map.insert(GSizes::S24, true);
map.insert(GSizes::S26, true);
map.insert(GSizes::S28, true);
map.insert(GSizes::S30, true);
map.insert(GSizes::S32, true);
map.insert(GSizes::S34, true);
map.insert(GSizes::S36, true);
map.insert(GSizes::S38, true);
map.insert(GSizes::S40, true);
map.insert(GSizes::S42, true);
map.insert(GSizes::S44, true);
map.insert(GSizes::S46, true);
map.insert(GSizes::S48, true);
map.insert(GSizes::S50, true);
map.insert(GSizes::S52, true);
map.insert(GSizes::S54, true);
map.insert(GSizes::S56, true);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
return map;
}
QStringList gTags = QStringList() << TagHeights << TagSizes;
QDomNode domNode = tags.at(0).firstChild();
while (domNode.isNull() == false)
{
if (domNode.isElement())
{
const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
const QString defValue = QStringLiteral("true");
switch (gTags.indexOf(domElement.tagName()))
{
case 0: // TagHeights
break;
case 1: // TagSizes
if (GetParametrBool(domElement, AttrAll, defValue))
{
return map;
}
else
{
map.insert(GSizes::ALL, false);
}
map.insert(GSizes::S22, GetParametrBool(domElement, AttrS22, defValue));
map.insert(GSizes::S24, GetParametrBool(domElement, AttrS24, defValue));
map.insert(GSizes::S26, GetParametrBool(domElement, AttrS26, defValue));
map.insert(GSizes::S28, GetParametrBool(domElement, AttrS28, defValue));
map.insert(GSizes::S30, GetParametrBool(domElement, AttrS30, defValue));
map.insert(GSizes::S32, GetParametrBool(domElement, AttrS32, defValue));
map.insert(GSizes::S34, GetParametrBool(domElement, AttrS34, defValue));
map.insert(GSizes::S36, GetParametrBool(domElement, AttrS36, defValue));
map.insert(GSizes::S38, GetParametrBool(domElement, AttrS38, defValue));
map.insert(GSizes::S40, GetParametrBool(domElement, AttrS40, defValue));
map.insert(GSizes::S42, GetParametrBool(domElement, AttrS42, defValue));
map.insert(GSizes::S44, GetParametrBool(domElement, AttrS44, defValue));
map.insert(GSizes::S46, GetParametrBool(domElement, AttrS46, defValue));
map.insert(GSizes::S48, GetParametrBool(domElement, AttrS48, defValue));
map.insert(GSizes::S50, GetParametrBool(domElement, AttrS50, defValue));
map.insert(GSizes::S52, GetParametrBool(domElement, AttrS52, defValue));
map.insert(GSizes::S54, GetParametrBool(domElement, AttrS54, defValue));
map.insert(GSizes::S56, GetParametrBool(domElement, AttrS56, defValue));
return map;
break;
default:
break;
}
}
}
domNode = domNode.nextSibling();
}
return map;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetGradationSizes(const QMap<GSizes, bool> &options)
{
CheckTagExists(TagGradation);
QDomNodeList tags = elementsByTagName(TagGradation);
if (tags.size() == 0)
{
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
return;
}
QStringList gTags = QStringList() << TagHeights << TagSizes;
QDomNode domNode = tags.at(0).firstChild();
while (domNode.isNull() == false)
{
if (domNode.isElement())
{
QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false)
{
switch (gTags.indexOf(domElement.tagName()))
{
case 0: // TagHeights
break;
case 1: // TagSizes
SetAttribute(domElement, AttrAll, options.value(GSizes::ALL));
SetAttribute(domElement, AttrS22, options.value(GSizes::S22));
SetAttribute(domElement, AttrS24, options.value(GSizes::S24));
SetAttribute(domElement, AttrS26, options.value(GSizes::S26));
SetAttribute(domElement, AttrS28, options.value(GSizes::S28));
SetAttribute(domElement, AttrS30, options.value(GSizes::S30));
SetAttribute(domElement, AttrS32, options.value(GSizes::S32));
SetAttribute(domElement, AttrS34, options.value(GSizes::S34));
SetAttribute(domElement, AttrS36, options.value(GSizes::S36));
SetAttribute(domElement, AttrS38, options.value(GSizes::S38));
SetAttribute(domElement, AttrS40, options.value(GSizes::S40));
SetAttribute(domElement, AttrS42, options.value(GSizes::S42));
SetAttribute(domElement, AttrS44, options.value(GSizes::S44));
SetAttribute(domElement, AttrS46, options.value(GSizes::S46));
SetAttribute(domElement, AttrS48, options.value(GSizes::S48));
SetAttribute(domElement, AttrS50, options.value(GSizes::S50));
SetAttribute(domElement, AttrS52, options.value(GSizes::S52));
SetAttribute(domElement, AttrS54, options.value(GSizes::S54));
SetAttribute(domElement, AttrS56, options.value(GSizes::S56));
emit patternChanged(false);
return;
break;
default:
break;
}
}
}
domNode = domNode.nextSibling();
}
}
//---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::GetDescription() const
{
return UniqueTagText(TagDescription);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetDescription(const QString &text)
{
CheckTagExists(TagDescription);
setTagText(TagDescription, text);
emit patternChanged(false);
}
//---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::GetNotes() const
{
return UniqueTagText(TagNotes);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetNotes(const QString &text)
{
CheckTagExists(TagNotes);
setTagText(TagNotes, text);
emit patternChanged(false);
}
//---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::GetVersion() const
{
return UniqueTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::SetVersion()
{
setTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
emit patternChanged(false);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief haveLiteChange we have unsaved change.
*/
void VAbstractPattern::haveLiteChange()
{
emit patternChanged(false);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief ShowHistoryTool hightlight tool.
* @param id tool id.
* @param enable enable or diasable hightlight.
*/
void VAbstractPattern::ShowHistoryTool(quint32 id, bool enable)
{
emit ShowTool(id, enable);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::NeedFullParsing()
{
emit UndoCommand();
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::ClearScene()
{
emit ClearMainWindow();
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::ToolExists(const quint32 &id) const
{
if (tools.contains(id) == false)
{
throw VExceptionBadId(tr("Can't find tool in table."), id);
}
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief SetActivPP set current pattern piece.
* @param name pattern peace name.
*/
void VAbstractPattern::SetActivPP(const QString &name)
{
Q_ASSERT_X(name.isEmpty() == false, "SetActivPP", "name pattern piece is empty");
this->nameActivPP = name;
emit ChangedActivPP(name);
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::CheckTagExists(const QString &tag)
{
QDomNodeList list = elementsByTagName(tag);
if (list.size() == 0)
{
QStringList tags = QStringList() << TagVersion << TagAuthor << TagDescription << TagNotes << TagGradation;
QDomElement pattern = documentElement();
switch (tags.indexOf(tag))
{
case 0: //TagVersion
break;// Mandatory tag
case 1: //TagAuthor
pattern.insertAfter(createElement(TagAuthor), elementsByTagName(TagVersion).at(0));
SetVersion();
break;
case 2: //TagDescription
{
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
{
QDomNodeList list = elementsByTagName(tags.at(i));
if (list.isEmpty())
{
continue;
}
pattern.insertAfter(createElement(TagDescription), list.at(0));
}
SetVersion();
break;
}
case 3: //TagNotes
{
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
{
QDomNodeList list = elementsByTagName(tags.at(i));
if (list.isEmpty())
{
continue;
}
pattern.insertAfter(createElement(TagNotes), list.at(0));
}
SetVersion();
break;
}
case 4: //TagGradation
{
QDomElement gradation = createElement(TagGradation);
gradation.appendChild(createElement(TagHeights));
gradation.appendChild(createElement(TagSizes));
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
{
QDomNodeList list = elementsByTagName(tags.at(i));
if (list.isEmpty())
{
continue;
}
pattern.insertAfter(gradation, list.at(0));
break;
}
SetVersion();
break;
}
default:
break;
}
}
}

View file

@ -0,0 +1,257 @@
/************************************************************************
**
** @file vabstractpattern.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 15 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VABSTRACTPATTERN_H
#define VABSTRACTPATTERN_H
#include "vdomdocument.h"
#include "vtoolrecord.h"
#include <QObject>
enum class Document : char { LiteParse, LitePPParse, FullParse };
enum class CrossCirclesPoint : char {FirstPoint = 1, SecondPoint = 2};
enum class LabelType : char {NewPatternPiece, NewLabel};
class VDataTool;
class VContainer;
class VAbstractPattern : public QObject, public VDomDocument
{
Q_OBJECT
public:
VAbstractPattern(QObject *parent = nullptr);
virtual ~VAbstractPattern();
virtual void CreateEmptyFile(const QString &tablePath)=0;
void ChangeActivPP(const QString& name, const Document &parse = Document::FullParse);
QString GetNameActivPP() const;
bool CheckExistNamePP(const QString& name) const;
int CountPP() const;
QDomElement GetPPElement(const QString &name);
bool ChangeNamePP(const QString& oldName, const QString &newName);
bool appendPP(const QString& name);
bool GetActivDrawElement(QDomElement &element) const;
bool GetActivNodeElement(const QString& name, QDomElement& element) const;
quint32 getCursor() const;
void setCursor(const quint32 &value);
virtual void IncrementReferens(quint32 id) const=0;
virtual void DecrementReferens(quint32 id) const=0;
virtual QString GenerateLabel(const LabelType &type)const=0;
virtual void UpdateToolData(const quint32 &id, VContainer *data)=0;
QHash<quint32, VDataTool *> *getTools();
VDataTool *getTool(const quint32 &id);
void AddTool(const quint32 &id, VDataTool *tool);
QVector<VToolRecord> *getHistory();
QVector<VToolRecord> getLocalHistory() const;
QString MPath() const;
void SetPath(const QString &path);
Unit MUnit() const;
MeasurementsType MType() const;
quint32 SiblingNodeId(const quint32 &nodeId) const;
QStringList getPatternPieces() const;
QMap<GHeights, bool> GetGradationHeights() const;
void SetGradationHeights(const QMap<GHeights, bool> &options);
QMap<GSizes, bool> GetGradationSizes() const;
void SetGradationSizes(const QMap<GSizes, bool> &options);
QString GetDescription() const;
void SetDescription(const QString &text);
QString GetNotes() const;
void SetNotes(const QString &text);
QString GetVersion() const;
void SetVersion();
static const QString TagPattern;
static const QString TagCalculation;
static const QString TagModeling;
static const QString TagDetails;
static const QString TagAuthor;
static const QString TagDescription;
static const QString TagNotes;
static const QString TagMeasurements;
static const QString TagIncrements;
static const QString TagIncrement;
static const QString TagDraw;
static const QString TagPoint;
static const QString TagLine;
static const QString TagSpline;
static const QString TagArc;
static const QString TagTools;
static const QString TagGradation;
static const QString TagHeights;
static const QString TagSizes;
static const QString AttrName;
static const QString AttrType;
static const QString AttrPath;
static const QString AttrAll;
static const QString AttrH92;
static const QString AttrH98;
static const QString AttrH104;
static const QString AttrH110;
static const QString AttrH116;
static const QString AttrH122;
static const QString AttrH128;
static const QString AttrH134;
static const QString AttrH140;
static const QString AttrH146;
static const QString AttrH152;
static const QString AttrH158;
static const QString AttrH164;
static const QString AttrH170;
static const QString AttrH176;
static const QString AttrH182;
static const QString AttrH188;
static const QString AttrH194;
static const QString AttrS22;
static const QString AttrS24;
static const QString AttrS26;
static const QString AttrS28;
static const QString AttrS30;
static const QString AttrS32;
static const QString AttrS34;
static const QString AttrS36;
static const QString AttrS38;
static const QString AttrS40;
static const QString AttrS42;
static const QString AttrS44;
static const QString AttrS46;
static const QString AttrS48;
static const QString AttrS50;
static const QString AttrS52;
static const QString AttrS54;
static const QString AttrS56;
static const QString IncrementName;
static const QString IncrementBase;
static const QString IncrementKsize;
static const QString IncrementKgrowth;
static const QString IncrementDescription;
signals:
/**
* @brief ChangedActivDraw change active pattern peace.
* @param newName new pattern peace name.
*/
void ChangedActivPP(const QString &newName);
/**
* @brief ChangedCursor change cursor position.
* @param id tool id.
*/
void ChangedCursor(quint32 id);
/**
* @brief ChangedNameDraw save new name pattern peace.
* @param oldName old name.
* @param newName new name.
*/
void ChangedNameDraw(const QString &oldName, const QString &newName);
/**
* @brief FullUpdateFromFile update tool data form file.
*/
void FullUpdateFromFile();
/**
* @brief patternChanged emit if we have unsaved change.
*/
void patternChanged(bool saved);
/**
* @brief ShowTool highlight tool.
* @param id tool id.
* @param enable enable or disable highlight.
*/
void ShowTool(quint32 id, bool enable);
void ClearMainWindow();
void UndoCommand();
void SetEnabledGUI(bool enabled);
void CheckLayout();
void SetCurrentPP(const QString &patterPiece);
public slots:
virtual void LiteParseTree(const Document &parse)=0;
void haveLiteChange();
void ShowHistoryTool(quint32 id, bool enable);
void NeedFullParsing();
void ClearScene();
protected:
/** @brief nameActivDraw name current pattern peace. */
QString nameActivPP;
/** @brief cursor cursor keep id tool after which we will add new tool in file. */
quint32 cursor;
/** @brief tools list with pointer on tools. */
QHash<quint32, VDataTool*> tools;
/** @brief history history records. */
QVector<VToolRecord> history;
/** @brief patternPieces list of patern pieces names for combobox*/
QStringList patternPieces;
void ToolExists(const quint32 &id) const;
void SetActivPP(const QString& name);
void CheckTagExists(const QString &tag);
private:
Q_DISABLE_COPY(VAbstractPattern)
};
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getTools return list of tools pointers.
* @return list.
*/
inline QHash<quint32, VDataTool *> *VAbstractPattern::getTools()
{
return &tools;
}
#endif // VABSTRACTPATTERN_H

View file

@ -33,8 +33,9 @@
#include <QDebug>
#include <QCoreApplication>
#include "ifcdef.h"
#include "../../../utils/logging.h"
#include "../ifc/ifcdef.h"
#include "../vmisc/def.h"
#include "../vmisc/logging.h"
Q_DECLARE_LOGGING_CATEGORY(vXML)

View file

@ -29,7 +29,7 @@
#ifndef VTOOLRECORD_H
#define VTOOLRECORD_H
#include "../../utils/def.h"
#include "../vmisc/def.h"
#include <QString>

View file

@ -5,10 +5,12 @@ HEADERS += \
$$PWD/vabstractconverter.h \
$$PWD/vdomdocument.h \
$$PWD/vpatternconverter.h \
$$PWD/vtoolrecord.h
$$PWD/vtoolrecord.h \
xml/vabstractpattern.h
SOURCES += \
$$PWD/vabstractconverter.cpp \
$$PWD/vdomdocument.cpp \
$$PWD/vpatternconverter.cpp \
$$PWD/vtoolrecord.cpp
$$PWD/vtoolrecord.cpp \
xml/vabstractpattern.cpp

View file

@ -6,6 +6,7 @@ SUBDIRS = \
vobj \
vlayout \
vgeometry \
vpatterndb
vgeometry.depends = ifc
vpatterndb \
vmisc \
vwidgets \
vtools

View file

@ -25,7 +25,6 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += QT_MESSAGELOGCONTEXT
include(vgeometry.pri)
include(../../utils/utils.pri)
# This is static library so no need in "make install"
@ -95,12 +94,3 @@ CONFIG(debug, debug|release){
}
}
}
# IFC static library
unix|win32: LIBS += -L$$OUT_PWD/../ifc/$${DESTDIR}/ -lifc
INCLUDEPATH += $$PWD/../ifc
DEPENDPATH += $$PWD/../ifc
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../ifc/$${DESTDIR}/ifc.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../ifc/$${DESTDIR}/libifc.a

View file

@ -31,7 +31,7 @@
#include "../ifc/exception/vexception.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -33,7 +33,7 @@
#include <QPointF>
#include <QLineF>
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -27,7 +27,6 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += QT_MESSAGELOGCONTEXT
include(vlayout.pri)
include(../../utils/utils.pri)
# This is static library so no need in "make install"

View file

@ -32,7 +32,7 @@
#include <QGraphicsItem>
#include <QPainterPath>
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -27,7 +27,7 @@
*************************************************************************/
#include "vposition.h"
#include "../../utils/def.h"
#include "../vmisc/def.h"
#include <QPointF>
#include <QRectF>
@ -40,7 +40,7 @@
#include <QDir>
#include <QtWidgets>
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -30,12 +30,12 @@
#include <QPainter>
#include <QPrinter>
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif
#include "../../utils/def.h"
#include "../vmisc/def.h"
//---------------------------------------------------------------------------------------------------------------------
VPoster::VPoster(const QPrinter *printer)

View file

@ -28,6 +28,8 @@
#include "def.h"
#include <QApplication>
// Keep synchronize all names with initialization in VApllication class!!!!!
//measurements
//head and neck
@ -216,3 +218,172 @@ const QStringList builInFunctions = QStringList() << sin_F << cos_F << tan_F
const QString cm_Oprt = QStringLiteral("cm");
const QString mm_Oprt = QStringLiteral("mm");
const QString in_Oprt = QStringLiteral("in");
const QString cursorArrowOpenHand = QStringLiteral("://cursor/cursor-arrow-openhand.png");
const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-closehand.png");
// From documantation: If you use QStringLiteral you should avoid declaring the same literal in multiple places: This
// furthermore blows up the binary sizes.
const QString degreeSymbol = QStringLiteral("°");
//---------------------------------------------------------------------------------------------------------------------
void SetOverrideCursor(const QString &pixmapPath, int hotX, int hotY)
{
#ifndef QT_NO_CURSOR
QPixmap oldPixmap;
if (QCursor *oldCursor = QGuiApplication::overrideCursor())
{
oldPixmap = oldCursor->pixmap();
}
QPixmap newPixmap(pixmapPath);
QImage oldImage = oldPixmap.toImage();
QImage newImage = newPixmap.toImage();
if (oldImage != newImage )
{
QApplication::setOverrideCursor(QCursor(newPixmap, hotX, hotY));
}
#endif
}
//---------------------------------------------------------------------------------------------------------------------
void RestoreOverrideCursor(const QString &pixmapPath)
{
#ifndef QT_NO_CURSOR
QPixmap oldPixmap;
if (QCursor *oldCursor = QGuiApplication::overrideCursor())
{
oldPixmap = oldCursor->pixmap();
}
QPixmap newPixmap(pixmapPath);
QImage oldImage = oldPixmap.toImage();
QImage newImage = newPixmap.toImage();
if (oldImage == newImage )
{
QApplication::restoreOverrideCursor();
}
#endif
}
const qreal PrintDPI = 96.0;
//---------------------------------------------------------------------------------------------------------------------
double ToPixel(double val, const Unit &unit)
{
switch (unit)
{
case Unit::Mm:
return (val / 25.4) * PrintDPI;
case Unit::Cm:
return ((val * 10.0) / 25.4) * PrintDPI;
case Unit::Inch:
return val * PrintDPI;
case Unit::Px:
return val;
default:
break;
}
return 0;
}
//---------------------------------------------------------------------------------------------------------------------
double FromPixel(double pix, const Unit &unit)
{
switch (unit)
{
case Unit::Mm:
return (pix / PrintDPI) * 25.4;
case Unit::Cm:
return ((pix / PrintDPI) * 25.4) / 10.0;
case Unit::Inch:
return pix / PrintDPI;
case Unit::Px:
return pix;
default:
break;
}
return 0;
}
//---------------------------------------------------------------------------------------------------------------------
qreal UnitConvertor(qreal value, const Unit &from, const Unit &to)
{
switch (from)
{
case Unit::Mm:
switch (to)
{
case Unit::Mm:
return value;
case Unit::Cm:
return value / 10.0;
case Unit::Inch:
return value / 25.4;
case Unit::Px:
return (value / 25.4) * PrintDPI;
default:
break;
}
break;
case Unit::Cm:
switch (to)
{
case Unit::Mm:
return value * 10.0;
case Unit::Cm:
return value;
case Unit::Inch:
return value / 2.54;
case Unit::Px:
return ((value * 10.0) / 25.4) * PrintDPI;
default:
break;
}
break;
case Unit::Inch:
switch (to)
{
case Unit::Mm:
return value * 25.4;
case Unit::Cm:
return value * 2.54;
case Unit::Inch:
return value;
case Unit::Px:
return value * PrintDPI;
default:
break;
}
break;
case Unit::Px:
switch (to)
{
case Unit::Mm:
return (value / PrintDPI) * 25.4;
case Unit::Cm:
return ((value / PrintDPI) * 25.4) / 10.0;
case Unit::Inch:
return value / PrintDPI;
case Unit::Px:
return value;
default:
break;
}
break;
default:
break;
}
return 0;
}
//---------------------------------------------------------------------------------------------------------------------
void CheckFactor(qreal &oldFactor, const qreal &Newfactor)
{
if (Newfactor <= 2 && Newfactor >= 0.5)
{
oldFactor = Newfactor;
}
}

View file

@ -33,7 +33,14 @@
#include <QtGlobal>
#include <QStringList>
#define SceneSize 50000
#define DefPointRadius 1.5//mm
enum class NodeDetail : char { Contour, Modeling };
enum class SceneObject : char { Point, Line, Spline, Arc, SplinePath, Detail, Unknown };
enum class MeasurementsType : char { Standard, Individual };
enum class Unit : char { Mm, Cm, Inch, Px };
enum class Source : char { FromGui, FromFile, FromTool };
enum class Tool : unsigned char
{
@ -367,4 +374,21 @@ extern const QString cm_Oprt;
extern const QString mm_Oprt;
extern const QString in_Oprt;
extern const QString cursorArrowOpenHand;
extern const QString cursorArrowCloseHand;
extern const QString degreeSymbol;
void SetOverrideCursor(const QString & pixmapPath, int hotX = -1, int hotY = -1);
void RestoreOverrideCursor(const QString & pixmapPath);
extern const qreal PrintDPI;
double ToPixel(double val, const Unit &unit);
double FromPixel(double pix, const Unit &unit);
qreal UnitConvertor(qreal value, const Unit &from, const Unit &to);
void CheckFactor(qreal &oldFactor, const qreal &Newfactor);
#endif // DEF_H

30
src/libs/vmisc/stable.cpp Normal file
View file

@ -0,0 +1,30 @@
/************************************************************************
**
** @file stable.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 10 12, 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
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
// Build the precompiled headers.
#include "stable.h"

52
src/libs/vmisc/stable.h Normal file
View file

@ -0,0 +1,52 @@
/************************************************************************
**
** @file stable.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 10 12, 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
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef STABLE_H
#define STABLE_H
/* I like to include this pragma too, so the build log indicates if pre-compiled headers were in use. */
#ifndef __clang__
#pragma message("Compiling precompiled headers for VMisc library.\n")
#endif
/* Add C includes here */
#if defined __cplusplus
/* Add C++ includes here */
#ifdef QT_CORE_LIB
#include <QtCore>
#endif
#ifdef QT_GUI_LIB
# include <QtGui>
#endif
#endif/*__cplusplus*/
#endif // STABLE_H

View file

@ -0,0 +1,127 @@
/************************************************************************
**
** @file vabstractapplication.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 18 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "vabstractapplication.h"
#include "../vmisc/def.h"
//---------------------------------------------------------------------------------------------------------------------
VAbstractApplication::VAbstractApplication(int &argc, char **argv)
:QApplication(argc, argv),
undoStack(nullptr),
mainWindow(nullptr),
_patternUnit(Unit::Cm),
_patternType(MeasurementsType::Individual),
settings(nullptr),
currentScene(nullptr),
sceneView(nullptr),
doc(nullptr),
openingPattern(false)
{}
//---------------------------------------------------------------------------------------------------------------------
VAbstractApplication::~VAbstractApplication()
{}
//---------------------------------------------------------------------------------------------------------------------
Unit VAbstractApplication::patternUnit() const
{
return _patternUnit;
}
//---------------------------------------------------------------------------------------------------------------------
const Unit *VAbstractApplication::patternUnitP() const
{
return &_patternUnit;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractApplication::setPatternUnit(const Unit &patternUnit)
{
_patternUnit = patternUnit;
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief OpenSettings get acsses to application settings.
*
* Because we can create object in constructor we open file separately.
*/
void VAbstractApplication::OpenSettings()
{
settings = new VSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(),
QApplication::applicationName(), this);
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief getSettings hide settings constructor.
* @return pointer to class for acssesing to settings in ini file.
*/
VSettings *VAbstractApplication::Settings()
{
SCASSERT(settings != nullptr);
return settings;
}
//---------------------------------------------------------------------------------------------------------------------
QGraphicsScene *VAbstractApplication::getCurrentScene() const
{
SCASSERT(currentScene != nullptr);
return currentScene;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractApplication::setCurrentScene(QGraphicsScene *value)
{
currentScene = value;
}
//---------------------------------------------------------------------------------------------------------------------
VMainGraphicsView *VAbstractApplication::getSceneView() const
{
return sceneView;
}
//---------------------------------------------------------------------------------------------------------------------
void VAbstractApplication::setSceneView(VMainGraphicsView *value)
{
sceneView = value;
}
//---------------------------------------------------------------------------------------------------------------------
double VAbstractApplication::toPixel(double val) const
{
return ToPixel(val, _patternUnit);
}
//---------------------------------------------------------------------------------------------------------------------
double VAbstractApplication::fromPixel(double pix) const
{
return FromPixel(pix, _patternUnit);
}

View file

@ -0,0 +1,184 @@
/************************************************************************
**
** @file vabstractapplication.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 18 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VABSTRACTAPPLICATION_H
#define VABSTRACTAPPLICATION_H
#include <QApplication>
#include <QGraphicsScene>
#include "def.h"
#include "vsettings.h"
class VAbstractApplication;// use in define
class VTranslateVars;
class VAbstractPattern;
class VMainGraphicsView;
class QUndoStack;
#if defined(qApp)
#undef qApp
#endif
#define qApp (static_cast<VAbstractApplication*>(QCoreApplication::instance()))
class VAbstractApplication : public QApplication
{
public:
VAbstractApplication(int &argc, char ** argv);
virtual ~VAbstractApplication();
virtual const VTranslateVars *TrVars()=0;
Unit patternUnit() const;
const Unit *patternUnitP() const;
void setPatternUnit(const Unit &patternUnit);
MeasurementsType patternType() const;
void setPatternType(const MeasurementsType &patternType);
void OpenSettings();
VSettings *Settings();
template <typename T>
QString LocaleToString(const T &value);
QGraphicsScene *getCurrentScene() const;
void setCurrentScene(QGraphicsScene *value);
VMainGraphicsView *getSceneView() const;
void setSceneView(VMainGraphicsView *value);
double toPixel(double val) const;
double fromPixel(double pix) const;
void setCurrentDocument(VAbstractPattern *doc);
VAbstractPattern *getCurrentDocument()const;
bool getOpeningPattern() const;
void setOpeningPattern();
QWidget *getMainWindow() const;
void setMainWindow(QWidget *value);
QUndoStack *getUndoStack() const;
protected:
QUndoStack *undoStack;
/**
* @brief mainWindow pointer to main window. Usefull if need create modal dialog. Without pointer to main window
* modality doesn't work.
*/
QWidget *mainWindow;
private:
Q_DISABLE_COPY(VAbstractApplication)
Unit _patternUnit;
MeasurementsType _patternType;
/**
* @brief settings pointer to settings. Help hide constructor creation settings. Make make code more readable.
*/
VSettings *settings;
QGraphicsScene *currentScene;
VMainGraphicsView *sceneView;
VAbstractPattern *doc;
/**
* @brief openingPattern true when we opening pattern. If something will be wrong in formula this help understand if
* we can allow user use Undo option.
*/
bool openingPattern;
};
//---------------------------------------------------------------------------------------------------------------------
inline MeasurementsType VAbstractApplication::patternType() const
{
return _patternType;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VAbstractApplication::setPatternType(const MeasurementsType &patternType)
{
_patternType = patternType;
}
//---------------------------------------------------------------------------------------------------------------------
template <typename T>
QString VAbstractApplication::LocaleToString(const T &value)
{
QLocale loc;
qApp->Settings()->GetOsSeparator() ? loc = QLocale::system() : loc = QLocale(QLocale::C);
return loc.toString(value);
}
//---------------------------------------------------------------------------------------------------------------------
inline void VAbstractApplication::setCurrentDocument(VAbstractPattern *doc)
{
this->doc = doc;
}
//---------------------------------------------------------------------------------------------------------------------
inline VAbstractPattern *VAbstractApplication::getCurrentDocument() const
{
SCASSERT(doc != nullptr)
return doc;
}
//---------------------------------------------------------------------------------------------------------------------
inline bool VAbstractApplication::getOpeningPattern() const
{
return openingPattern;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VAbstractApplication::setOpeningPattern()
{
openingPattern = !openingPattern;
}
//---------------------------------------------------------------------------------------------------------------------
inline QWidget *VAbstractApplication::getMainWindow() const
{
return mainWindow;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VAbstractApplication::setMainWindow(QWidget *value)
{
SCASSERT(value != nullptr)
mainWindow = value;
}
//---------------------------------------------------------------------------------------------------------------------
inline QUndoStack *VAbstractApplication::getUndoStack() const
{
return undoStack;
}
#endif // VABSTRACTAPPLICATION_H

22
src/libs/vmisc/vmisc.pri Normal file
View file

@ -0,0 +1,22 @@
# ADD TO EACH PATH $$PWD VARIABLE!!!!!!
# This need for corect working file translations.pro
SOURCES += \
$$PWD/stable.cpp \
$$PWD/def.cpp \
$$PWD/undoevent.cpp \
$$PWD/backport/qcommandlineoption.cpp \
$$PWD/backport/qcommandlineparser.cpp \
$$PWD/vsettings.cpp \
$$PWD/vabstractapplication.cpp
HEADERS += \
$$PWD/stable.h \
$$PWD/def.h \
$$PWD/logging.h \
$$PWD/vmath.h \
$$PWD/undoevent.h \
$$PWD/backport/qcommandlineoption.h \
$$PWD/backport/qcommandlineparser.h \
$$PWD/vsettings.h \
$$PWD/vabstractapplication.h

103
src/libs/vmisc/vmisc.pro Normal file
View file

@ -0,0 +1,103 @@
#-------------------------------------------------
#
# Project created by QtCreator 2015-06-15T14:07:14
#
#-------------------------------------------------
# File with common stuff for whole project
include(../../../Valentina.pri)
QT += widgets
# Name of library
TARGET = vmisc
# We want to create a library
TEMPLATE = lib
CONFIG += \
staticlib \# Making static library
c++11 # We use C++11 standard
# Use out-of-source builds (shadow builds)
CONFIG -= debug_and_release debug_and_release_target
# Since Qt 5.4.0 the source code location is recorded only in debug builds.
# We need this information also in release builds. For this need define QT_MESSAGELOGCONTEXT.
DEFINES += QT_MESSAGELOGCONTEXT
include(vmisc.pri)
# This is static library so no need in "make install"
# directory for executable file
DESTDIR = bin
# files created moc
MOC_DIR = moc
# objecs files
OBJECTS_DIR = obj
# Set using ccache. Function enable_ccache() defined in Valentina.pri.
$$enable_ccache()
# Set precompiled headers. Function set_PCH() defined in Valentina.pri.
$$set_PCH()
CONFIG(debug, debug|release){
# Debug mode
unix {
#Turn on compilers warnings.
*-g++{
QMAKE_CXXFLAGS += \
# Key -isystem disable checking errors in system headers.
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
$$GCC_DEBUG_CXXFLAGS # See Valentina.pri for more details.
noAddressSanitizer{ # For enable run qmake with CONFIG+=noAddressSanitizer
# do nothing
} else {
#gccs 4.8.0 Address Sanitizer
#http://blog.qt.digia.com/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt/
QMAKE_CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
QMAKE_CFLAGS += -fsanitize=address -fno-omit-frame-pointer
QMAKE_LFLAGS += -fsanitize=address
}
}
clang*{
QMAKE_CXXFLAGS += \
# Key -isystem disable checking errors in system headers.
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
$$CLANG_DEBUG_CXXFLAGS # See Valentina.pri for more details.
# -isystem key works only for headers. In some cases it's not enough. But we can't delete these warnings and
# want them in global list. Compromise decision delete them from local list.
QMAKE_CXXFLAGS -= \
-Wmissing-prototypes
}
} else {
*-g++{
QMAKE_CXXFLAGS += $$GCC_DEBUG_CXXFLAGS # See Valentina.pri for more details.
}
}
}else{
# Release mode
DEFINES += V_NO_ASSERT
!unix:*-g++{
QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll
}
noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
# do nothing
} else {
!macx:!win32-msvc*{
# Turn on debug symbols in release mode on Unix systems.
# On Mac OS X temporarily disabled. TODO: find way how to strip binary file.
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3
QMAKE_LFLAGS_RELEASE =
}
}
}

View file

@ -33,10 +33,10 @@
#include <QLocale>
#include <QApplication>
#include "../xml/vabstractmeasurements.h"
#include "../../libs/ifc/ifcdef.h"
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -25,7 +25,6 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += QT_MESSAGELOGCONTEXT
include(vobj.pri)
include(../../utils/utils.pri)
# This is static library so no need in "make install"

View file

@ -31,7 +31,7 @@
#include <QTextStream>
#include <QDebug>
#if QT_VERSION < QT_VERSION_CHECK(5, 1, 0)
# include "../../utils/vmath.h"
# include "../libs/vmisc/vmath.h"
#else
# include <QtMath>
#endif

View file

@ -30,7 +30,7 @@
#define CALCULATOR_H
#include "../qmuparser/qmuparser.h"
#include "../ifc/ifcdef.h"
#include "../vmisc/def.h"
class VContainer;

View file

@ -31,7 +31,7 @@
#include <QString>
#include <QSharedDataPointer>
#include "../../utils/def.h"
#include "../vmisc/def.h"
class VInternalVariableData;

View file

@ -29,7 +29,7 @@
#include "vcontainer.h"
#include "../vgeometry/varc.h"
#include "../vgeometry/vsplinepath.h"
#include "../../utils/logging.h"
#include "../vmisc/logging.h"
#include "vtranslatevars.h"
#include <QLineF>
@ -454,9 +454,9 @@ const QMap<QString, QSharedPointer<VArcAngle> > VContainer::DataAnglesArcs() con
}
//---------------------------------------------------------------------------------------------------------------------
const QMap<QString, QSharedPointer<VCurveAngle> > VContainer::DataAnglesCurves() const
const QMap<QString, QSharedPointer<VSplineAngle> > VContainer::DataAnglesCurves() const
{
return DataVar<VCurveAngle>(VarType::SplineAngle);
return DataVar<VSplineAngle>(VarType::SplineAngle);
}
//---------------------------------------------------------------------------------------------------------------------

View file

@ -156,7 +156,7 @@ public:
const QMap<QString, QSharedPointer<VLineAngle> > DataAngleLines() const;
const QMap<QString, QSharedPointer<VArcRadius> > DataRadiusesArcs() const;
const QMap<QString, QSharedPointer<VArcAngle> > DataAnglesArcs() const;
const QMap<QString, QSharedPointer<VCurveAngle> > DataAnglesCurves() const;
const QMap<QString, QSharedPointer<VSplineAngle> > DataAnglesCurves() const;
static bool IsUnique(const QString &name);

View file

@ -27,10 +27,11 @@
*************************************************************************/
#include "vformula.h"
#include "../libs/vpatterndb/calculator.h"
#include "../libs/vpatterndb/vcontainer.h"
#include "../core/vapplication.h"
#include "../core/vsettings.h"
#include "calculator.h"
#include "vcontainer.h"
#include "../vmisc/vabstractapplication.h"
#include "../vmisc/vsettings.h"
#include "vtranslatevars.h"
#include <QDebug>
//VFormula
@ -102,7 +103,7 @@ QString VFormula::GetFormula(FormulaType type) const
}
else
{
return qApp->TrVars()->FormulaFromUser(formula, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
}
}
@ -226,7 +227,7 @@ void VFormula::Eval()
try
{
Calculator *cal = new Calculator(data, qApp->patternType());
QString expression = qApp->TrVars()->FormulaFromUser(formula, qApp->getSettings()->GetOsSeparator());
QString expression = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
const qreal result = cal->EvalFormula(expression);
delete cal;

View file

@ -32,7 +32,7 @@
#include <QMetaType>
#include <QSharedDataPointer>
#include "../../utils/def.h"
#include "../vmisc/def.h"
class VNodeDetailData;

View file

@ -21,7 +21,8 @@ SOURCES += \
$$PWD/variables/vmeasurement.cpp \
$$PWD/variables/vsplineangle.cpp \
$$PWD/variables/vsplinelength.cpp \
$$PWD/variables/vvariable.cpp
$$PWD/variables/vvariable.cpp \
$$PWD/vformula.cpp
HEADERS += \
$$PWD/vcontainer.h \
@ -54,4 +55,5 @@ HEADERS += \
$$PWD/variables/vsplineangle.h \
$$PWD/variables/vsplinelength.h \
$$PWD/variables/vvariable.h \
$$PWD/variables/vvariable_p.h
$$PWD/variables/vvariable_p.h \
$$PWD/vformula.h

View file

@ -25,7 +25,6 @@ CONFIG -= debug_and_release debug_and_release_target
DEFINES += QT_MESSAGELOGCONTEXT
include(vpatterndb.pri)
include(../../utils/utils.pri)
# This is static library so no need in "make install"

View file

@ -28,7 +28,7 @@
#include "vtranslatevars.h"
#include "calculator.h"
#include "../../utils/def.h"
#include "../vmisc/def.h"
#include "../vgeometry/vgeometrydef.h"
using namespace qmu;

View file

@ -0,0 +1,98 @@
# ADD TO EACH PATH $$PWD VARIABLE!!!!!!
# This need for corect working file translations.pro
HEADERS += \
$$PWD/tooldialogs.h \
$$PWD/tools/dialogalongline.h \
$$PWD/tools/dialogarc.h \
$$PWD/tools/dialogarcwithlength.h \
$$PWD/tools/dialogbisector.h \
$$PWD/tools/dialogcurveintersectaxis.h \
$$PWD/tools/dialogcutarc.h \
$$PWD/tools/dialogcutspline.h \
$$PWD/tools/dialogcutsplinepath.h \
$$PWD/tools/dialogdetail.h \
$$PWD/tools/dialogendline.h \
$$PWD/tools/dialogheight.h \
$$PWD/tools/dialogline.h \
$$PWD/tools/dialoglineintersect.h \
$$PWD/tools/dialoglineintersectaxis.h \
$$PWD/tools/dialognormal.h \
$$PWD/tools/dialogpointfromarcandtangent.h \
$$PWD/tools/dialogpointfromcircleandtangent.h \
$$PWD/tools/dialogpointofcontact.h \
$$PWD/tools/dialogpointofintersection.h \
$$PWD/tools/dialogpointofintersectionarcs.h \
$$PWD/tools/dialogpointofintersectioncircles.h \
$$PWD/tools/dialogshoulderpoint.h \
$$PWD/tools/dialogsinglepoint.h \
$$PWD/tools/dialogspline.h \
$$PWD/tools/dialogsplinepath.h \
$$PWD/tools/dialogtool.h \
$$PWD/tools/dialogtriangle.h \
$$PWD/tools/dialoguniondetails.h \
$$PWD/support/dialogeditwrongformula.h \
$$PWD/support/dialogundo.h
SOURCES += \
$$PWD/tools/dialogalongline.cpp \
$$PWD/tools/dialogarc.cpp \
$$PWD/tools/dialogarcwithlength.cpp \
$$PWD/tools/dialogbisector.cpp \
$$PWD/tools/dialogcurveintersectaxis.cpp \
$$PWD/tools/dialogcutarc.cpp \
$$PWD/tools/dialogcutspline.cpp \
$$PWD/tools/dialogcutsplinepath.cpp \
$$PWD/tools/dialogdetail.cpp \
$$PWD/tools/dialogendline.cpp \
$$PWD/tools/dialogheight.cpp \
$$PWD/tools/dialogline.cpp \
$$PWD/tools/dialoglineintersect.cpp \
$$PWD/tools/dialoglineintersectaxis.cpp \
$$PWD/tools/dialognormal.cpp \
$$PWD/tools/dialogpointfromarcandtangent.cpp \
$$PWD/tools/dialogpointfromcircleandtangent.cpp \
$$PWD/tools/dialogpointofcontact.cpp \
$$PWD/tools/dialogpointofintersection.cpp \
$$PWD/tools/dialogpointofintersectionarcs.cpp \
$$PWD/tools/dialogpointofintersectioncircles.cpp \
$$PWD/tools/dialogshoulderpoint.cpp \
$$PWD/tools/dialogsinglepoint.cpp \
$$PWD/tools/dialogspline.cpp \
$$PWD/tools/dialogsplinepath.cpp \
$$PWD/tools/dialogtool.cpp \
$$PWD/tools/dialogtriangle.cpp \
$$PWD/tools/dialoguniondetails.cpp \
$$PWD/support/dialogeditwrongformula.cpp \
$$PWD/support/dialogundo.cpp
FORMS += \
$$PWD/tools/dialogalongline.ui \
$$PWD/tools/dialogarc.ui \
$$PWD/tools/dialogarcwithlength.ui \
$$PWD/tools/dialogbisector.ui \
$$PWD/tools/dialogcurveintersectaxis.ui \
$$PWD/tools/dialogcutarc.ui \
$$PWD/tools/dialogcutspline.ui \
$$PWD/tools/dialogcutsplinepath.ui \
$$PWD/tools/dialogdetail.ui \
$$PWD/tools/dialogendline.ui \
$$PWD/tools/dialogheight.ui \
$$PWD/tools/dialogline.ui \
$$PWD/tools/dialoglineintersect.ui \
$$PWD/tools/dialoglineintersectaxis.ui \
$$PWD/tools/dialognormal.ui \
$$PWD/tools/dialogpointfromarcandtangent.ui \
$$PWD/tools/dialogpointfromcircleandtangent.ui \
$$PWD/tools/dialogpointofcontact.ui \
$$PWD/tools/dialogpointofintersection.ui \
$$PWD/tools/dialogpointofintersectionarcs.ui \
$$PWD/tools/dialogpointofintersectioncircles.ui \
$$PWD/tools/dialogshoulderpoint.ui \
$$PWD/tools/dialogsinglepoint.ui \
$$PWD/tools/dialogspline.ui \
$$PWD/tools/dialogsplinepath.ui \
$$PWD/tools/dialogtriangle.ui \
$$PWD/tools/dialoguniondetails.ui \
$$PWD/support/dialogeditwrongformula.ui \
$$PWD/support/dialogundo.ui

View file

@ -28,7 +28,8 @@
#include "dialogeditwrongformula.h"
#include "ui_dialogeditwrongformula.h"
#include "../../libs/vpatterndb/vcontainer.h"
#include "../../../vpatterndb/vcontainer.h"
#include "../../../vpatterndb/vtranslatevars.h"
//---------------------------------------------------------------------------------------------------------------------
DialogEditWrongFormula::DialogEditWrongFormula(const VContainer *data, const quint32 &toolId, QWidget *parent)
@ -203,8 +204,8 @@ void DialogEditWrongFormula::ValChenged(int row)
if (ui->radioButtonAnglesCurves->isChecked())
{
const QString desc = QString("%1(%2) - %3").arg(item->text())
.arg(*data->GetVariable<VCurveAngle>(qApp->TrVars()->VarFromUser(item->text()))->GetValue())
.arg(tr("Curve angle"));
.arg(*data->GetVariable<VSplineAngle>(qApp->TrVars()->VarFromUser(item->text()))->GetValue())
.arg(tr("Curve angle"));
ui->labelDescription->setText(desc);
return;
}
@ -385,7 +386,7 @@ void DialogEditWrongFormula::setPostfix(const QString &value)
//---------------------------------------------------------------------------------------------------------------------
QString DialogEditWrongFormula::GetFormula() const
{
return qApp->TrVars()->FormulaFromUser(formula, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
}
//---------------------------------------------------------------------------------------------------------------------

View file

@ -29,7 +29,7 @@
#ifndef DIALOGEDITWRONGFORMULA_H
#define DIALOGEDITWRONGFORMULA_H
#include "dialogtool.h"
#include "../tools/dialogtool.h"
namespace Ui
{

View file

@ -28,8 +28,8 @@
#include "dialogundo.h"
#include "ui_dialogundo.h"
#include "../../core/vapplication.h"
#include "../../libs/ifc/exception/vexceptionundo.h"
#include "../../../ifc/exception/vexceptionundo.h"
#include "../../../vmisc/vabstractapplication.h"
#include <QCloseEvent>
#include <QUndoStack>
@ -39,7 +39,7 @@ DialogUndo::DialogUndo(QWidget *parent)
{
ui->setupUi(this);
qApp->getSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
qApp->Settings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C));
bool opening = qApp->getOpeningPattern();
if (opening)

View file

@ -29,7 +29,7 @@
<string>Broken formula</string>
</property>
<property name="windowIcon">
<iconset resource="../../share/resources/icon.qrc">
<iconset resource="../../../../app/share/resources/icon.qrc">
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
</property>
<property name="modal">
@ -78,7 +78,7 @@
</layout>
</widget>
<resources>
<include location="../../share/resources/icon.qrc"/>
<include location="../../../../app/share/resources/icon.qrc"/>
</resources>
<connections/>
</ui>

View file

@ -0,0 +1,63 @@
/************************************************************************
**
** @file dialogs.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 16 6, 2015
**
** @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) 2015 Valentina project
** <https://bitbucket.org/dismine/valentina> 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 <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef TOOLDIALOGS_H
#define TOOLDIALOGS_H
#include "dialogs/tools/dialogalongline.h"
#include "dialogs/tools/dialogarc.h"
#include "dialogs/tools/dialogarcwithlength.h"
#include "dialogs/tools/dialogbisector.h"
#include "dialogs/tools/dialogdetail.h"
#include "dialogs/tools/dialogendline.h"
#include "dialogs/tools/dialogline.h"
#include "dialogs/tools/dialoglineintersect.h"
#include "dialogs/tools/dialognormal.h"
#include "dialogs/tools/dialogpointofcontact.h"
#include "dialogs/tools/dialogshoulderpoint.h"
#include "dialogs/tools/dialogsinglepoint.h"
#include "dialogs/tools/dialogspline.h"
#include "dialogs/tools/dialogsplinepath.h"
#include "dialogs/tools/dialogheight.h"
#include "dialogs/tools/dialogcutarc.h"
#include "dialogs/tools/dialogcutspline.h"
#include "dialogs/tools/dialogcutsplinepath.h"
#include "dialogs/tools/dialoguniondetails.h"
#include "dialogs/tools/dialogtriangle.h"
#include "dialogs/tools/dialogpointofintersection.h"
#include "dialogs/tools/dialoglineintersectaxis.h"
#include "dialogs/tools/dialogcurveintersectaxis.h"
#include "dialogs/tools/dialogpointofintersectionarcs.h"
#include "dialogs/tools/dialogpointofintersectioncircles.h"
#include "dialogs/tools/dialogpointfromcircleandtangent.h"
#include "dialogs/tools/dialogpointfromarcandtangent.h"
#include "dialogs/support/dialogeditwrongformula.h"
#include "dialogs/support/dialogundo.h"
#endif // TOOLDIALOGS_H

View file

@ -30,8 +30,9 @@
#include "ui_dialogalongline.h"
#include "../../visualization/vistoolalongline.h"
#include "../../tools/vabstracttool.h"
#include "../../widgets/vmaingraphicsscene.h"
#include "dialogeditwrongformula.h"
#include "../../../vwidgets/vmaingraphicsscene.h"
#include "../../../vpatterndb/vtranslatevars.h"
#include "../support/dialogeditwrongformula.h"
#include <QPushButton>
@ -306,7 +307,7 @@ QString DialogAlongLine::GetTypeLine() const
*/
QString DialogAlongLine::GetFormula() const
{
return qApp->TrVars()->FormulaFromUser(formula, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
}
//---------------------------------------------------------------------------------------------------------------------

View file

@ -26,7 +26,7 @@
<string>Point at distance along line</string>
</property>
<property name="windowIcon">
<iconset resource="../../share/resources/icon.qrc">
<iconset resource="../../../../app/share/resources/icon.qrc">
<normaloff>:/icon/64x64/icon64x64.png</normaloff>:/icon/64x64/icon64x64.png</iconset>
</property>
<property name="locale">
@ -104,7 +104,7 @@
<string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="../../share/resources/icon.qrc">
<iconset resource="../../../../app/share/resources/icon.qrc">
<normaloff>:/icon/24x24/fx.png</normaloff>:/icon/24x24/fx.png</iconset>
</property>
<property name="iconSize">
@ -121,7 +121,7 @@
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../share/resources/icon.qrc">:/icon/24x24/equal.png</pixmap>
<pixmap resource="../../../../app/share/resources/icon.qrc">:/icon/24x24/equal.png</pixmap>
</property>
</widget>
</item>
@ -332,7 +332,7 @@
<tabstop>buttonBox</tabstop>
</tabstops>
<resources>
<include location="../../share/resources/icon.qrc"/>
<include location="../../../../app/share/resources/icon.qrc"/>
</resources>
<connections>
<connection>

View file

@ -32,11 +32,12 @@
#include <QPushButton>
#include <QTimer>
#include "../../libs/vgeometry/vpointf.h"
#include "../../libs/vpatterndb/vcontainer.h"
#include "../../libs/ifc/xml/vdomdocument.h"
#include "../../../vgeometry/vpointf.h"
#include "../../../vpatterndb/vcontainer.h"
#include "../../../vpatterndb/vtranslatevars.h"
#include "../../../ifc/xml/vdomdocument.h"
#include "../../visualization/vistoolarc.h"
#include "dialogeditwrongformula.h"
#include "../support/dialogeditwrongformula.h"
//---------------------------------------------------------------------------------------------------------------------
/**
@ -424,7 +425,7 @@ quint32 DialogArc::GetCenter() const
*/
QString DialogArc::GetRadius() const
{
return qApp->TrVars()->FormulaFromUser(radius, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(radius, qApp->Settings()->GetOsSeparator());
}
//---------------------------------------------------------------------------------------------------------------------
@ -434,7 +435,7 @@ QString DialogArc::GetRadius() const
*/
QString DialogArc::GetF1() const
{
return qApp->TrVars()->FormulaFromUser(f1, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(f1, qApp->Settings()->GetOsSeparator());
}
//---------------------------------------------------------------------------------------------------------------------
@ -444,5 +445,5 @@ QString DialogArc::GetF1() const
*/
QString DialogArc::GetF2() const
{
return qApp->TrVars()->FormulaFromUser(f2, qApp->getSettings()->GetOsSeparator());
return qApp->TrVars()->FormulaFromUser(f2, qApp->Settings()->GetOsSeparator());
}

Some files were not shown because too many files have changed in this diff Show more