Merge with develop
5
AUTHORS
Normal file
|
@ -0,0 +1,5 @@
|
|||
Author:
|
||||
|
||||
(*) Roman Telezhinsky <dismine@gmail.com>
|
||||
Founder of the project.
|
||||
|
5
ChangeLog
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Version 0.2.1 Released December 8, 2013
|
||||
- Problem with compilation in console in Ubuntu.
|
||||
- Problem with compilation on windows with msvc.
|
||||
|
||||
# Version 0.2.0 Released October 29, 2013
|
63
README
Normal file
|
@ -0,0 +1,63 @@
|
|||
Pattern making program
|
||||
Copyright (C) 2013 Roman Telezhinsky <dismine@gmail.com>
|
||||
https://dismine@bitbucket.org/dismine/valentina
|
||||
|
||||
Valentina
|
||||
==========
|
||||
Open source project of creating a pattern making program, whose allow
|
||||
create and modeling patterns of clothing.
|
||||
|
||||
Supported Platforms
|
||||
===================
|
||||
The standalone binary packages support the following platforms:
|
||||
|
||||
Windows XP SP2 or later
|
||||
Ubuntu Linux 11.10 (32-bit) or later
|
||||
|
||||
Building the sources requires Qt 5.0.0 or later.
|
||||
|
||||
Compiling Valentina
|
||||
====================
|
||||
Prerequisites:
|
||||
* Qt 5.0.0 or later (On Unix development packages needed)
|
||||
* mercurial
|
||||
* On Unix:
|
||||
- ccache
|
||||
- g++ (at least GCC 4.6 is needed and GCC 4.8 is recommended)
|
||||
* On Windows:
|
||||
- MinGW or Visual Studio
|
||||
|
||||
The installed toolchains have to match the one Qt was compiled with.
|
||||
|
||||
You can build Valentina with
|
||||
|
||||
cd $SOURCE_DIRECTORY
|
||||
qmake -r
|
||||
make (or mingw32-make or nmake or jom, depending on your platform)
|
||||
|
||||
Note:In order to build and use Valentina, the PATH environment variable
|
||||
needs to be extended:
|
||||
|
||||
PATH - to locate qmake, moc and other Qt tools
|
||||
This is done by adding c:\Qt\%VERSION%\bin to the PATH variable.
|
||||
|
||||
For newer versions of Windows, PATH can be extended through the
|
||||
Control Panel|System|Advanced|Environment variables menu.
|
||||
|
||||
You may also need to ensure that the locations of your compiler and
|
||||
other build tools are listed in the PATH variable. This will depend on
|
||||
your choice of software development environment.
|
||||
|
||||
LICENSING
|
||||
==========
|
||||
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.
|
||||
|
||||
See LICENSE file for further information
|
33
TODO
Normal file
|
@ -0,0 +1,33 @@
|
|||
Valentina TODO file.
|
||||
For more information see https://bitbucket.org/dismine/valentina/issues
|
||||
|
||||
(c) Valentina Team 2013
|
||||
|
||||
* Rotate details.
|
||||
* Reflection details.
|
||||
* Theme with icon for windows version of program.
|
||||
* Label on detail.
|
||||
* Checking integrity of file.
|
||||
* Description of pattern.
|
||||
* Type of lines.
|
||||
* New way create detail.
|
||||
* Tuck transfer.
|
||||
* Point on arc, curve and curve path.
|
||||
* Union details.
|
||||
* Сonditions.
|
||||
* New format name.
|
||||
* Standard table of measurements.
|
||||
* Localization.
|
||||
* Window "Option".
|
||||
* Undo/redo functionality in applications.
|
||||
* Checking file integrity.
|
||||
* Sketch drawing.
|
||||
* Graduation card.
|
||||
* Individual mode of construction pattern.
|
||||
* Description about pattern in SVG file.
|
||||
* Visualization.
|
||||
|
||||
|
||||
|
||||
|
||||
|
311
Valentina.pro
|
@ -8,231 +8,14 @@
|
|||
|
||||
QT += core gui widgets xml svg
|
||||
|
||||
TARGET = Valentina
|
||||
TEMPLATE = app
|
||||
|
||||
TARGET = valentina
|
||||
|
||||
CONFIG -= debug_and_release debug_and_release_target
|
||||
CONFIG += c++11 precompile_header
|
||||
QMAKE_CXX = ccache g++
|
||||
CONFIG += c++11
|
||||
|
||||
SOURCES += main.cpp\
|
||||
mainwindow.cpp \
|
||||
dialogs/dialogsinglepoint.cpp \
|
||||
widgets/vgraphicssimpletextitem.cpp \
|
||||
xml/vdomdocument.cpp \
|
||||
container/vpointf.cpp \
|
||||
container/vcontainer.cpp \
|
||||
tools/drawTools/vtoolpoint.cpp \
|
||||
container/calculator.cpp \
|
||||
dialogs/dialogincrements.cpp \
|
||||
container/vstandarttablecell.cpp \
|
||||
container/vincrementtablerow.cpp \
|
||||
widgets/doubledelegate.cpp \
|
||||
dialogs/dialogendline.cpp \
|
||||
tools/drawTools/vtoolendline.cpp \
|
||||
tools/drawTools/vtoolline.cpp \
|
||||
tools/vabstracttool.cpp \
|
||||
dialogs/dialogline.cpp \
|
||||
tools/drawTools/vtoolalongline.cpp \
|
||||
dialogs/dialogtool.cpp \
|
||||
dialogs/dialogalongline.cpp \
|
||||
tools/drawTools/vtoolshoulderpoint.cpp \
|
||||
dialogs/dialogshoulderpoint.cpp \
|
||||
tools/drawTools/vtoolnormal.cpp \
|
||||
dialogs/dialognormal.cpp \
|
||||
tools/drawTools/vtoolbisector.cpp \
|
||||
dialogs/dialogbisector.cpp \
|
||||
tools/drawTools/vtoollinepoint.cpp \
|
||||
tools/drawTools/vtoollineintersect.cpp \
|
||||
dialogs/dialoglineintersect.cpp \
|
||||
geometry/vspline.cpp \
|
||||
tools/drawTools/vtoolsinglepoint.cpp \
|
||||
geometry/varc.cpp \
|
||||
widgets/vcontrolpointspline.cpp \
|
||||
tools/drawTools/vtoolspline.cpp \
|
||||
dialogs/dialogspline.cpp \
|
||||
tools/drawTools/vtoolarc.cpp \
|
||||
dialogs/dialogarc.cpp \
|
||||
geometry/vsplinepoint.cpp \
|
||||
geometry/vsplinepath.cpp \
|
||||
tools/drawTools/vtoolsplinepath.cpp \
|
||||
dialogs/dialogsplinepath.cpp \
|
||||
widgets/vmaingraphicsscene.cpp \
|
||||
widgets/vmaingraphicsview.cpp \
|
||||
tools/vdatatool.cpp \
|
||||
xml/vtoolrecord.cpp \
|
||||
dialogs/dialoghistory.cpp \
|
||||
tools/drawTools/vtoolpointofcontact.cpp \
|
||||
dialogs/dialogpointofcontact.cpp \
|
||||
geometry/vnodedetail.cpp \
|
||||
geometry/vdetail.cpp \
|
||||
dialogs/dialogdetail.cpp \
|
||||
tools/vtooldetail.cpp \
|
||||
widgets/vtablegraphicsview.cpp \
|
||||
widgets/vitem.cpp \
|
||||
tablewindow.cpp \
|
||||
tools/nodeDetails/vnodearc.cpp \
|
||||
tools/nodeDetails/vnodepoint.cpp \
|
||||
tools/nodeDetails/vnodespline.cpp \
|
||||
tools/nodeDetails/vnodesplinepath.cpp \
|
||||
tools/drawTools/vdrawtool.cpp \
|
||||
tools/nodeDetails/vabstractnode.cpp \
|
||||
tools/modelingTools/vmodelingtool.cpp \
|
||||
tools/modelingTools/vmodelingalongline.cpp \
|
||||
tools/modelingTools/vmodelingarc.cpp \
|
||||
tools/modelingTools/vmodelingbisector.cpp \
|
||||
tools/modelingTools/vmodelingendline.cpp \
|
||||
tools/modelingTools/vmodelingline.cpp \
|
||||
tools/modelingTools/vmodelinglineintersect.cpp \
|
||||
tools/modelingTools/vmodelinglinepoint.cpp \
|
||||
tools/modelingTools/vmodelingnormal.cpp \
|
||||
tools/modelingTools/vmodelingpoint.cpp \
|
||||
tools/modelingTools/vmodelingpointofcontact.cpp \
|
||||
tools/modelingTools/vmodelingshoulderpoint.cpp \
|
||||
tools/modelingTools/vmodelingspline.cpp \
|
||||
tools/modelingTools/vmodelingsplinepath.cpp \
|
||||
exception/vexception.cpp \
|
||||
exception/vexceptionbadid.cpp \
|
||||
exception/vexceptionwrongparameterid.cpp \
|
||||
exception/vexceptionconversionerror.cpp \
|
||||
exception/vexceptionemptyparameter.cpp \
|
||||
exception/vexceptionobjecterror.cpp \
|
||||
widgets/vapplication.cpp \
|
||||
exception/vexceptionuniqueid.cpp \
|
||||
tools/drawTools/vtoolheight.cpp \
|
||||
tools/modelingTools/vmodelingheight.cpp \
|
||||
dialogs/dialogheight.cpp \
|
||||
tools/drawTools/vtooltriangle.cpp \
|
||||
tools/modelingTools/vmodelingtriangle.cpp \
|
||||
dialogs/dialogtriangle.cpp \
|
||||
dialogs/dialogpointofintersection.cpp \
|
||||
tools/drawTools/vtoolpointofintersection.cpp \
|
||||
tools/modelingTools/vmodelingpointofintersection.cpp
|
||||
|
||||
HEADERS += mainwindow.h \
|
||||
widgets/vmaingraphicsscene.h \
|
||||
dialogs/dialogsinglepoint.h \
|
||||
options.h \
|
||||
widgets/vgraphicssimpletextitem.h \
|
||||
xml/vdomdocument.h \
|
||||
container/vpointf.h \
|
||||
container/vcontainer.h \
|
||||
tools/drawTools/vtoolpoint.h \
|
||||
container/calculator.h \
|
||||
dialogs/dialogincrements.h \
|
||||
container/vstandarttablecell.h \
|
||||
container/vincrementtablerow.h \
|
||||
widgets/doubledelegate.h \
|
||||
dialogs/dialogendline.h \
|
||||
tools/drawTools/vtoolendline.h \
|
||||
tools/drawTools/vtoolline.h \
|
||||
tools/vabstracttool.h \
|
||||
dialogs/dialogline.h \
|
||||
tools/drawTools/vtoolalongline.h \
|
||||
dialogs/dialogtool.h \
|
||||
dialogs/dialogalongline.h \
|
||||
tools/drawTools/vtoolshoulderpoint.h \
|
||||
dialogs/dialogshoulderpoint.h \
|
||||
tools/drawTools/vtoolnormal.h \
|
||||
dialogs/dialognormal.h \
|
||||
tools/drawTools/vtoolbisector.h \
|
||||
dialogs/dialogbisector.h \
|
||||
tools/drawTools/vtoollinepoint.h \
|
||||
tools/drawTools/vtoollineintersect.h \
|
||||
dialogs/dialoglineintersect.h \
|
||||
geometry/vspline.h \
|
||||
tools/drawTools/vtoolsinglepoint.h \
|
||||
geometry/varc.h \
|
||||
widgets/vcontrolpointspline.h \
|
||||
tools/drawTools/vtoolspline.h \
|
||||
dialogs/dialogspline.h \
|
||||
tools/drawTools/vtoolarc.h \
|
||||
dialogs/dialogarc.h \
|
||||
geometry/vsplinepoint.h \
|
||||
geometry/vsplinepath.h \
|
||||
tools/drawTools/vtoolsplinepath.h \
|
||||
dialogs/dialogsplinepath.h \
|
||||
widgets/vmaingraphicsview.h \
|
||||
tools/vdatatool.h \
|
||||
xml/vtoolrecord.h \
|
||||
dialogs/dialoghistory.h \
|
||||
tools/drawTools/vtoolpointofcontact.h \
|
||||
dialogs/dialogpointofcontact.h \
|
||||
geometry/vnodedetail.h \
|
||||
geometry/vdetail.h \
|
||||
dialogs/dialogdetail.h \
|
||||
tools/vtooldetail.h \
|
||||
widgets/vtablegraphicsview.h \
|
||||
widgets/vitem.h \
|
||||
tablewindow.h \
|
||||
tools/tools.h \
|
||||
tools/drawTools/drawtools.h \
|
||||
tools/nodeDetails/nodedetails.h \
|
||||
tools/nodeDetails/vnodearc.h \
|
||||
tools/nodeDetails/vnodepoint.h \
|
||||
tools/nodeDetails/vnodespline.h \
|
||||
tools/nodeDetails/vnodesplinepath.h \
|
||||
stable.h \
|
||||
tools/drawTools/vdrawtool.h \
|
||||
tools/nodeDetails/vabstractnode.h \
|
||||
dialogs/dialogs.h \
|
||||
tools/modelingTools/modelingtools.h \
|
||||
tools/modelingTools/vmodelingtool.h \
|
||||
tools/modelingTools/vmodelingalongline.h \
|
||||
tools/modelingTools/vmodelingarc.h \
|
||||
tools/modelingTools/vmodelingbisector.h \
|
||||
tools/modelingTools/vmodelingendline.h \
|
||||
tools/modelingTools/vmodelingline.h \
|
||||
tools/modelingTools/vmodelinglineintersect.h \
|
||||
tools/modelingTools/vmodelinglinepoint.h \
|
||||
tools/modelingTools/vmodelingnormal.h \
|
||||
tools/modelingTools/vmodelingpoint.h \
|
||||
tools/modelingTools/vmodelingpointofcontact.h \
|
||||
tools/modelingTools/vmodelingshoulderpoint.h \
|
||||
tools/modelingTools/vmodelingspline.h \
|
||||
tools/modelingTools/vmodelingsplinepath.h \
|
||||
exception/vexception.h \
|
||||
exception/vexceptionbadid.h \
|
||||
exception/vexceptionwrongparameterid.h \
|
||||
exception/vexceptionconversionerror.h \
|
||||
exception/vexceptionemptyparameter.h \
|
||||
exception/vexceptionobjecterror.h \
|
||||
widgets/vapplication.h \
|
||||
exception/vexceptionuniqueid.h \
|
||||
tools/drawTools/vtoolheight.h \
|
||||
tools/modelingTools/vmodelingheight.h \
|
||||
dialogs/dialogheight.h \
|
||||
tools/drawTools/vtooltriangle.h \
|
||||
tools/modelingTools/vmodelingtriangle.h \
|
||||
dialogs/dialogtriangle.h \
|
||||
dialogs/dialogpointofintersection.h \
|
||||
tools/drawTools/vtoolpointofintersection.h \
|
||||
tools/modelingTools/vmodelingpointofintersection.h \
|
||||
version.h
|
||||
|
||||
FORMS += mainwindow.ui \
|
||||
dialogs/dialogsinglepoint.ui \
|
||||
dialogs/dialogincrements.ui \
|
||||
dialogs/dialogendline.ui \
|
||||
dialogs/dialogline.ui \
|
||||
dialogs/dialogalongline.ui \
|
||||
dialogs/dialogshoulderpoint.ui \
|
||||
dialogs/dialognormal.ui \
|
||||
dialogs/dialogbisector.ui \
|
||||
dialogs/dialoglineintersect.ui \
|
||||
dialogs/dialogspline.ui \
|
||||
dialogs/dialogarc.ui \
|
||||
dialogs/dialogsplinepath.ui \
|
||||
dialogs/dialoghistory.ui \
|
||||
dialogs/dialogpointofcontact.ui \
|
||||
dialogs/dialogdetail.ui \
|
||||
tablewindow.ui \
|
||||
dialogs/dialogheight.ui \
|
||||
dialogs/dialogtriangle.ui \
|
||||
dialogs/dialogpointofintersection.ui
|
||||
|
||||
RESOURCES += \
|
||||
icon.qrc \
|
||||
cursor.qrc
|
||||
#DEFINES += ...
|
||||
|
||||
# directory for executable file
|
||||
DESTDIR = bin
|
||||
|
@ -249,29 +32,58 @@ RCC_DIR = rcc
|
|||
# files created uic
|
||||
UI_DIR = uic
|
||||
|
||||
# Use Precompiled headers (PCH)
|
||||
PRECOMPILED_HEADER = stable.h
|
||||
include(src/src.pri)
|
||||
include(src/container/container.pri)
|
||||
include(src/dialogs/dialogs.pri)
|
||||
include(src/exception/exception.pri)
|
||||
include(src/geometry/geometry.pri)
|
||||
include(src/tools/tools.pri)
|
||||
include(src/widgets/widgets.pri)
|
||||
include(src/xml/xml.pri)
|
||||
|
||||
TRANSLATIONS += translations/valentina_ru.ts \
|
||||
translations/valentina_uk.ts
|
||||
RESOURCES += \
|
||||
share/resources/icon.qrc \
|
||||
share/resources/cursor.qrc
|
||||
|
||||
OTHER_FILES += share/resources/valentina.rc \
|
||||
share/resources/icon/64x64/icon64x64.ico
|
||||
|
||||
TRANSLATIONS += share/translations/valentina_ru.ts \
|
||||
share/translations/valentina_uk.ts
|
||||
|
||||
unix:QMAKE_CXX = ccache g++
|
||||
|
||||
CONFIG += precompile_header
|
||||
# Precompiled headers (PCH)
|
||||
PRECOMPILED_HEADER = src/stable.h
|
||||
win32-msvc* {
|
||||
PRECOMPILED_SOURCE = src/stable.cpp
|
||||
}
|
||||
|
||||
CONFIG(debug, debug|release){
|
||||
# Debug
|
||||
*-g++{
|
||||
QMAKE_CXXFLAGS += -isystem "/usr/include/qt5" -isystem "/usr/include/qt5/QtWidgets" \
|
||||
-isystem "/usr/include/qt5/QtXml" -isystem "/usr/include/qt5/QtGui" \
|
||||
-isystem "/usr/include/qt5/QtCore" -isystem "$$OUT_PWD/uic" -isystem "$$OUT_PWD/moc/" \
|
||||
-isystem "/usr/include/qt5/QtCore" -isystem "$${UI_DIR}" -isystem "$${MOC_DIR}" \
|
||||
-isystem "$${RCC_DIR}" \
|
||||
-Og -Wall -Wextra -pedantic -Weffc++ -Woverloaded-virtual -Wctor-dtor-privacy \
|
||||
-Wnon-virtual-dtor -Wold-style-cast -Wconversion -Winit-self \
|
||||
-Wunreachable-code
|
||||
-Wunreachable-code -Wcast-align -Wcast-qual -Wdisabled-optimization -Wfloat-equal \
|
||||
-Wformat -Wformat=2 -Wformat-nonliteral -Wformat-security -Wformat-y2k \
|
||||
-Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-format-attribute \
|
||||
-Wmissing-include-dirs -Wpacked -Wredundant-decls \
|
||||
-Wswitch-default -Wswitch-enum -Wuninitialized -Wunused-parameter -Wvariadic-macros \
|
||||
-Wlogical-op -Wnoexcept \
|
||||
-Wstrict-null-sentinel -Wstrict-overflow=5 -Wundef -Wno-unused -gdwarf-3
|
||||
}
|
||||
}else{
|
||||
# Release
|
||||
*-g++{
|
||||
QMAKE_CXXFLAGS += -O1
|
||||
}
|
||||
|
||||
QMAKE_EXTRA_COMPILERS += lrelease
|
||||
lrelease.input = TRANSLATIONS
|
||||
lrelease.output = ${QMAKE_FILE_BASE}.qm
|
||||
lrelease.commands = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN} -qm "bin/"${QMAKE_FILE_BASE}.qm
|
||||
lrelease.CONFIG += no_link target_predeps
|
||||
DEFINES += QT_NO_DEBUG_OUTPUT
|
||||
}
|
||||
|
||||
message(Qt version: $$[QT_VERSION])
|
||||
|
@ -286,3 +98,36 @@ message(Data files: $$[QT_INSTALL_DATA])
|
|||
message(Translation files: $$[QT_INSTALL_TRANSLATIONS])
|
||||
message(Settings: $$[QT_INSTALL_SETTINGS])
|
||||
message(Examples: $$[QT_INSTALL_EXAMPLES])
|
||||
|
||||
win32:RC_FILE = share/resources/valentina.rc
|
||||
|
||||
# Remove generated files at cleaning
|
||||
QMAKE_DISTCLEAN += $${DESTDIR}/* \
|
||||
$${OBJECTS_DIR}/* \
|
||||
$${UI_DIR}/* \
|
||||
$${MOC_DIR}/* \
|
||||
$${RCC_DIR}/*
|
||||
|
||||
unix {
|
||||
#VARIABLES
|
||||
isEmpty(PREFIX) {
|
||||
PREFIX = /usr
|
||||
}
|
||||
BINDIR = $$PREFIX/bin
|
||||
DATADIR =$$PREFIX/share
|
||||
DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
|
||||
#MAKE INSTALL
|
||||
target.path = $$BINDIR
|
||||
desktop.path = $$DATADIR/applications/
|
||||
desktop.files += dist/$${TARGET}.desktop
|
||||
pixmaps.path = $$DATADIR/pixmaps/
|
||||
pixmaps.files += dist/$${TARGET}.png
|
||||
INSTALL_TRANSLATIONS += share/translations/valentina_ru.qm \
|
||||
share/translations/valentina_uk.qm
|
||||
translations.path = $$DATADIR/$${TARGET}/translations/
|
||||
translations.files = $$INSTALL_TRANSLATIONS
|
||||
INSTALLS += target \
|
||||
desktop \
|
||||
pixmaps \
|
||||
translations
|
||||
}
|
||||
|
|
|
@ -1,335 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 "calculator.h"
|
||||
|
||||
#define DELIMITER 1
|
||||
#define VARIABLE 2
|
||||
#define NUMBER 3
|
||||
#define COMMAND 4
|
||||
#define STRING 5
|
||||
#define QUOTE 6
|
||||
#define FINISHED 10
|
||||
#define EOL 9
|
||||
|
||||
Calculator::Calculator(const VContainer *data):errorMsg(0), token(QString()), tok(0), token_type(0),
|
||||
prog(QString()), index(0), data(data), debugFormula(QString()){
|
||||
}
|
||||
|
||||
qreal Calculator::eval(QString prog, QString *errorMsg){
|
||||
this->errorMsg = errorMsg;
|
||||
this->errorMsg->clear();
|
||||
debugFormula.clear();
|
||||
this->prog = prog;
|
||||
//qDebug()<<"Формула: "<<prog;
|
||||
index = 0;
|
||||
qreal result = get_exp();
|
||||
QString str = QString(" = %1").arg(result, 0, 'f', 3);
|
||||
debugFormula.append(str);
|
||||
//qDebug()<<"Результат:"<<debugFormula;
|
||||
return result;
|
||||
}
|
||||
|
||||
qreal Calculator::get_exp(){
|
||||
qreal result = 0;
|
||||
get_token();
|
||||
if(token.isEmpty()) {
|
||||
serror(2);
|
||||
return 0;
|
||||
}
|
||||
level2(&result);
|
||||
putback(); /* возвращает последнюю считаную
|
||||
лексему обратно во входной поток */
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Сложение или вычитание двух термов */
|
||||
void Calculator::level2(qreal *result){
|
||||
QChar op;
|
||||
qreal hold;
|
||||
|
||||
level3(result);
|
||||
while((op=token[0]) == '+' || op == '-') {
|
||||
get_token();
|
||||
level3(&hold);
|
||||
arith(op,result,&hold);
|
||||
}
|
||||
}
|
||||
|
||||
/* Вычисление произведения или частного двух фвкторов */
|
||||
void Calculator::level3(qreal *result){
|
||||
QChar op;
|
||||
qreal hold;
|
||||
|
||||
level4(result);
|
||||
|
||||
while((op = token[0]) == '*' || op == '/' || op == '%') {
|
||||
get_token();
|
||||
level4(&hold);
|
||||
arith(op,result,&hold);
|
||||
}
|
||||
}
|
||||
|
||||
/* Обработка степени числа (целочисленной) */
|
||||
void Calculator::level4(qreal *result){
|
||||
qreal hold;
|
||||
|
||||
level5(result);
|
||||
if(token[0] == '^') {
|
||||
get_token();
|
||||
level4(&hold);
|
||||
arith('^', result, &hold);
|
||||
}
|
||||
}
|
||||
|
||||
/* Унарный + или - */
|
||||
void Calculator::level5(qreal *result){
|
||||
QChar op;
|
||||
|
||||
op = '\0';
|
||||
if((token_type==DELIMITER) && (token[0]=='+' || token[0]=='-')) {
|
||||
op = token[0];
|
||||
get_token();
|
||||
}
|
||||
level6(result);
|
||||
if(op != '\0')
|
||||
unary(op, result);
|
||||
}
|
||||
|
||||
/* Обработка выражения в круглых скобках */
|
||||
void Calculator::level6(qreal *result){
|
||||
if((token[0] == '(') && (token_type == DELIMITER)) {
|
||||
get_token();
|
||||
level2(result);
|
||||
if(token[0] != ')')
|
||||
serror(1);
|
||||
get_token();
|
||||
} else
|
||||
primitive(result);
|
||||
}
|
||||
|
||||
/* Определение значения переменной по ее имени */
|
||||
void Calculator::primitive(qreal *result){
|
||||
QString str;
|
||||
switch(token_type) {
|
||||
case VARIABLE:
|
||||
*result = find_var(token);
|
||||
str = QString("%1").arg(*result, 0, 'f', 3);
|
||||
debugFormula.append(str);
|
||||
get_token();
|
||||
return;
|
||||
case NUMBER:
|
||||
*result = token.toDouble();
|
||||
str = QString("%1").arg(*result, 0, 'f', 3);
|
||||
debugFormula.append(str);
|
||||
get_token();
|
||||
return;
|
||||
default:
|
||||
serror(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Выполнение специфицированной арифметики */
|
||||
void Calculator::arith(QChar o, qreal *r, qreal *h){
|
||||
qreal t;//, ex;
|
||||
|
||||
switch(o.toLatin1()) {
|
||||
case '-':
|
||||
*r = *r-*h;
|
||||
break;
|
||||
case '+':
|
||||
*r = *r+*h;
|
||||
break;
|
||||
case '*':
|
||||
*r = *r * *h;
|
||||
break;
|
||||
case '/':
|
||||
*r = (*r)/(*h);
|
||||
break;
|
||||
case '%':
|
||||
t = (*r)/(*h);
|
||||
*r = *r-(t*(*h));
|
||||
break;
|
||||
case '^':
|
||||
*r = pow(*r, *h);
|
||||
// ex =*r;
|
||||
// if(*h==0) {
|
||||
// *r = 1;
|
||||
// break;
|
||||
// }
|
||||
// for(t=*h-1; t>0; --t)
|
||||
// *r = (*r) * ex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Изменение знака */
|
||||
void Calculator::unary(QChar o, qreal *r){
|
||||
if(o=='-')
|
||||
*r = -(*r);
|
||||
}
|
||||
|
||||
/* Поиск значения переменной */
|
||||
qreal Calculator::find_var(QString s){
|
||||
bool ok = false;
|
||||
qreal value = data->FindVar(s, &ok);
|
||||
if(!ok){
|
||||
qDebug()<<s;
|
||||
serror(4); /* не переменная */
|
||||
return 0;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/* выдать сообщение об ошибке */
|
||||
void Calculator::serror(qint32 error){
|
||||
QString e[]= {
|
||||
"Синтаксическая ошибка",
|
||||
"Непарные круглые скобки",
|
||||
"Это не выражение",
|
||||
"Предполагается символ равенства",
|
||||
"Не переменная"
|
||||
};
|
||||
errorMsg->clear();
|
||||
*errorMsg = e[error];
|
||||
qDebug()<<e[error];
|
||||
}
|
||||
|
||||
/* Поиск соответствия внутреннего формата для
|
||||
текущей лексемы в таблице лексем.
|
||||
*/
|
||||
char Calculator::look_up(QString s){
|
||||
QString p;
|
||||
|
||||
/* преобразование к нижнему регистру */
|
||||
p = s;
|
||||
p = p.toLower();
|
||||
|
||||
/* просматривается, если лексема обнаружена в
|
||||
таблице */
|
||||
/*
|
||||
*у нас більше немає команд що потрібно опрацьовувати
|
||||
*/
|
||||
// if(commands.contains(p)){
|
||||
// return commands[p];
|
||||
// }
|
||||
return 0; /* нераспознанная команда */
|
||||
}
|
||||
|
||||
/* Возвращает "истину", если "c" разделитель */
|
||||
bool Calculator::isdelim(QChar c){
|
||||
if(StrChr(" ;,+-<>/*%^=()",c) || c=='\n' || c=='\r' || c=='\0')
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Возвращает 1, если "с" пробел или табуляция */
|
||||
bool Calculator::iswhite(QChar c){
|
||||
if(c==' ' || c=='\t')
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
void Calculator::get_token(){
|
||||
QString *temp;
|
||||
|
||||
token_type=0; tok=0;
|
||||
token.clear();
|
||||
temp=&token;
|
||||
|
||||
if(prog[index]=='\0') { /* Конец файла */
|
||||
token="\0";
|
||||
tok=FINISHED;
|
||||
token_type=DELIMITER;
|
||||
return;
|
||||
}
|
||||
|
||||
while(iswhite(prog[index])) ++index; /* пропуск пробелов */
|
||||
|
||||
if(prog[index]=='\r') { /* crtl */
|
||||
++index; ++index;
|
||||
tok= EOL; token='\r';
|
||||
token.append('\n');token.append("\0");
|
||||
token_type = DELIMITER;
|
||||
return;
|
||||
}
|
||||
|
||||
if(StrChr("+-*^/%=;(),><", prog[index])) { /* разделитель */
|
||||
*temp=prog[index];
|
||||
index++; /* переход на следующую позицию */
|
||||
temp->append("\0");
|
||||
token_type=DELIMITER;
|
||||
debugFormula.append(token);
|
||||
return;
|
||||
}
|
||||
if(prog[index]=='"') { /* строка в кавычках */
|
||||
index++;
|
||||
while(prog[index] != '"' && prog[index] != '\r'){
|
||||
temp->append(prog[index]);
|
||||
index++;
|
||||
}
|
||||
if(prog[index]=='\r')
|
||||
serror(1);
|
||||
index++;temp->append("\0");
|
||||
token_type=QUOTE;
|
||||
return;
|
||||
}
|
||||
if(prog[index].isDigit()) { /* число */
|
||||
while(!isdelim(prog[index])){
|
||||
temp->append(prog[index]);
|
||||
index++;
|
||||
}
|
||||
temp->append('\0');
|
||||
token_type = NUMBER;
|
||||
return;
|
||||
}
|
||||
|
||||
if(prog[index].isPrint()) { /* переменная или команда */
|
||||
while(!isdelim(prog[index])){
|
||||
temp->append(prog[index]);
|
||||
index++;
|
||||
}
|
||||
token_type=STRING;
|
||||
}
|
||||
temp->append("\0");
|
||||
|
||||
/* Просматривается, если строка есть команда или переменная */
|
||||
if(token_type==STRING) {
|
||||
tok=look_up(token); /* преобразование во внутренний
|
||||
формат */
|
||||
if(!tok)
|
||||
token_type = VARIABLE;
|
||||
else token_type = COMMAND; /* это команда */
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool Calculator::StrChr(QString string, QChar c){
|
||||
return string.contains(c, Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
/* Возвращает лексему обратно во входной поток */
|
||||
void Calculator::putback(){
|
||||
QString t;
|
||||
t = token;
|
||||
index = index - t.size();
|
||||
}
|
|
@ -1,165 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 CALCULATOR_H
|
||||
#define CALCULATOR_H
|
||||
|
||||
#include "vcontainer.h"
|
||||
|
||||
/**
|
||||
* @brief The Calculator клас калькулятора формул лекал. Виконує розрахунок формул з підставлянням
|
||||
* значеннь зміних.
|
||||
*/
|
||||
class Calculator{
|
||||
public:
|
||||
/**
|
||||
* @brief Calculator конструктор класу. Використовується при розрахунку лекала.
|
||||
* @param data покажчик на контейнер змінних
|
||||
*/
|
||||
explicit Calculator(const VContainer *data);
|
||||
/**
|
||||
* @brief eval виконує розрахунок формули.
|
||||
* @param prog рядко в якому зберігається формула.
|
||||
* @return значення формули.
|
||||
*/
|
||||
qreal eval(QString prog, QString *errorMsg);
|
||||
private:
|
||||
Q_DISABLE_COPY(Calculator)
|
||||
QString *errorMsg;
|
||||
/**
|
||||
* @brief token теперішня лексема.
|
||||
*/
|
||||
QString token;
|
||||
/**
|
||||
* @brief tok внутрішне представлення лексеми.
|
||||
*/
|
||||
qint32 tok;
|
||||
/**
|
||||
* @brief token_type тип лексеми.
|
||||
*/
|
||||
qint32 token_type;
|
||||
/**
|
||||
* @brief prog рядок в якому зберігається формула.
|
||||
*/
|
||||
QString prog; /* Содержит анализируемое выражение */
|
||||
/**
|
||||
* @brief index номер символу в рядку формули.
|
||||
*/
|
||||
qint32 index; /* Индекс символа в строке*/
|
||||
/**
|
||||
* @brief data контейнер усіх змінних.
|
||||
*/
|
||||
const VContainer *data;
|
||||
/**
|
||||
* @brief debugFormula рядок розшифрованої формули.
|
||||
*/
|
||||
QString debugFormula;
|
||||
/**
|
||||
* @brief get_exp виконує розрахунок формули.
|
||||
* @return значення формули.
|
||||
*/
|
||||
qreal get_exp();
|
||||
/**
|
||||
* @brief get_token повертає наступну лексему.
|
||||
*/
|
||||
void get_token();/* Получить лексему */
|
||||
/**
|
||||
* @brief StrChr перевіряє чи символ належить рядку.
|
||||
* @param string рядок
|
||||
* @param c символ.
|
||||
* @return true - належить рядку, false - не належить рядку.
|
||||
*/
|
||||
static bool StrChr(QString string, QChar c);
|
||||
/**
|
||||
* @brief putback повертає зчитану лексему назад у потік.
|
||||
*/
|
||||
void putback();
|
||||
/**
|
||||
* @brief level2 метод додавання і віднімання двух термів.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void level2(qreal *result);
|
||||
/**
|
||||
* @brief level3 метод множення, ділення, знаходження процентів.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void level3(qreal *result);
|
||||
/**
|
||||
* @brief level4 метод знаходження степені двох чисел.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void level4(qreal *result);
|
||||
/**
|
||||
* @brief level5 метод знаходження унарного плюса чи мінуса.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void level5(qreal *result);
|
||||
/**
|
||||
* @brief level6 метод обробки виразу в круглих лапках.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void level6(qreal *result);
|
||||
/**
|
||||
* @brief primitive метод визначення значення зміної по її імені.
|
||||
* @param result результат операції.
|
||||
*/
|
||||
void primitive(qreal *result);
|
||||
/**
|
||||
* @brief arith виконання специфікованої арифметики. Результат записується в перший елемент.
|
||||
* @param o знак операції.
|
||||
* @param r перший елемент.
|
||||
* @param h другий елемент.
|
||||
*/
|
||||
static void arith(QChar o, qreal *r, qreal *h);
|
||||
/**
|
||||
* @brief unary метод зміни знаку.
|
||||
* @param o символ знаку.
|
||||
* @param r елемент.
|
||||
*/
|
||||
static void unary(QChar o, qreal *r);
|
||||
/**
|
||||
* @brief find_var метод знаходить змінну за іменем.
|
||||
* @param s ім'я змінної.
|
||||
* @return значення зміної.
|
||||
*/
|
||||
qreal find_var(QString s);
|
||||
void serror(qint32 error);
|
||||
/**
|
||||
* @brief look_up пошук відповідного внутрішнього формату для теперішньої лексеми в таблиці лексем. текущей лексемы в таблице лексем
|
||||
* @param s ім'я лексеми.
|
||||
* @return внутрішній номер лексеми.
|
||||
*/
|
||||
static char look_up(QString s);
|
||||
/**
|
||||
* @brief isdelim повертає "істино", якщо с розділювач.
|
||||
* @param c символ.
|
||||
* @return розділювач, або ні.
|
||||
*/
|
||||
static bool isdelim(QChar c);
|
||||
/**
|
||||
* @brief iswhite перевіряє чи с пробіл чи табуляція.
|
||||
* @param c символ.
|
||||
* @return так або ні.
|
||||
*/
|
||||
static bool iswhite(QChar c);
|
||||
};
|
||||
|
||||
#endif // CALCULATOR_H
|
|
@ -1,744 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 "vcontainer.h"
|
||||
#include <exception/vexceptionbadid.h>
|
||||
|
||||
qint64 VContainer::_id = 0;
|
||||
|
||||
VContainer::VContainer():base(QHash<QString, qint32>()), points(QHash<qint64, VPointF>()),
|
||||
modelingPoints(QHash<qint64, VPointF>()),
|
||||
standartTable(QHash<QString, VStandartTableCell>()), incrementTable(QHash<QString, VIncrementTableRow>()),
|
||||
lengthLines(QHash<QString, qreal>()), lineAngles(QHash<QString, qreal>()), splines(QHash<qint64, VSpline>()),
|
||||
modelingSplines(QHash<qint64, VSpline>()),
|
||||
lengthSplines(QHash<QString, qreal>()), arcs(QHash<qint64, VArc>()), modelingArcs(QHash<qint64, VArc>()),
|
||||
lengthArcs(QHash<QString, qreal>()),
|
||||
splinePaths(QHash<qint64, VSplinePath>()), modelingSplinePaths(QHash<qint64, VSplinePath>()),
|
||||
details(QHash<qint64, VDetail>()){
|
||||
SetSize(500);
|
||||
SetGrowth(1760);
|
||||
CreateManTableIGroup ();
|
||||
}
|
||||
|
||||
VContainer &VContainer::operator =(const VContainer &data){
|
||||
setData(data);
|
||||
return *this;
|
||||
}
|
||||
|
||||
VContainer::VContainer(const VContainer &data):base(QHash<QString, qint32>()), points(QHash<qint64, VPointF>()),
|
||||
modelingPoints(QHash<qint64, VPointF>()),
|
||||
standartTable(QHash<QString, VStandartTableCell>()), incrementTable(QHash<QString, VIncrementTableRow>()),
|
||||
lengthLines(QHash<QString, qreal>()), lineAngles(QHash<QString, qreal>()), splines(QHash<qint64, VSpline>()),
|
||||
modelingSplines(QHash<qint64, VSpline>()),
|
||||
lengthSplines(QHash<QString, qreal>()), arcs(QHash<qint64, VArc>()), modelingArcs(QHash<qint64, VArc>()),
|
||||
lengthArcs(QHash<QString, qreal>()),
|
||||
splinePaths(QHash<qint64, VSplinePath>()), modelingSplinePaths(QHash<qint64, VSplinePath>()),
|
||||
details(QHash<qint64, VDetail>()){
|
||||
setData(data);
|
||||
}
|
||||
|
||||
void VContainer::setData(const VContainer &data){
|
||||
base = *data.DataBase();
|
||||
points = *data.DataPoints();
|
||||
modelingPoints = *data.DataModelingPoints();
|
||||
standartTable = *data.DataStandartTable();
|
||||
incrementTable = *data.DataIncrementTable();
|
||||
lengthLines = *data.DataLengthLines();
|
||||
lineAngles = *data.DataLineAngles();
|
||||
splines = *data.DataSplines();
|
||||
modelingSplines = *data.DataModelingSplines();
|
||||
lengthSplines = *data.DataLengthSplines();
|
||||
arcs = *data.DataArcs();
|
||||
modelingArcs = *data.DataModelingArcs();
|
||||
lengthArcs = *data.DataLengthArcs();
|
||||
splinePaths = *data.DataSplinePaths();
|
||||
modelingSplinePaths = *data.DataModelingSplinePaths();
|
||||
details = *data.DataDetails();
|
||||
}
|
||||
|
||||
template <typename key, typename val>
|
||||
val VContainer::GetObject(const QHash<key, val> &obj, key id){
|
||||
if(obj.contains(id)){
|
||||
return obj.value(id);
|
||||
} else {
|
||||
throw VExceptionBadId(tr("Can't find object"), id);
|
||||
}
|
||||
}
|
||||
|
||||
VStandartTableCell VContainer::GetStandartTableCell(const QString &name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(standartTable, name);
|
||||
}
|
||||
|
||||
VIncrementTableRow VContainer::GetIncrementTableRow(const QString& name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(incrementTable, name);
|
||||
}
|
||||
|
||||
qreal VContainer::GetLine(const QString &name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(lengthLines, name);
|
||||
}
|
||||
|
||||
qreal VContainer::GetLengthArc(const QString &name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(lengthArcs, name);
|
||||
}
|
||||
|
||||
qreal VContainer::GetLengthSpline(const QString &name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(lengthSplines, name);
|
||||
}
|
||||
|
||||
qreal VContainer::GetLineAngle(const QString &name) const{
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
return GetObject(lineAngles, name);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddPoint(const VPointF &point){
|
||||
return AddObject(points, point);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddModelingPoint(const VPointF &point){
|
||||
return AddObject(modelingPoints, point);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddDetail(const VDetail &detail){
|
||||
return AddObject(details, detail);
|
||||
}
|
||||
|
||||
qint64 VContainer::getNextId(){
|
||||
_id++;
|
||||
return _id;
|
||||
}
|
||||
|
||||
void VContainer::UpdateId(qint64 newId){
|
||||
if(newId > _id){
|
||||
_id = newId;
|
||||
}
|
||||
}
|
||||
|
||||
QPainterPath VContainer::ContourPath(qint64 idDetail) const{
|
||||
VDetail detail = GetDetail(idDetail);
|
||||
QVector<QPointF> points;
|
||||
QVector<QPointF> pointsEkv;
|
||||
for(qint32 i = 0; i< detail.CountNode(); ++i){
|
||||
switch(detail[i].getTypeTool()){
|
||||
case(Tool::NodePoint):{
|
||||
VPointF point = GetModelingPoint(detail[i].getId());
|
||||
points.append(point.toQPointF());
|
||||
if(detail.getSupplement() == true){
|
||||
QPointF pEkv = point.toQPointF();
|
||||
pEkv.setX(pEkv.x()+detail[i].getMx());
|
||||
pEkv.setY(pEkv.y()+detail[i].getMy());
|
||||
pointsEkv.append(pEkv);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case(Tool::NodeArc):{
|
||||
VArc arc = GetModelingArc(detail[i].getId());
|
||||
qreal len1 = GetLengthContour(points, arc.GetPoints());
|
||||
qreal lenReverse = GetLengthContour(points, GetReversePoint(arc.GetPoints()));
|
||||
if(len1 <= lenReverse){
|
||||
points << arc.GetPoints();
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(arc.GetPoints(), detail[i].getMx(), detail[i].getMy());
|
||||
}
|
||||
} else {
|
||||
points << GetReversePoint(arc.GetPoints());
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(GetReversePoint(arc.GetPoints()), detail[i].getMx(),
|
||||
detail[i].getMy());
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case(Tool::NodeSpline):{
|
||||
VSpline spline = GetModelingSpline(detail[i].getId());
|
||||
qreal len1 = GetLengthContour(points, spline.GetPoints());
|
||||
qreal lenReverse = GetLengthContour(points, GetReversePoint(spline.GetPoints()));
|
||||
if(len1 <= lenReverse){
|
||||
points << spline.GetPoints();
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(spline.GetPoints(), detail[i].getMx(), detail[i].getMy());
|
||||
}
|
||||
} else {
|
||||
points << GetReversePoint(spline.GetPoints());
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(GetReversePoint(spline.GetPoints()), detail[i].getMx(),
|
||||
detail[i].getMy());
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case(Tool::NodeSplinePath):{
|
||||
VSplinePath splinePath = GetModelingSplinePath(detail[i].getId());
|
||||
qreal len1 = GetLengthContour(points, splinePath.GetPathPoints());
|
||||
qreal lenReverse = GetLengthContour(points, GetReversePoint(splinePath.GetPathPoints()));
|
||||
if(len1 <= lenReverse){
|
||||
points << splinePath.GetPathPoints();
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(splinePath.GetPathPoints(), detail[i].getMx(), detail[i].getMy());
|
||||
}
|
||||
} else {
|
||||
points << GetReversePoint(splinePath.GetPathPoints());
|
||||
if(detail.getSupplement() == true){
|
||||
pointsEkv << biasPoints(GetReversePoint(splinePath.GetPathPoints()), detail[i].getMx(),
|
||||
detail[i].getMy());
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case(Tool::SplineTool):
|
||||
break;//Nothing to do, just ignore.
|
||||
default:
|
||||
qWarning()<<"Get wrong tool type. Ignore."<<detail[i].getTypeTool();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QPainterPath path;
|
||||
path.moveTo(points[0]);
|
||||
for (qint32 i = 1; i < points.count(); ++i){
|
||||
path.lineTo(points[i]);
|
||||
}
|
||||
path.lineTo(points[0]);
|
||||
|
||||
if(detail.getSupplement() == true){
|
||||
QPainterPath ekv;
|
||||
if(detail.getClosed() == true){
|
||||
ekv = Equidistant(pointsEkv, Detail::CloseEquidistant, toPixel(detail.getWidth()));
|
||||
} else {
|
||||
ekv = Equidistant(pointsEkv, Detail::OpenEquidistant, toPixel(detail.getWidth()));
|
||||
}
|
||||
path.addPath(ekv);
|
||||
path.setFillRule(Qt::WindingFill);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
QVector<QPointF> VContainer::biasPoints(const QVector<QPointF> &points, const qreal &mx, const qreal &my) const{
|
||||
QVector<QPointF> p;
|
||||
for(qint32 i = 0; i < points.size(); ++i){
|
||||
QPointF point = points.at(i);
|
||||
point.setX(point.x() + mx);
|
||||
point.setY(point.x() + my);
|
||||
p.append(point);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
QPainterPath VContainer::Equidistant(QVector<QPointF> points, const Detail::Equidistant &eqv,
|
||||
const qreal &width) const{
|
||||
QPainterPath ekv;
|
||||
QVector<QPointF> ekvPoints;
|
||||
if ( points.size() < 3 ){
|
||||
qDebug()<<"Not enough points for build equidistant.\n";
|
||||
return ekv;
|
||||
}
|
||||
for (qint32 i = 0; i < points.size(); ++i ){
|
||||
if(i != points.size()-1){
|
||||
if(points[i] == points[i+1]){
|
||||
points.remove(i+1);
|
||||
}
|
||||
} else {
|
||||
if(points[i] == points[0]){
|
||||
points.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(eqv == Detail::CloseEquidistant){
|
||||
points.append(points.at(0));
|
||||
}
|
||||
for (qint32 i = 0; i < points.size(); ++i ){
|
||||
if ( i == 0 && eqv == Detail::CloseEquidistant){//перша точка, ламана замкнена
|
||||
ekvPoints<<EkvPoint(QLineF(points[points.size()-2], points[points.size()-1]),
|
||||
QLineF(points[1], points[0]), width);
|
||||
continue;
|
||||
} else if(i == 0 && eqv == Detail::OpenEquidistant){//перша точка, ламана не замкнена
|
||||
ekvPoints.append(SingleParallelPoint(QLineF(points[0], points[1]), 90, width));
|
||||
continue;
|
||||
}
|
||||
if(i == points.size()-1 && eqv == Detail::CloseEquidistant){//остання точка, ламана замкнена
|
||||
ekvPoints.append(ekvPoints.at(0));
|
||||
continue;
|
||||
} else if(i == points.size()-1 && eqv == Detail::OpenEquidistant){//остання точка, ламана не замкнена
|
||||
ekvPoints.append(SingleParallelPoint(QLineF(points[points.size()-1],
|
||||
points[points.size()-2]), -90, width));
|
||||
continue;
|
||||
}
|
||||
//точка яка не лежить ні на початку ні в кінці
|
||||
ekvPoints<<EkvPoint(QLineF(points[i-1], points[i]), QLineF(points[i+1], points[i]), width);
|
||||
}
|
||||
ekvPoints = CheckLoops(ekvPoints);
|
||||
ekv.moveTo(ekvPoints[0]);
|
||||
for (qint32 i = 1; i < ekvPoints.count(); ++i){
|
||||
ekv.lineTo(ekvPoints[i]);
|
||||
}
|
||||
return ekv;
|
||||
}
|
||||
|
||||
QLineF VContainer::ParallelLine(const QLineF &line, qreal width){
|
||||
Q_ASSERT(width > 0);
|
||||
QLineF paralel = QLineF (SingleParallelPoint(line, 90, width),
|
||||
SingleParallelPoint(QLineF(line.p2(), line.p1()), -90, width));
|
||||
return paralel;
|
||||
}
|
||||
|
||||
QPointF VContainer::SingleParallelPoint(const QLineF &line, const qreal &angle, const qreal &width){
|
||||
Q_ASSERT(width > 0);
|
||||
QLineF l = line;
|
||||
l.setAngle( l.angle() + angle );
|
||||
l.setLength( width );
|
||||
return l.p2();
|
||||
}
|
||||
|
||||
QVector<QPointF> VContainer::EkvPoint(const QLineF &line1, const QLineF &line2, const qreal &width) const{
|
||||
Q_ASSERT(width > 0);
|
||||
QVector<QPointF> points;
|
||||
if(line1.p2() != line2.p2()){
|
||||
qWarning()<<"Last point of two lines must be equal.";
|
||||
}
|
||||
QPointF CrosPoint;
|
||||
QLineF bigLine1 = ParallelLine(line1, width );
|
||||
QLineF bigLine2 = ParallelLine(QLineF(line2.p2(), line2.p1()), width );
|
||||
QLineF::IntersectType type = bigLine1.intersect( bigLine2, &CrosPoint );
|
||||
switch(type){
|
||||
case(QLineF::BoundedIntersection):
|
||||
points.append(CrosPoint);
|
||||
return points;
|
||||
break;
|
||||
case(QLineF::UnboundedIntersection):{
|
||||
QLineF line( line1.p2(), CrosPoint );
|
||||
if(line.length() > width + toPixel(8)){
|
||||
QLineF l;
|
||||
l = QLineF(bigLine1.p2(), CrosPoint);
|
||||
l.setLength(width);
|
||||
points.append(l.p2());
|
||||
|
||||
l = QLineF(bigLine2.p1(), CrosPoint);
|
||||
l.setLength(width);
|
||||
points.append(l.p2());
|
||||
} else {
|
||||
points.append(CrosPoint);
|
||||
return points;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case(QLineF::NoIntersection):
|
||||
/*If we have correct lines this means lines lie on a line.*/
|
||||
points.append(bigLine1.p2());
|
||||
return points;
|
||||
break;
|
||||
}
|
||||
return points;
|
||||
}
|
||||
|
||||
QVector<QPointF> VContainer::CheckLoops(const QVector<QPointF> &points) const{
|
||||
QVector<QPointF> ekvPoints;
|
||||
/*If we got less than 4 points no need seek loops.*/
|
||||
if(points.size() < 4){
|
||||
return ekvPoints;
|
||||
}
|
||||
bool closed = false;
|
||||
if(points.at(0) == points.at(points.size()-1)){
|
||||
closed = true;
|
||||
}
|
||||
qint32 i, j;
|
||||
for(i = 0; i < points.size(); ++i){
|
||||
/*Last three points no need check.*/
|
||||
if(i >= points.size()-3){
|
||||
ekvPoints.append(points.at(i));
|
||||
continue;
|
||||
}
|
||||
QPointF crosPoint;
|
||||
QLineF::IntersectType intersect = QLineF::NoIntersection;
|
||||
QLineF line1(points.at(i),points.at(i+1));
|
||||
for(j = i+2; j < points.size()-1; ++j){
|
||||
QLineF line2(points.at(j),points.at(j+1));
|
||||
intersect = line1.intersect(line2, &crosPoint);
|
||||
if(intersect == QLineF::BoundedIntersection){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(intersect == QLineF::BoundedIntersection){
|
||||
if(i == 0 && j+1 == points.size()-1 && closed){
|
||||
/*We got closed contour.*/
|
||||
ekvPoints.append(points.at(i));
|
||||
} else {
|
||||
/*We found loop.*/
|
||||
ekvPoints.append(points.at(i));
|
||||
ekvPoints.append(crosPoint);
|
||||
ekvPoints.append(points.at(j+1));
|
||||
i = j + 2;
|
||||
}
|
||||
} else {
|
||||
/*We did not found loop.*/
|
||||
ekvPoints.append(points.at(i));
|
||||
}
|
||||
}
|
||||
return ekvPoints;
|
||||
}
|
||||
|
||||
void VContainer::PrepareDetails(QVector<VItem *> &list) const{
|
||||
QHashIterator<qint64, VDetail> iDetail(details);
|
||||
while (iDetail.hasNext()) {
|
||||
iDetail.next();
|
||||
list.append(new VItem(ContourPath(iDetail.key()), list.size()));
|
||||
}
|
||||
}
|
||||
|
||||
template <typename val>
|
||||
void VContainer::UpdateObject(QHash<qint64, val> &obj, const qint64 &id, const val& point){
|
||||
Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0");
|
||||
obj[id] = point;
|
||||
UpdateId(id);
|
||||
}
|
||||
|
||||
void VContainer::AddLengthSpline(const QString &name, const qreal &value){
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
lengthSplines[name] = value;
|
||||
}
|
||||
|
||||
void VContainer::AddLengthArc(const qint64 ¢er, const qint64 &id){
|
||||
AddLengthArc(GetNameArc(center, id), toMM(GetArc(id).GetLength()));
|
||||
}
|
||||
|
||||
void VContainer::AddLengthArc(const QString &name, const qreal &value){
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
lengthArcs[name] = value;
|
||||
}
|
||||
|
||||
void VContainer::AddLineAngle(const QString &name, const qreal &value){
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
lineAngles[name] = value;
|
||||
}
|
||||
|
||||
qreal VContainer::GetValueStandartTableCell(const QString& name) const{
|
||||
VStandartTableCell cell = GetStandartTableCell(name);
|
||||
qreal k_size = ( static_cast<qreal> (size()/10.0) - 50.0 ) / 2.0;
|
||||
qreal k_growth = ( static_cast<qreal> (growth()/10.0) - 176.0 ) / 6.0;
|
||||
qreal value = cell.GetBase() + k_size*cell.GetKsize() + k_growth*cell.GetKgrowth();
|
||||
return value;
|
||||
}
|
||||
|
||||
qreal VContainer::GetValueIncrementTableRow(const QString& name) const{
|
||||
VIncrementTableRow cell = GetIncrementTableRow(name);
|
||||
qreal k_size = ( static_cast<qreal> (size()/10.0) - 50.0 ) / 2.0;
|
||||
qreal k_growth = ( static_cast<qreal> (growth()/10.0) - 176.0 ) / 6.0;
|
||||
qreal value = cell.getBase() + k_size*cell.getKsize() + k_growth*cell.getKgrowth();
|
||||
return value;
|
||||
}
|
||||
|
||||
void VContainer::Clear(){
|
||||
_id = 0;
|
||||
standartTable.clear();
|
||||
incrementTable.clear();
|
||||
lengthLines.clear();
|
||||
lengthArcs.clear();
|
||||
lineAngles.clear();
|
||||
details.clear();
|
||||
modelingArcs.clear();
|
||||
modelingPoints.clear();
|
||||
modelingSplinePaths.clear();
|
||||
modelingSplines.clear();
|
||||
ClearObject();
|
||||
CreateManTableIGroup ();
|
||||
}
|
||||
|
||||
void VContainer::ClearObject(){
|
||||
points.clear();
|
||||
splines.clear();
|
||||
arcs.clear();
|
||||
splinePaths.clear();
|
||||
}
|
||||
|
||||
qreal VContainer::FindVar(const QString &name, bool *ok)const{
|
||||
if(base.contains(name)){
|
||||
*ok = true;
|
||||
return base.value(name);
|
||||
}
|
||||
|
||||
if(standartTable.contains(name)){
|
||||
*ok = true;
|
||||
return GetValueStandartTableCell(name);
|
||||
}
|
||||
if(incrementTable.contains(name)){
|
||||
*ok = true;
|
||||
return GetValueIncrementTableRow(name);
|
||||
}
|
||||
if(lengthLines.contains(name)){
|
||||
*ok = true;
|
||||
return lengthLines.value(name);
|
||||
}
|
||||
if(lengthArcs.contains(name)){
|
||||
*ok = true;
|
||||
return lengthArcs.value(name);
|
||||
}
|
||||
if(lineAngles.contains(name)){
|
||||
*ok = true;
|
||||
return lineAngles.value(name);
|
||||
}
|
||||
if(lengthSplines.contains(name)){
|
||||
*ok = true;
|
||||
return lengthSplines.value(name);
|
||||
}
|
||||
*ok = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void VContainer::AddLine(const qint64 &firstPointId, const qint64 &secondPointId, Draw::Draws mode){
|
||||
QString nameLine = GetNameLine(firstPointId, secondPointId, mode);
|
||||
VPointF first;
|
||||
VPointF second;
|
||||
if(mode == Draw::Calculation){
|
||||
first = GetPoint(firstPointId);
|
||||
second = GetPoint(secondPointId);
|
||||
} else {
|
||||
first = GetModelingPoint(firstPointId);
|
||||
second = GetModelingPoint(secondPointId);
|
||||
}
|
||||
AddLengthLine(nameLine, toMM(QLineF(first.toQPointF(), second.toQPointF()).length()));
|
||||
nameLine = GetNameLineAngle(firstPointId, secondPointId, mode);
|
||||
AddLineAngle(nameLine, QLineF(first.toQPointF(), second.toQPointF()).angle());
|
||||
}
|
||||
|
||||
qint64 VContainer::AddSpline(const VSpline &spl){
|
||||
return AddObject(splines, spl);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddModelingSpline(const VSpline &spl){
|
||||
return AddObject(modelingSplines, spl);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddSplinePath(const VSplinePath &splPath){
|
||||
return AddObject(splinePaths, splPath);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddModelingSplinePath(const VSplinePath &splPath){
|
||||
return AddObject(modelingSplinePaths, splPath);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddArc(const VArc &arc){
|
||||
return AddObject(arcs, arc);
|
||||
}
|
||||
|
||||
qint64 VContainer::AddModelingArc(const VArc &arc){
|
||||
return AddObject(modelingArcs, arc);
|
||||
}
|
||||
|
||||
template <typename key, typename val>
|
||||
qint64 VContainer::AddObject(QHash<key, val> &obj, const val& value){
|
||||
qint64 id = getNextId();
|
||||
obj[id] = value;
|
||||
return id;
|
||||
}
|
||||
|
||||
QString VContainer::GetNameLine(const qint64 &firstPoint, const qint64 &secondPoint, Draw::Draws mode) const{
|
||||
VPointF first;
|
||||
VPointF second;
|
||||
if(mode == Draw::Calculation){
|
||||
first = GetPoint(firstPoint);
|
||||
second = GetPoint(secondPoint);
|
||||
} else {
|
||||
first = GetModelingPoint(firstPoint);
|
||||
second = GetModelingPoint(secondPoint);
|
||||
}
|
||||
return QString("Line_%1_%2").arg(first.name(), second.name());
|
||||
}
|
||||
|
||||
QString VContainer::GetNameLineAngle(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode) const{
|
||||
VPointF first;
|
||||
VPointF second;
|
||||
if(mode == Draw::Calculation){
|
||||
first = GetPoint(firstPoint);
|
||||
second = GetPoint(secondPoint);
|
||||
} else {
|
||||
first = GetModelingPoint(firstPoint);
|
||||
second = GetModelingPoint(secondPoint);
|
||||
}
|
||||
return QString("AngleLine_%1_%2").arg(first.name(), second.name());
|
||||
}
|
||||
|
||||
QString VContainer::GetNameSpline(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode) const{
|
||||
VPointF first;
|
||||
VPointF second;
|
||||
if(mode == Draw::Calculation){
|
||||
first = GetPoint(firstPoint);
|
||||
second = GetPoint(secondPoint);
|
||||
} else {
|
||||
first = GetModelingPoint(firstPoint);
|
||||
second = GetModelingPoint(secondPoint);
|
||||
}
|
||||
return QString("Spl_%1_%2").arg(first.name(), second.name());
|
||||
}
|
||||
|
||||
QString VContainer::GetNameSplinePath(const VSplinePath &path, Draw::Draws mode) const{
|
||||
if(path.Count() == 0){
|
||||
return QString();
|
||||
}
|
||||
QString name("SplPath");
|
||||
for(qint32 i = 1; i <= path.Count(); ++i){
|
||||
VSpline spl = path.GetSpline(i);
|
||||
VPointF first;
|
||||
VPointF second;
|
||||
if(mode == Draw::Calculation){
|
||||
first = GetPoint(spl.GetP1());
|
||||
second = GetPoint(spl.GetP4());
|
||||
} else {
|
||||
first = GetModelingPoint(spl.GetP1());
|
||||
second = GetModelingPoint(spl.GetP4());
|
||||
}
|
||||
QString splName = QString("_%1_%2").arg(first.name(), second.name());
|
||||
name.append(splName);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
QString VContainer::GetNameArc(const qint64 ¢er, const qint64 &id, Draw::Draws mode) const{
|
||||
VPointF centerPoint;
|
||||
if(mode == Draw::Calculation){
|
||||
centerPoint = GetPoint(center);
|
||||
} else {
|
||||
centerPoint = GetModelingPoint(center);
|
||||
}
|
||||
return QString ("Arc_%1_%2").arg(centerPoint.name()).arg(id);
|
||||
}
|
||||
|
||||
void VContainer::UpdatePoint(qint64 id, const VPointF &point){
|
||||
UpdateObject(points, id, point);
|
||||
}
|
||||
|
||||
void VContainer::UpdateModelingPoint(qint64 id, const VPointF &point){
|
||||
UpdateObject(modelingPoints, id, point);
|
||||
}
|
||||
|
||||
void VContainer::UpdateDetail(qint64 id, const VDetail &detail){
|
||||
UpdateObject(details, id, detail);
|
||||
}
|
||||
|
||||
void VContainer::UpdateSpline(qint64 id, const VSpline &spl){
|
||||
UpdateObject(splines, id, spl);
|
||||
}
|
||||
|
||||
void VContainer::UpdateModelingSpline(qint64 id, const VSpline &spl){
|
||||
UpdateObject(modelingSplines, id, spl);
|
||||
}
|
||||
|
||||
void VContainer::UpdateSplinePath(qint64 id, const VSplinePath &splPath){
|
||||
UpdateObject(splinePaths, id, splPath);
|
||||
}
|
||||
|
||||
void VContainer::UpdateModelingSplinePath(qint64 id, const VSplinePath &splPath){
|
||||
UpdateObject(modelingSplinePaths, id, splPath);
|
||||
}
|
||||
|
||||
void VContainer::UpdateArc(qint64 id, const VArc &arc){
|
||||
UpdateObject(arcs, id, arc);
|
||||
}
|
||||
|
||||
void VContainer::UpdateModelingArc(qint64 id, const VArc &arc){
|
||||
UpdateObject(modelingArcs, id, arc);
|
||||
}
|
||||
|
||||
void VContainer::AddLengthLine(const QString &name, const qreal &value){
|
||||
Q_ASSERT(!name.isEmpty());
|
||||
lengthLines[name] = value;
|
||||
}
|
||||
|
||||
void VContainer::CreateManTableIGroup (){
|
||||
AddStandartTableCell("Pkor", VStandartTableCell(84, 0, 3));
|
||||
AddStandartTableCell("Pkor", VStandartTableCell(84, 0, 3));
|
||||
AddStandartTableCell("Vtos", VStandartTableCell(1450, 2, 51));
|
||||
AddStandartTableCell("Vtosh", VStandartTableCell(1506, 2, 54));
|
||||
AddStandartTableCell("Vpt", VStandartTableCell(1438, 3, 52));
|
||||
AddStandartTableCell("Vst", VStandartTableCell(1257, -1, 49));
|
||||
AddStandartTableCell("Vlt", VStandartTableCell(1102, 0, 43));
|
||||
AddStandartTableCell("Vk", VStandartTableCell(503, 0, 22));
|
||||
AddStandartTableCell("Vsht", VStandartTableCell(1522, 2, 54));
|
||||
AddStandartTableCell("Vzy", VStandartTableCell(1328, 0, 49));
|
||||
AddStandartTableCell("Vlop", VStandartTableCell(1320, 0, 49));
|
||||
AddStandartTableCell("Vps", VStandartTableCell(811, -1, 36));
|
||||
AddStandartTableCell("Ssh", VStandartTableCell(202,4, 1));
|
||||
AddStandartTableCell("SgI", VStandartTableCell(517, 18, 2));
|
||||
AddStandartTableCell("SgII", VStandartTableCell(522, 19, 1));
|
||||
AddStandartTableCell("SgIII", VStandartTableCell(500, 20, 0));
|
||||
AddStandartTableCell("St", VStandartTableCell(390, 20, 0));
|
||||
AddStandartTableCell("Sb", VStandartTableCell(492, 15, 5));
|
||||
AddStandartTableCell("SbI", VStandartTableCell(482, 12, 6));
|
||||
AddStandartTableCell("Obed", VStandartTableCell(566, 18, 6));
|
||||
AddStandartTableCell("Ok", VStandartTableCell(386, 8, 8));
|
||||
AddStandartTableCell("Oi", VStandartTableCell(380, 8, 6));
|
||||
AddStandartTableCell("Osch", VStandartTableCell(234, 4, 4));
|
||||
AddStandartTableCell("Dsb", VStandartTableCell(1120, 0, 44));
|
||||
AddStandartTableCell("Dsp", VStandartTableCell(1110, 0, 43));
|
||||
AddStandartTableCell("Dn", VStandartTableCell(826, -3, 37));
|
||||
AddStandartTableCell("Dps", VStandartTableCell(316, 4, 7));
|
||||
AddStandartTableCell("Dpob", VStandartTableCell(783, 14, 15));
|
||||
AddStandartTableCell("Ds", VStandartTableCell(260, 1, 6));
|
||||
AddStandartTableCell("Op", VStandartTableCell(316, 12, 0));
|
||||
AddStandartTableCell("Ozap", VStandartTableCell(180, 4, 0));
|
||||
AddStandartTableCell("Pkis", VStandartTableCell(250, 4, 0));
|
||||
AddStandartTableCell("SHp", VStandartTableCell(160, 1, 4));
|
||||
AddStandartTableCell("Dlych", VStandartTableCell(500, 2, 15));
|
||||
AddStandartTableCell("Dzap", VStandartTableCell(768, 2, 24));
|
||||
AddStandartTableCell("DIIIp", VStandartTableCell(970, 2, 29));
|
||||
AddStandartTableCell("Vprp", VStandartTableCell(214, 3, 3));
|
||||
AddStandartTableCell("Vg", VStandartTableCell(262, 8, 3));
|
||||
AddStandartTableCell("Dtp", VStandartTableCell(460, 7, 9));
|
||||
AddStandartTableCell("Dp", VStandartTableCell(355, 5, 5));
|
||||
AddStandartTableCell("Vprz", VStandartTableCell(208, 3, 5));
|
||||
AddStandartTableCell("Dts", VStandartTableCell(438, 2, 10));
|
||||
AddStandartTableCell("DtsI", VStandartTableCell(469, 2, 10));
|
||||
AddStandartTableCell("Dvcht", VStandartTableCell(929, 9, 19));
|
||||
AddStandartTableCell("SHg", VStandartTableCell(370, 14, 4));
|
||||
AddStandartTableCell("Cg", VStandartTableCell(224, 6, 0));
|
||||
AddStandartTableCell("SHs", VStandartTableCell(416, 10, 2));
|
||||
AddStandartTableCell("dpzr", VStandartTableCell(121, 6, 0));
|
||||
AddStandartTableCell("Ogol", VStandartTableCell(576, 4, 4));
|
||||
AddStandartTableCell("Ssh1", VStandartTableCell(205, 5, 0));
|
||||
AddStandartTableCell("St", VStandartTableCell(410, 20, 0));
|
||||
AddStandartTableCell("Drzap", VStandartTableCell(594, 3, 19));
|
||||
AddStandartTableCell("DbII", VStandartTableCell(1020, 0, 44));
|
||||
AddStandartTableCell("Sb", VStandartTableCell(504, 15, 4));
|
||||
}
|
||||
|
||||
QVector<QPointF> VContainer::GetReversePoint(const QVector<QPointF> &points) const{
|
||||
Q_ASSERT(points.size() > 0);
|
||||
QVector<QPointF> reversePoints;
|
||||
for (qint32 i = points.size() - 1; i >= 0; --i) {
|
||||
reversePoints.append(points.at(i));
|
||||
}
|
||||
return reversePoints;
|
||||
}
|
||||
|
||||
qreal VContainer::GetLengthContour(const QVector<QPointF> &contour, const QVector<QPointF> &newPoints) const{
|
||||
qreal length = 0;
|
||||
QVector<QPointF> points;
|
||||
points << contour << newPoints;
|
||||
for (qint32 i = 0; i < points.size()-1; ++i) {
|
||||
QLineF line(points.at(i), points.at(i+1));
|
||||
length += line.length();
|
||||
}
|
||||
return length;
|
||||
}
|
|
@ -1,176 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VCONTAINER_H
|
||||
#define VCONTAINER_H
|
||||
|
||||
#include "vstandarttablecell.h"
|
||||
#include "vincrementtablerow.h"
|
||||
#include "geometry/varc.h"
|
||||
#include "geometry/vsplinepath.h"
|
||||
#include "geometry/vdetail.h"
|
||||
#include "widgets/vitem.h"
|
||||
|
||||
/**
|
||||
* @brief The VContainer class
|
||||
*/
|
||||
class VContainer{
|
||||
Q_DECLARE_TR_FUNCTIONS(VContainer)
|
||||
public:
|
||||
/**
|
||||
* @brief VContainer
|
||||
*/
|
||||
VContainer();
|
||||
VContainer &operator=(const VContainer &data);
|
||||
VContainer(const VContainer &data);
|
||||
void setData(const VContainer &data);
|
||||
/**
|
||||
* @brief GetPoint
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
inline VPointF GetPoint(qint64 id) const {return GetObject(points, id);}
|
||||
inline VPointF GetModelingPoint(qint64 id) const {return GetObject(modelingPoints, id);}
|
||||
VStandartTableCell GetStandartTableCell(const QString& name) const;
|
||||
VIncrementTableRow GetIncrementTableRow(const QString& name) const;
|
||||
qreal GetLine(const QString &name) const;
|
||||
qreal GetLengthArc(const QString &name) const;
|
||||
qreal GetLengthSpline(const QString &name) const;
|
||||
qreal GetLineAngle(const QString &name) const;
|
||||
inline VSpline GetSpline(qint64 id) const {return GetObject(splines, id);}
|
||||
inline VSpline GetModelingSpline(qint64 id) const {return GetObject(modelingSplines, id);}
|
||||
inline VArc GetArc(qint64 id) const {return GetObject(arcs, id);}
|
||||
inline VArc GetModelingArc(qint64 id) const {return GetObject(modelingArcs, id);}
|
||||
inline VSplinePath GetSplinePath(qint64 id) const {return GetObject(splinePaths, id);}
|
||||
inline VSplinePath GetModelingSplinePath(qint64 id) const {return GetObject(modelingSplinePaths, id);}
|
||||
inline VDetail GetDetail(qint64 id) const {return GetObject(details, id);}
|
||||
static qint64 getId() {return _id;}
|
||||
qint64 AddPoint(const VPointF& point);
|
||||
qint64 AddModelingPoint(const VPointF& point);
|
||||
qint64 AddDetail(const VDetail& detail);
|
||||
inline void AddStandartTableCell(const QString& name, const VStandartTableCell& cell)
|
||||
{standartTable[name] = cell;}
|
||||
inline void AddIncrementTableRow(const QString& name, const VIncrementTableRow &cell)
|
||||
{incrementTable[name] = cell;}
|
||||
void AddLengthLine(const QString &name, const qreal &value);
|
||||
void AddLengthSpline(const QString &name, const qreal &value);
|
||||
void AddLengthArc(const qint64 ¢er, const qint64 &id);
|
||||
void AddLengthArc(const QString &name, const qreal &value);
|
||||
void AddLineAngle(const QString &name, const qreal &value);
|
||||
void AddLine(const qint64 &firstPointId, const qint64 &secondPointId,
|
||||
Draw::Draws mode = Draw::Calculation);
|
||||
qint64 AddSpline(const VSpline& spl);
|
||||
qint64 AddModelingSpline(const VSpline& spl);
|
||||
qint64 AddSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddModelingSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddArc(const VArc& arc);
|
||||
qint64 AddModelingArc(const VArc& arc);
|
||||
QString GetNameLine(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameLineAngle(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSpline(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSplinePath(const VSplinePath &path,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameArc(const qint64 ¢er, const qint64 &id, Draw::Draws mode = Draw::Calculation) const;
|
||||
void UpdatePoint(qint64 id, const VPointF& point);
|
||||
void UpdateModelingPoint(qint64 id, const VPointF& point);
|
||||
void UpdateDetail(qint64 id, const VDetail& detail);
|
||||
void UpdateSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateModelingSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateModelingSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateArc(qint64 id, const VArc& arc);
|
||||
void UpdateModelingArc(qint64 id, const VArc& arc);
|
||||
inline void UpdateStandartTableCell(const QString& name, const VStandartTableCell& cell)
|
||||
{standartTable[name] = cell;}
|
||||
inline void UpdateIncrementTableRow(const QString& name, const VIncrementTableRow& cell)
|
||||
{incrementTable[name] = cell;}
|
||||
qreal GetValueStandartTableCell(const QString& name) const;
|
||||
qreal GetValueIncrementTableRow(const QString& name) const;
|
||||
void Clear();
|
||||
void ClearObject();
|
||||
inline void ClearIncrementTable() {incrementTable.clear();}
|
||||
inline void ClearLengthLines() {lengthLines.clear();}
|
||||
inline void ClearLengthSplines() {lengthSplines.clear();}
|
||||
inline void ClearLengthArcs() {lengthArcs.clear();}
|
||||
inline void ClearLineAngles() {lineAngles.clear();}
|
||||
inline void SetSize(qint32 size) {base["Сг"] = size;}
|
||||
inline void SetGrowth(qint32 growth) {base["Р"] = growth;}
|
||||
inline qint32 size() const {return base.value("Сг");}
|
||||
inline qint32 growth() const {return base.value("Р");}
|
||||
qreal FindVar(const QString& name, bool *ok)const;
|
||||
inline bool IncrementTableContains(const QString& name) {return incrementTable.contains(name);}
|
||||
static qint64 getNextId();
|
||||
inline void RemoveIncrementTableRow(const QString& name) {incrementTable.remove(name);}
|
||||
inline const QHash<qint64, VPointF> *DataPoints() const {return &points;}
|
||||
inline const QHash<qint64, VPointF> *DataModelingPoints() const {return &modelingPoints;}
|
||||
inline const QHash<qint64, VSpline> *DataSplines() const {return &splines;}
|
||||
inline const QHash<qint64, VSpline> *DataModelingSplines() const {return &modelingSplines;}
|
||||
inline const QHash<qint64, VArc> *DataArcs() const {return &arcs;}
|
||||
inline const QHash<qint64, VArc> *DataModelingArcs() const {return &modelingArcs;}
|
||||
inline const QHash<QString, qint32> *DataBase() const {return &base;}
|
||||
inline const QHash<QString, VStandartTableCell> *DataStandartTable() const {return &standartTable;}
|
||||
inline const QHash<QString, VIncrementTableRow> *DataIncrementTable() const {return &incrementTable;}
|
||||
inline const QHash<QString, qreal> *DataLengthLines() const {return &lengthLines;}
|
||||
inline const QHash<QString, qreal> *DataLengthSplines() const {return &lengthSplines;}
|
||||
inline const QHash<QString, qreal> *DataLengthArcs() const {return &lengthArcs;}
|
||||
inline const QHash<QString, qreal> *DataLineAngles() const {return &lineAngles;}
|
||||
inline const QHash<qint64, VSplinePath> *DataSplinePaths() const {return &splinePaths;}
|
||||
inline const QHash<qint64, VSplinePath> *DataModelingSplinePaths() const {return &modelingSplinePaths;}
|
||||
inline const QHash<qint64, VDetail> *DataDetails() const {return &details;}
|
||||
static void UpdateId(qint64 newId);
|
||||
QPainterPath ContourPath(qint64 idDetail) const;
|
||||
QVector<QPointF> biasPoints(const QVector<QPointF> &points, const qreal &mx, const qreal &my) const;
|
||||
QPainterPath Equidistant(QVector<QPointF> points, const Detail::Equidistant &eqv, const qreal &width)const;
|
||||
static QLineF ParallelLine(const QLineF &line, qreal width );
|
||||
static QPointF SingleParallelPoint(const QLineF &line, const qreal &angle, const qreal &width);
|
||||
QVector<QPointF> EkvPoint(const QLineF &line1, const QLineF &line2, const qreal &width)const;
|
||||
QVector<QPointF> CheckLoops(const QVector<QPointF> &points) const;
|
||||
void PrepareDetails(QVector<VItem *> & list) const;
|
||||
private:
|
||||
static qint64 _id;
|
||||
QHash<QString, qint32> base;
|
||||
QHash<qint64, VPointF> points;
|
||||
QHash<qint64, VPointF> modelingPoints;
|
||||
QHash<QString, VStandartTableCell> standartTable;
|
||||
QHash<QString, VIncrementTableRow> incrementTable;
|
||||
QHash<QString, qreal> lengthLines;
|
||||
QHash<QString, qreal> lineAngles;
|
||||
QHash<qint64, VSpline> splines;
|
||||
QHash<qint64, VSpline> modelingSplines;
|
||||
QHash<QString, qreal> lengthSplines;
|
||||
QHash<qint64, VArc> arcs;
|
||||
QHash<qint64, VArc> modelingArcs;
|
||||
QHash<QString, qreal> lengthArcs;
|
||||
QHash<qint64, VSplinePath> splinePaths;
|
||||
QHash<qint64, VSplinePath> modelingSplinePaths;
|
||||
QHash<qint64, VDetail> details;
|
||||
void CreateManTableIGroup ();
|
||||
QVector<QPointF> GetReversePoint(const QVector<QPointF> &points)const;
|
||||
qreal GetLengthContour(const QVector<QPointF> &contour, const QVector<QPointF> &newPoints)const;
|
||||
template <typename key, typename val> static val GetObject(const QHash<key,val> &obj, key id);
|
||||
template <typename val> static void UpdateObject(QHash<qint64, val> &obj, const qint64 &id, const val& point);
|
||||
template <typename key, typename val> static qint64 AddObject(QHash<key, val> &obj, const val& value);
|
||||
};
|
||||
|
||||
#endif // VCONTAINER_H
|
|
@ -1,48 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VINCREMENTTABLEROW_H
|
||||
#define VINCREMENTTABLEROW_H
|
||||
|
||||
class VIncrementTableRow{
|
||||
public:
|
||||
VIncrementTableRow();
|
||||
VIncrementTableRow(qint64 id, qreal base, qreal ksize, qreal kgrowth,
|
||||
QString description = QString());
|
||||
inline qint64 getId() const {return id;}
|
||||
inline void setId(const qint64 &value) {id = value;}
|
||||
inline qreal getBase() const {return base;}
|
||||
inline void setBase(const qreal &value) {base = value;}
|
||||
inline qreal getKsize() const {return ksize;}
|
||||
inline void setKsize(const qreal &value) {ksize = value;}
|
||||
inline qreal getKgrowth() const {return kgrowth;}
|
||||
inline void setKgrowth(const qreal &value) {kgrowth = value;}
|
||||
inline QString getDescription() const {return description;}
|
||||
inline void setDescription(const QString &value) {description = value;}
|
||||
private:
|
||||
qint64 id;
|
||||
qreal base;
|
||||
qreal ksize;
|
||||
qreal kgrowth;
|
||||
QString description;
|
||||
};
|
||||
|
||||
#endif // VINCREMENTTABLEROW_H
|
|
@ -1,62 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VPOINTF_H
|
||||
#define VPOINTF_H
|
||||
|
||||
class VPointF{
|
||||
public:
|
||||
inline VPointF ()
|
||||
:_name(QString()), _mx(0), _my(0), _x(0), _y(0), mode(Draw::Calculation), idObject(0){}
|
||||
inline VPointF (const VPointF &point )
|
||||
:_name(point.name()), _mx(point.mx()), _my(point.my()), _x(point.x()), _y(point.y()),
|
||||
mode(point.getMode()), idObject(point.getIdObject()){}
|
||||
inline VPointF ( qreal x, qreal y, QString name, qreal mx, qreal my,
|
||||
Draw::Draws mode = Draw::Calculation, qint64 idObject = 0)
|
||||
:_name(name), _mx(mx), _my(my), _x(x), _y(y), mode(mode), idObject(idObject){}
|
||||
VPointF &operator=(const VPointF &point);
|
||||
~VPointF(){}
|
||||
inline QString name() const { return _name;}
|
||||
inline qreal mx() const {return _mx;}
|
||||
inline qreal my() const {return _my;}
|
||||
inline void setName(const QString &name) {_name = name;}
|
||||
inline void setMx(qreal mx) {_mx = mx;}
|
||||
inline void setMy(qreal my) {_my = my;}
|
||||
inline QPointF toQPointF()const {return QPointF(_x, _y);}
|
||||
inline qreal x() const {return _x;}
|
||||
inline void setX(const qreal &value){_x = value;}
|
||||
inline qreal y() const {return _y;}
|
||||
inline void setY(const qreal &value){_y = value;}
|
||||
inline Draw::Draws getMode() const{return mode;}
|
||||
inline void setMode(const Draw::Draws &value) {mode = value;}
|
||||
inline qint64 getIdObject() const {return idObject;}
|
||||
inline void setIdObject(const qint64 &value) {idObject = value;}
|
||||
private:
|
||||
QString _name;
|
||||
qreal _mx;
|
||||
qreal _my;
|
||||
qreal _x;
|
||||
qreal _y;
|
||||
Draw::Draws mode;
|
||||
qint64 idObject;
|
||||
};
|
||||
|
||||
#endif // VPOINTF_H
|
|
@ -1,40 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VSTANDARTTABLECELL_H
|
||||
#define VSTANDARTTABLECELL_H
|
||||
|
||||
class VStandartTableCell{
|
||||
public:
|
||||
VStandartTableCell();
|
||||
VStandartTableCell(qint32 base, qreal ksize, qreal kgrowth, QString description = QString());
|
||||
inline qint32 GetBase() const {return base;}
|
||||
inline qreal GetKsize() const {return ksize;}
|
||||
inline qreal GetKgrowth() const {return kgrowth;}
|
||||
inline QString GetDescription() const {return description;}
|
||||
private:
|
||||
qint32 base;
|
||||
qreal ksize;
|
||||
qreal kgrowth;
|
||||
QString description;
|
||||
};
|
||||
|
||||
#endif // VSTANDARTTABLECELL_H
|
|
@ -1,61 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGALONGLINE_H
|
||||
#define DIALOGALONGLINE_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogAlongLine;
|
||||
}
|
||||
|
||||
class DialogAlongLine : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogAlongLine(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogAlongLine();
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline QString getFormula() const {return formula;}
|
||||
void setFormula(const QString &value);
|
||||
inline qint64 getFirstPointId() const {return firstPointId;}
|
||||
void setFirstPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPointId() const {return secondPointId;}
|
||||
void setSecondPointId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogAlongLine)
|
||||
Ui::DialogAlongLine *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
QString formula;
|
||||
qint64 firstPointId;
|
||||
qint64 secondPointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGALONGLINE_H
|
|
@ -1,76 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGARC_H
|
||||
#define DIALOGARC_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogArc;
|
||||
}
|
||||
|
||||
class DialogArc : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogArc(const VContainer *data, Draw::Draws mode = Draw::Calculation, QWidget *parent = 0);
|
||||
~DialogArc();
|
||||
inline qint64 GetCenter() const {return center;}
|
||||
void SetCenter(const qint64 &value);
|
||||
inline QString GetRadius() const {return radius;}
|
||||
void SetRadius(const QString &value);
|
||||
inline QString GetF1() const {return f1;}
|
||||
void SetF1(const QString &value);
|
||||
inline QString GetF2() const {return f2;}
|
||||
void SetF2(const QString &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
virtual void ValChenged(int row);
|
||||
void PutRadius();
|
||||
void PutF1();
|
||||
void PutF2();
|
||||
void LineAngles();
|
||||
void RadiusChanged();
|
||||
void F1Changed();
|
||||
void F2Changed();
|
||||
protected:
|
||||
virtual void CheckState();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogArc)
|
||||
Ui::DialogArc *ui;
|
||||
bool flagRadius;
|
||||
bool flagF1;
|
||||
bool flagF2;
|
||||
QTimer *timerRadius;
|
||||
QTimer *timerF1;
|
||||
QTimer *timerF2;
|
||||
qint64 center;
|
||||
QString radius;
|
||||
QString f1;
|
||||
QString f2;
|
||||
void EvalRadius();
|
||||
void EvalF1();
|
||||
void EvalF2();
|
||||
void ShowLineAngles();
|
||||
};
|
||||
|
||||
#endif // DIALOGARC_H
|
|
@ -1,65 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGBISECTOR_H
|
||||
#define DIALOGBISECTOR_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogBisector;
|
||||
}
|
||||
|
||||
class DialogBisector : public DialogTool{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DialogBisector(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogBisector();
|
||||
QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline QString getFormula() const {return formula;}
|
||||
void setFormula(const QString &value);
|
||||
inline qint64 getFirstPointId() const {return firstPointId;}
|
||||
void setFirstPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPointId() const {return secondPointId;}
|
||||
void setSecondPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getThirdPointId() const {return thirdPointId;}
|
||||
void setThirdPointId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogBisector)
|
||||
Ui::DialogBisector *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
QString formula;
|
||||
qint64 firstPointId;
|
||||
qint64 secondPointId;
|
||||
qint64 thirdPointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGBISECTOR_H
|
|
@ -1,51 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGDETAIL_H
|
||||
#define DIALOGDETAIL_H
|
||||
|
||||
#include "ui_dialogdetail.h"
|
||||
#include "dialogtool.h"
|
||||
|
||||
class DialogDetail : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogDetail(const VContainer *data, Draw::Draws mode, QWidget *parent = 0);
|
||||
inline VDetail getDetails() const {return details;}
|
||||
void setDetails(const VDetail &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
void BiasXChanged(qreal d);
|
||||
void BiasYChanged(qreal d);
|
||||
void ClickedSeams(bool checked);
|
||||
void ClickedClosed(bool checked);
|
||||
void ObjectChanged(int row);
|
||||
private:
|
||||
Ui::DialogDetail ui;
|
||||
VDetail details;
|
||||
bool supplement;
|
||||
bool closed;
|
||||
void NewItem(qint64 id, Tool::Tools typeTool, Draw::Draws mode, NodeDetail::NodeDetails typeNode, qreal mx = 0,
|
||||
qreal my = 0);
|
||||
};
|
||||
|
||||
#endif // DIALOGDETAIL_H
|
|
@ -1,60 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGENDLINE_H
|
||||
#define DIALOGENDLINE_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogEndLine;
|
||||
}
|
||||
|
||||
class DialogEndLine : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogEndLine(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogEndLine();
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline QString getFormula() const {return formula;}
|
||||
void setFormula(const QString &value);
|
||||
inline qreal getAngle() const {return angle;}
|
||||
void setAngle(const qreal &value);
|
||||
inline qint64 getBasePointId() const {return basePointId;}
|
||||
void setBasePointId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogEndLine)
|
||||
Ui::DialogEndLine *ui;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
QString formula;
|
||||
qreal angle;
|
||||
qint64 basePointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGENDLINE_H
|
|
@ -1,101 +0,0 @@
|
|||
#include "dialogheight.h"
|
||||
#include "ui_dialogheight.h"
|
||||
|
||||
DialogHeight::DialogHeight(const VContainer *data, Draw::Draws mode, QWidget *parent) :
|
||||
DialogTool(data, mode, parent), ui(new Ui::DialogHeight), number(0), pointName(QString()),
|
||||
typeLine(QString()), basePointId(0), p1LineId(0), p2LineId(0){
|
||||
ui->setupUi(this);
|
||||
labelEditNamePoint = ui->labelEditNamePoint;
|
||||
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
||||
connect(bOk, &QPushButton::clicked, this, &DialogHeight::DialogAccepted);
|
||||
flagName = false;
|
||||
CheckState();
|
||||
QPushButton *bCansel = ui->buttonBox->button(QDialogButtonBox::Cancel);
|
||||
connect(bCansel, &QPushButton::clicked, this, &DialogHeight::DialogRejected);
|
||||
FillComboBoxPoints(ui->comboBoxBasePoint);
|
||||
FillComboBoxPoints(ui->comboBoxP1Line);
|
||||
FillComboBoxPoints(ui->comboBoxP2Line);
|
||||
FillComboBoxTypeLine(ui->comboBoxLineType);
|
||||
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogHeight::NamePointChanged);
|
||||
}
|
||||
|
||||
DialogHeight::~DialogHeight(){
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DialogHeight::setPointName(const QString &value){
|
||||
pointName = value;
|
||||
ui->lineEditNamePoint->setText(pointName);
|
||||
}
|
||||
|
||||
void DialogHeight::setTypeLine(const QString &value){
|
||||
typeLine = value;
|
||||
SetupTypeLine(ui->comboBoxLineType, value);
|
||||
}
|
||||
|
||||
void DialogHeight::setBasePointId(const qint64 &value, const qint64 &id){
|
||||
basePointId = value;
|
||||
setCurrentPointId(ui->comboBoxBasePoint, basePointId, value, id);
|
||||
}
|
||||
|
||||
void DialogHeight::setP1LineId(const qint64 &value, const qint64 &id){
|
||||
p1LineId = value;
|
||||
setCurrentPointId(ui->comboBoxP1Line, p1LineId, value, id);
|
||||
}
|
||||
|
||||
void DialogHeight::setP2LineId(const qint64 &value, const qint64 &id){
|
||||
p2LineId = value;
|
||||
setCurrentPointId(ui->comboBoxP2Line, p2LineId, value, id);
|
||||
}
|
||||
|
||||
void DialogHeight::ChoosedObject(qint64 id, Scene::Scenes type){
|
||||
if(idDetail == 0 && mode == Draw::Modeling){
|
||||
if(type == Scene::Detail){
|
||||
idDetail = id;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(mode == Draw::Modeling){
|
||||
if(!CheckObject(id)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(type == Scene::Point){
|
||||
VPointF point;
|
||||
if(mode == Draw::Calculation){
|
||||
point = data->GetPoint(id);
|
||||
} else {
|
||||
point = data->GetModelingPoint(id);
|
||||
}
|
||||
switch(number){
|
||||
case(0):
|
||||
ChangeCurrentText(ui->comboBoxBasePoint, point.name());
|
||||
number++;
|
||||
emit ToolTip(tr("Select first point of line"));
|
||||
break;
|
||||
case(1):
|
||||
ChangeCurrentText(ui->comboBoxP1Line, point.name());
|
||||
number++;
|
||||
emit ToolTip(tr("Select second point of line"));
|
||||
break;
|
||||
case(2):
|
||||
ChangeCurrentText(ui->comboBoxP2Line, point.name());
|
||||
number = 0;
|
||||
emit ToolTip(tr(""));
|
||||
if(!isInitialized){
|
||||
this->show();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DialogHeight::DialogAccepted(){
|
||||
pointName = ui->lineEditNamePoint->text();
|
||||
typeLine = GetTypeLine(ui->comboBoxLineType);
|
||||
basePointId = getCurrentPointId(ui->comboBoxBasePoint);
|
||||
p1LineId = getCurrentPointId(ui->comboBoxP1Line);
|
||||
p2LineId = getCurrentPointId(ui->comboBoxP2Line);
|
||||
emit DialogClosed(QDialog::Accepted);
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGHEIGHT_H
|
||||
#define DIALOGHEIGHT_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogHeight;
|
||||
}
|
||||
|
||||
class DialogHeight : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogHeight(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogHeight();
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline qint64 getBasePointId() const {return basePointId;}
|
||||
void setBasePointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getP1LineId() const {return p1LineId;}
|
||||
void setP1LineId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getP2LineId() const{return p2LineId;}
|
||||
void setP2LineId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogHeight)
|
||||
Ui::DialogHeight *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
qint64 basePointId;
|
||||
qint64 p1LineId;
|
||||
qint64 p2LineId;
|
||||
};
|
||||
|
||||
#endif // DIALOGHEIGHT_H
|
|
@ -1,58 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGHISTORY_H
|
||||
#define DIALOGHISTORY_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
#include "xml/vdomdocument.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogHistory;
|
||||
}
|
||||
|
||||
class DialogHistory : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogHistory(VContainer *data, VDomDocument *doc, QWidget *parent = 0);
|
||||
virtual ~DialogHistory();
|
||||
public slots:
|
||||
virtual void DialogAccepted();
|
||||
void cellClicked(int row, int column);
|
||||
void ChangedCursor(qint64 id);
|
||||
void UpdateHistory();
|
||||
signals:
|
||||
void ShowHistoryTool(qint64 id, Qt::GlobalColor color, bool enable);
|
||||
protected:
|
||||
virtual void closeEvent ( QCloseEvent * event );
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogHistory)
|
||||
Ui::DialogHistory *ui;
|
||||
VDomDocument *doc;
|
||||
qint32 cursorRow;
|
||||
qint32 cursorToolRecordRow;
|
||||
void FillTable();
|
||||
QString Record(const VToolRecord &tool);
|
||||
void InitialTable();
|
||||
void ShowPoint();
|
||||
};
|
||||
|
||||
#endif // DIALOGHISTORY_H
|
|
@ -1,67 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGINCREMENTS_H
|
||||
#define DIALOGINCREMENTS_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
#include "xml/vdomdocument.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogIncrements;
|
||||
}
|
||||
|
||||
class DialogIncrements : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogIncrements(VContainer *data, VDomDocument *doc, QWidget *parent = 0);
|
||||
~DialogIncrements();
|
||||
public slots:
|
||||
void clickedToolButtonAdd();
|
||||
void clickedToolButtonRemove();
|
||||
void cellChanged ( qint32 row, qint32 column );
|
||||
void FullUpdateFromFile();
|
||||
virtual void DialogAccepted();
|
||||
signals:
|
||||
void FullUpdateTree();
|
||||
void haveLiteChange();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogIncrements)
|
||||
Ui::DialogIncrements *ui;
|
||||
VContainer *data; // need because we must change data
|
||||
VDomDocument *doc;
|
||||
qint32 row;
|
||||
qint32 column;
|
||||
void InitialStandartTable();
|
||||
void InitialIncrementTable();
|
||||
void InitialLinesTable();
|
||||
void InitialSplinesTable();
|
||||
void InitialArcsTable();
|
||||
void FillStandartTable();
|
||||
void FillIncrementTable();
|
||||
void FillLengthLines();
|
||||
void FillLengthSplines();
|
||||
void FillLengthArcs();
|
||||
void AddIncrementToFile(qint64 id, QString name, qreal base, qreal ksize, qreal kgrowth,
|
||||
QString description);
|
||||
};
|
||||
|
||||
#endif // DIALOGINCREMENTS_H
|
|
@ -1,52 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGLINE_H
|
||||
#define DIALOGLINE_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogLine;
|
||||
}
|
||||
|
||||
class DialogLine : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogLine(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogLine();
|
||||
inline qint64 getFirstPoint() const {return firstPoint;}
|
||||
void setFirstPoint(const qint64 &value);
|
||||
inline qint64 getSecondPoint() const {return secondPoint;}
|
||||
void setSecondPoint(const qint64 &value);
|
||||
public slots:
|
||||
void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogLine)
|
||||
Ui::DialogLine *ui;
|
||||
qint32 number;
|
||||
qint64 firstPoint;
|
||||
qint64 secondPoint;
|
||||
};
|
||||
|
||||
#endif // DIALOGLINE_H
|
|
@ -1,68 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGLINEINTERSECT_H
|
||||
#define DIALOGLINEINTERSECT_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogLineIntersect;
|
||||
}
|
||||
|
||||
class DialogLineIntersect : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogLineIntersect(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogLineIntersect();
|
||||
inline qint64 getP1Line1() const {return p1Line1;}
|
||||
void setP1Line1(const qint64 &value);
|
||||
inline qint64 getP2Line1() const {return p2Line1;}
|
||||
void setP2Line1(const qint64 &value);
|
||||
inline qint64 getP1Line2() const {return p1Line2;}
|
||||
void setP1Line2(const qint64 &value);
|
||||
inline qint64 getP2Line2() const {return p2Line2;}
|
||||
void setP2Line2(const qint64 &value);
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
void P1Line1Changed( int index);
|
||||
void P2Line1Changed( int index);
|
||||
void P1Line2Changed( int index);
|
||||
void P2Line2Changed( int index);
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogLineIntersect)
|
||||
Ui::DialogLineIntersect *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
qint64 p1Line1;
|
||||
qint64 p2Line1;
|
||||
qint64 p1Line2;
|
||||
qint64 p2Line2;
|
||||
bool flagPoint;
|
||||
virtual void CheckState();
|
||||
bool CheckIntersecion();
|
||||
};
|
||||
|
||||
#endif // DIALOGLINEINTERSECT_H
|
|
@ -1,64 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGNORMAL_H
|
||||
#define DIALOGNORMAL_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogNormal;
|
||||
}
|
||||
|
||||
class DialogNormal : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogNormal(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogNormal();
|
||||
inline QString getPointName() const{return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline QString getFormula() const {return formula;}
|
||||
void setFormula(const QString &value);
|
||||
inline qreal getAngle() const {return angle;}
|
||||
void setAngle(const qreal &value);
|
||||
inline qint64 getFirstPointId() const {return firstPointId;}
|
||||
void setFirstPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPointId() const {return secondPointId;}
|
||||
void setSecondPointId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogNormal)
|
||||
Ui::DialogNormal *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
QString formula;
|
||||
qreal angle;
|
||||
qint64 firstPointId;
|
||||
qint64 secondPointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGNORMAL_H
|
|
@ -1,58 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGPOINTOFCONTACT_H
|
||||
#define DIALOGPOINTOFCONTACT_H
|
||||
|
||||
#include "ui_dialogpointofcontact.h"
|
||||
#include "dialogtool.h"
|
||||
|
||||
class DialogPointOfContact : public DialogTool{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DialogPointOfContact(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getRadius() const {return radius;}
|
||||
void setRadius(const QString &value);
|
||||
inline qint64 getCenter() const {return center;}
|
||||
void setCenter(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getFirstPoint() const {return firstPoint;}
|
||||
void setFirstPoint(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPoint() const {return secondPoint;}
|
||||
void setSecondPoint(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogPointOfContact)
|
||||
Ui::DialogPointOfContact ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString radius;
|
||||
qint64 center;
|
||||
qint64 firstPoint;
|
||||
qint64 secondPoint;
|
||||
};
|
||||
|
||||
#endif // DIALOGPOINTOFCONTACT_H
|
|
@ -1,86 +0,0 @@
|
|||
#include "dialogpointofintersection.h"
|
||||
#include "ui_dialogpointofintersection.h"
|
||||
|
||||
DialogPointOfIntersection::DialogPointOfIntersection(const VContainer *data, Draw::Draws mode, QWidget *parent) :
|
||||
DialogTool(data, mode, parent), ui(new Ui::DialogPointOfIntersection), number(0), pointName(QString()),
|
||||
firstPointId(0), secondPointId(0){
|
||||
ui->setupUi(this);
|
||||
labelEditNamePoint = ui->labelEditNamePoint;
|
||||
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
||||
connect(bOk, &QPushButton::clicked, this, &DialogPointOfIntersection::DialogAccepted);
|
||||
flagName = false;
|
||||
CheckState();
|
||||
QPushButton *bCansel = ui->buttonBox->button(QDialogButtonBox::Cancel);
|
||||
connect(bCansel, &QPushButton::clicked, this, &DialogPointOfIntersection::DialogRejected);
|
||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||
FillComboBoxPoints(ui->comboBoxSecondPoint);
|
||||
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogPointOfIntersection::NamePointChanged);
|
||||
}
|
||||
|
||||
DialogPointOfIntersection::~DialogPointOfIntersection(){
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DialogPointOfIntersection::setSecondPointId(const qint64 &value, const qint64 &id){
|
||||
secondPointId = value;
|
||||
setCurrentPointId(ui->comboBoxSecondPoint, secondPointId, value, id);
|
||||
}
|
||||
|
||||
void DialogPointOfIntersection::ChoosedObject(qint64 id, Scene::Scenes type){
|
||||
if(idDetail == 0 && mode == Draw::Modeling){
|
||||
if(type == Scene::Detail){
|
||||
idDetail = id;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(mode == Draw::Modeling){
|
||||
if(!CheckObject(id)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(type == Scene::Point){
|
||||
VPointF point;
|
||||
if(mode == Draw::Calculation){
|
||||
point = data->GetPoint(id);
|
||||
} else {
|
||||
point = data->GetModelingPoint(id);
|
||||
}
|
||||
if(number == 0){
|
||||
qint32 index = ui->comboBoxFirstPoint->findText(point.name());
|
||||
if ( index != -1 ) { // -1 for not found
|
||||
ui->comboBoxFirstPoint->setCurrentIndex(index);
|
||||
number++;
|
||||
emit ToolTip(tr("Select point horizontally"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(number == 1){
|
||||
qint32 index = ui->comboBoxSecondPoint->findText(point.name());
|
||||
if ( index != -1 ) { // -1 for not found
|
||||
ui->comboBoxSecondPoint->setCurrentIndex(index);
|
||||
number = 0;
|
||||
emit ToolTip("");
|
||||
}
|
||||
if(!isInitialized){
|
||||
this->show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DialogPointOfIntersection::DialogAccepted(){
|
||||
pointName = ui->lineEditNamePoint->text();
|
||||
firstPointId = getCurrentPointId(ui->comboBoxFirstPoint);
|
||||
secondPointId = getCurrentPointId(ui->comboBoxSecondPoint);
|
||||
emit DialogClosed(QDialog::Accepted);
|
||||
}
|
||||
|
||||
void DialogPointOfIntersection::setFirstPointId(const qint64 &value, const qint64 &id){
|
||||
firstPointId = value;
|
||||
setCurrentPointId(ui->comboBoxFirstPoint, firstPointId, value, id);
|
||||
}
|
||||
|
||||
void DialogPointOfIntersection::setPointName(const QString &value){
|
||||
pointName = value;
|
||||
ui->lineEditNamePoint->setText(pointName);
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
#ifndef DIALOGPOINTOFINTERSECTION_H
|
||||
#define DIALOGPOINTOFINTERSECTION_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogPointOfIntersection;
|
||||
}
|
||||
|
||||
class DialogPointOfIntersection : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogPointOfIntersection(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogPointOfIntersection();
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline qint64 getFirstPointId() const {return firstPointId;}
|
||||
void setFirstPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPointId() const {return secondPointId;}
|
||||
void setSecondPointId(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogPointOfIntersection)
|
||||
Ui::DialogPointOfIntersection *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
qint64 firstPointId;
|
||||
qint64 secondPointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGPOINTOFINTERSECTION_H
|
|
@ -1,64 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGSHOULDERPOINT_H
|
||||
#define DIALOGSHOULDERPOINT_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogShoulderPoint;
|
||||
}
|
||||
|
||||
class DialogShoulderPoint : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogShoulderPoint(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogShoulderPoint();
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
inline QString getTypeLine() const {return typeLine;}
|
||||
void setTypeLine(const QString &value);
|
||||
inline QString getFormula() const {return formula;}
|
||||
void setFormula(const QString &value);
|
||||
inline qint64 getP1Line() const {return p1Line;}
|
||||
void setP1Line(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getP2Line() const {return p2Line;}
|
||||
void setP2Line(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getPShoulder() const {return pShoulder;}
|
||||
void setPShoulder(const qint64 &value, const qint64 &id);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogShoulderPoint)
|
||||
Ui::DialogShoulderPoint *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
QString typeLine;
|
||||
QString formula;
|
||||
qint64 p1Line;
|
||||
qint64 p2Line;
|
||||
qint64 pShoulder;
|
||||
};
|
||||
|
||||
#endif // DIALOGSHOULDERPOINT_H
|
|
@ -1,49 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGSINGLEPOINT_H
|
||||
#define DIALOGSINGLEPOINT_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogSinglePoint;
|
||||
}
|
||||
|
||||
class DialogSinglePoint : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogSinglePoint(const VContainer *data, QWidget *parent = 0);
|
||||
void setData(const QString name, const QPointF point);
|
||||
inline QString getName()const {return name;}
|
||||
inline QPointF getPoint()const {return point;}
|
||||
~DialogSinglePoint();
|
||||
public slots:
|
||||
void mousePress(QPointF scenePos);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogSinglePoint)
|
||||
Ui::DialogSinglePoint *ui;
|
||||
QString name;
|
||||
QPointF point;
|
||||
};
|
||||
|
||||
#endif // DIALOGSINGLEPOINT_H
|
|
@ -1,67 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGSPLINE_H
|
||||
#define DIALOGSPLINE_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogSpline;
|
||||
}
|
||||
|
||||
class DialogSpline : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogSpline(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogSpline();
|
||||
inline qint64 getP1() const {return p1;}
|
||||
void setP1(const qint64 &value);
|
||||
inline qint64 getP4() const {return p4;}
|
||||
void setP4(const qint64 &value);
|
||||
inline qreal getAngle1() const {return angle1;}
|
||||
void setAngle1(const qreal &value);
|
||||
inline qreal getAngle2() const {return angle2;}
|
||||
void setAngle2(const qreal &value);
|
||||
inline qreal getKAsm1() const {return kAsm1;}
|
||||
void setKAsm1(const qreal &value);
|
||||
inline qreal getKAsm2() const {return kAsm2;}
|
||||
void setKAsm2(const qreal &value);
|
||||
inline qreal getKCurve() const {return kCurve;}
|
||||
void setKCurve(const qreal &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogSpline)
|
||||
Ui::DialogSpline *ui;
|
||||
qint32 number;
|
||||
qint64 p1; // перша точка
|
||||
qint64 p4; // четверта точка
|
||||
qreal angle1; // кут нахилу дотичної в першій точці
|
||||
qreal angle2; // кут нахилу дотичної в другій точці
|
||||
qreal kAsm1;
|
||||
qreal kAsm2;
|
||||
qreal kCurve;
|
||||
};
|
||||
|
||||
#endif // DIALOGSPLINE_H
|
|
@ -1,59 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGSPLINEPATH_H
|
||||
#define DIALOGSPLINEPATH_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
#include "geometry/vsplinepath.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogSplinePath;
|
||||
}
|
||||
|
||||
class DialogSplinePath : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogSplinePath(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogSplinePath();
|
||||
inline VSplinePath GetPath() const {return path;}
|
||||
void SetPath(const VSplinePath &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
void PointChenged(int row);
|
||||
void currentPointChanged( int index );
|
||||
void Angle1Changed( int index );
|
||||
void Angle2Changed( int index );
|
||||
void KAsm1Changed(qreal d);
|
||||
void KAsm2Changed(qreal d);
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogSplinePath)
|
||||
Ui::DialogSplinePath *ui;
|
||||
VSplinePath path;
|
||||
void NewItem(qint64 id, qreal kAsm1, qreal angle, qreal kAsm2);
|
||||
void DataPoint(qint64 id, qreal kAsm1, qreal angle1, qreal kAsm2, qreal angle2);
|
||||
void EnableFields();
|
||||
void SetAngle(qint32 angle);
|
||||
};
|
||||
|
||||
#endif // DIALOGSPLINEPATH_H
|
|
@ -1,105 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGTOOL_H
|
||||
#define DIALOGTOOL_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <container/vcontainer.h>
|
||||
|
||||
class DialogTool : public QDialog{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogTool(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
virtual ~DialogTool() {}
|
||||
inline qint64 getIdDetail() const {return idDetail;}
|
||||
inline void setIdDetail(const qint64 &value) {idDetail = value;}
|
||||
signals:
|
||||
void DialogClosed(int result);
|
||||
void ToolTip(const QString &toolTip);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
void NamePointChanged();
|
||||
virtual void DialogAccepted();
|
||||
virtual void DialogRejected();
|
||||
void FormulaChanged();
|
||||
void ArrowUp();
|
||||
void ArrowDown();
|
||||
void ArrowLeft();
|
||||
void ArrowRight();
|
||||
void ArrowLeftUp();
|
||||
void ArrowLeftDown();
|
||||
void ArrowRightUp();
|
||||
void ArrowRightDown();
|
||||
void EvalFormula();
|
||||
void SizeGrowth();
|
||||
void StandartTable();
|
||||
void LengthLines();
|
||||
void LengthArcs();
|
||||
void LengthCurves();
|
||||
void Increments();
|
||||
void PutHere();
|
||||
void PutVal(QListWidgetItem * item);
|
||||
virtual void ValChenged(int row);
|
||||
void UpdateList();
|
||||
protected:
|
||||
Q_DISABLE_COPY(DialogTool)
|
||||
const VContainer *data;
|
||||
bool isInitialized;
|
||||
bool flagName;
|
||||
bool flagFormula;
|
||||
QTimer *timerFormula;
|
||||
QPushButton *bOk;
|
||||
QDoubleSpinBox *spinBoxAngle;
|
||||
QLineEdit *lineEditFormula;
|
||||
QListWidget *listWidget;
|
||||
QLabel *labelResultCalculation;
|
||||
QLabel *labelDescription;
|
||||
QLabel *labelEditNamePoint;
|
||||
QLabel *labelEditFormula;
|
||||
QRadioButton *radioButtonSizeGrowth;
|
||||
QRadioButton *radioButtonStandartTable;
|
||||
QRadioButton *radioButtonIncrements;
|
||||
QRadioButton *radioButtonLengthLine;
|
||||
QRadioButton *radioButtonLengthArc;
|
||||
QRadioButton *radioButtonLengthCurve;
|
||||
qint64 idDetail;
|
||||
Draw::Draws mode;
|
||||
bool CheckObject(const qint64 &id);
|
||||
virtual void closeEvent ( QCloseEvent * event );
|
||||
virtual void showEvent( QShowEvent *event );
|
||||
void FillComboBoxPoints(QComboBox *box, const qint64 &id = 0)const;
|
||||
void FillComboBoxTypeLine(QComboBox *box) const;
|
||||
virtual void CheckState();
|
||||
QString GetTypeLine(const QComboBox *box)const;
|
||||
template <class key, class val> void ShowVariable(const QHash<key, val> *var);
|
||||
void SetupTypeLine(QComboBox *box, const QString &value);
|
||||
void ChangeCurrentText(QComboBox *box, const QString &value);
|
||||
void ChangeCurrentData(QComboBox *box, const qint64 &value) const;
|
||||
void PutValHere(QLineEdit *lineEdit, QListWidget *listWidget);
|
||||
void ValFormulaChanged(bool &flag, QLineEdit *edit, QTimer * timer);
|
||||
void Eval(QLineEdit *edit, bool &flag, QTimer *timer, QLabel *label);
|
||||
void setCurrentPointId(QComboBox *box, qint64 &pointId, const qint64 &value, const qint64 &id) const;
|
||||
qint64 getCurrentPointId(QComboBox *box) const;
|
||||
};
|
||||
|
||||
#endif // DIALOGTOOL_H
|
|
@ -1,106 +0,0 @@
|
|||
#include "dialogtriangle.h"
|
||||
#include "ui_dialogtriangle.h"
|
||||
|
||||
DialogTriangle::DialogTriangle(const VContainer *data, Draw::Draws mode, QWidget *parent) :
|
||||
DialogTool(data, mode, parent), ui(new Ui::DialogTriangle), number(0), pointName(QString()), axisP1Id(0),
|
||||
axisP2Id(0), firstPointId(0), secondPointId(0){
|
||||
ui->setupUi(this);
|
||||
labelEditNamePoint = ui->labelEditNamePoint;
|
||||
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
||||
connect(bOk, &QPushButton::clicked, this, &DialogTriangle::DialogAccepted);
|
||||
flagName = false;
|
||||
CheckState();
|
||||
QPushButton *bCansel = ui->buttonBox->button(QDialogButtonBox::Cancel);
|
||||
connect(bCansel, &QPushButton::clicked, this, &DialogTriangle::DialogRejected);
|
||||
FillComboBoxPoints(ui->comboBoxAxisP1);
|
||||
FillComboBoxPoints(ui->comboBoxAxisP2);
|
||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||
FillComboBoxPoints(ui->comboBoxSecondPoint);
|
||||
connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogTriangle::NamePointChanged);
|
||||
}
|
||||
|
||||
DialogTriangle::~DialogTriangle(){
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DialogTriangle::ChoosedObject(qint64 id, Scene::Scenes type){
|
||||
if(idDetail == 0 && mode == Draw::Modeling){
|
||||
if(type == Scene::Detail){
|
||||
idDetail = id;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(mode == Draw::Modeling){
|
||||
if(!CheckObject(id)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(type == Scene::Point){
|
||||
VPointF point;
|
||||
if(mode == Draw::Calculation){
|
||||
point = data->GetPoint(id);
|
||||
} else {
|
||||
point = data->GetModelingPoint(id);
|
||||
}
|
||||
switch(number){
|
||||
case(0):
|
||||
ChangeCurrentText(ui->comboBoxAxisP1, point.name());
|
||||
number++;
|
||||
emit ToolTip(tr("Select second point of axis"));
|
||||
break;
|
||||
case(1):
|
||||
ChangeCurrentText(ui->comboBoxAxisP2, point.name());
|
||||
number++;
|
||||
emit ToolTip(tr("Select first point"));
|
||||
break;
|
||||
case(2):
|
||||
ChangeCurrentText(ui->comboBoxFirstPoint, point.name());
|
||||
number++;
|
||||
emit ToolTip(tr("Select second point"));
|
||||
break;
|
||||
case(3):
|
||||
ChangeCurrentText(ui->comboBoxSecondPoint, point.name());
|
||||
number = 0;
|
||||
emit ToolTip(tr(""));
|
||||
if(!isInitialized){
|
||||
this->show();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DialogTriangle::DialogAccepted(){
|
||||
pointName = ui->lineEditNamePoint->text();
|
||||
firstPointId = getCurrentPointId(ui->comboBoxFirstPoint);
|
||||
secondPointId = getCurrentPointId(ui->comboBoxSecondPoint);
|
||||
axisP1Id = getCurrentPointId(ui->comboBoxAxisP1);
|
||||
axisP2Id = getCurrentPointId(ui->comboBoxAxisP2);
|
||||
emit DialogClosed(QDialog::Accepted);
|
||||
}
|
||||
|
||||
void DialogTriangle::setPointName(const QString &value){
|
||||
pointName = value;
|
||||
ui->lineEditNamePoint->setText(pointName);
|
||||
}
|
||||
|
||||
void DialogTriangle::setSecondPointId(const qint64 &value, const qint64 &id){
|
||||
secondPointId = value;
|
||||
setCurrentPointId(ui->comboBoxSecondPoint, secondPointId, value, id);
|
||||
}
|
||||
|
||||
void DialogTriangle::setFirstPointId(const qint64 &value, const qint64 &id){
|
||||
firstPointId = value;
|
||||
setCurrentPointId(ui->comboBoxFirstPoint, firstPointId, value, id);
|
||||
}
|
||||
|
||||
void DialogTriangle::setAxisP2Id(const qint64 &value, const qint64 &id){
|
||||
axisP2Id = value;
|
||||
setCurrentPointId(ui->comboBoxAxisP2, axisP2Id, value, id);
|
||||
}
|
||||
|
||||
void DialogTriangle::setAxisP1Id(const qint64 &value, const qint64 &id){
|
||||
axisP1Id = value;
|
||||
setCurrentPointId(ui->comboBoxAxisP1, axisP1Id, value, id);
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 DIALOGTRIANGLE_H
|
||||
#define DIALOGTRIANGLE_H
|
||||
|
||||
#include "dialogtool.h"
|
||||
|
||||
namespace Ui {
|
||||
class DialogTriangle;
|
||||
}
|
||||
|
||||
class DialogTriangle : public DialogTool{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DialogTriangle(const VContainer *data, Draw::Draws mode = Draw::Calculation,
|
||||
QWidget *parent = 0);
|
||||
~DialogTriangle();
|
||||
inline qint64 getAxisP1Id() const {return axisP1Id;}
|
||||
void setAxisP1Id(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getAxisP2Id() const {return axisP2Id;}
|
||||
void setAxisP2Id(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getFirstPointId() const {return firstPointId;}
|
||||
void setFirstPointId(const qint64 &value, const qint64 &id);
|
||||
inline qint64 getSecondPointId() const {return secondPointId;}
|
||||
void setSecondPointId(const qint64 &value, const qint64 &id);
|
||||
inline QString getPointName() const {return pointName;}
|
||||
void setPointName(const QString &value);
|
||||
public slots:
|
||||
virtual void ChoosedObject(qint64 id, Scene::Scenes type);
|
||||
virtual void DialogAccepted();
|
||||
private:
|
||||
Q_DISABLE_COPY(DialogTriangle)
|
||||
Ui::DialogTriangle *ui;
|
||||
qint32 number;
|
||||
QString pointName;
|
||||
qint64 axisP1Id;
|
||||
qint64 axisP2Id;
|
||||
qint64 firstPointId;
|
||||
qint64 secondPointId;
|
||||
};
|
||||
|
||||
#endif // DIALOGTRIANGLE_H
|
5
dist/debian/changelog
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
valentina (0.2+1hg20131126-ppa1-3) saucy; urgency=low
|
||||
|
||||
* Add new dependions qttools5-dev-tools
|
||||
|
||||
-- Roman Telezhinsky <dismine@gmail.com> Tue, 26 Nov 2013 21:28:15 +0200
|
14
dist/debian/control
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
Source: valentina
|
||||
Section: graphics
|
||||
Priority: optional
|
||||
Maintainer: Roman Telezhinsky <dismine@gmail.com>
|
||||
Build-Depends: debhelper (>= 8.0.0), qtbase5-dev (>= 5.0.0), libqt5svg5-dev (>= 5.0.0), ccache (>= 3.1.9), g++ (>= 4.6.0), qt5-default (>= 5.0.0), qttools5-dev-tools (>= 5.0.0)
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: https://bitbucket.org/dismine/valentina
|
||||
|
||||
Package: valentina
|
||||
Architecture: i386
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Pattern making program.
|
||||
Open source project of creating a pattern making program, whose allow
|
||||
create and modeling patterns of clothing.
|
28
dist/debian/copyright
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: valentina
|
||||
Source: https://bitbucket.org/dismine/valentina
|
||||
|
||||
Files: *
|
||||
Copyright: 2013 Roman Telezhinsky <dismine@gmail.com>
|
||||
License: GPL-3.0+
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2013 Roman Telezhinsky <dismine@gmail.com>
|
||||
License: GPL-3.0+
|
||||
|
||||
License: GPL-3.0+
|
||||
This program 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.
|
||||
.
|
||||
This package 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
2
dist/debian/docs
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
README
|
||||
TODO
|
2
dist/debian/menu
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
?package(valentina):needs="X11|text|vc|wm" section="Applications/Graphics"\
|
||||
title="valentina" command="/usr/bin/valentina"
|
43
dist/debian/postinst
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
# postinst script for valentina
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ] ; then
|
||||
update-menus
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
50
dist/debian/rules
vendored
Executable file
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/make -f
|
||||
APPNAME := valentina
|
||||
builddir:
|
||||
mkdir -p builddir
|
||||
|
||||
builddir/Makefile: builddir
|
||||
lrelease src/src.pro
|
||||
cd builddir && qmake PREFIX=/usr ../$(APPNAME).pro -r
|
||||
build: build-stamp
|
||||
build-stamp: builddir/Makefile
|
||||
dh_testdir
|
||||
# Add here commands to compile the package.
|
||||
cd builddir && $(MAKE)
|
||||
touch $@
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp
|
||||
# Add here commands to clean up after the build process.
|
||||
rm -rf builddir
|
||||
dh_clean
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
# Add here commands to install the package into debian/your_appname
|
||||
cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/tmp install
|
||||
# Build architecture-independent files here.
|
||||
binary-indep: build install
|
||||
# We have nothing to do by default.
|
||||
# Build architecture-dependent files here.
|
||||
binary-arch: build install
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installdocs
|
||||
dh_installchangelogs
|
||||
dh_installexamples
|
||||
dh_installman
|
||||
dh_installmenu
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_installdeb
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install configure
|
1
dist/debian/source/format
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
4
dist/debian/source/include-binaries
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
debian/usr/share/pixmaps/valentina.png
|
||||
debian/valentina/usr/bin/valentina
|
||||
debian/valentina/usr/share/valentina/translations/valentina_ru.qm
|
||||
debian/valentina/usr/share/valentina/translations/valentina_uk.qm
|
13
dist/debian/valentina.1
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
.\" Manpage for valentina.
|
||||
.\" Contact dismine@gmail.com.in to correct errors.
|
||||
.TH man 1 "25 Nov 2013" "1.0" "valentina man page"
|
||||
.SH NAME
|
||||
valentina \- Pattern making program.
|
||||
.SH SYNOPSIS
|
||||
valentina
|
||||
.SH DESCRIPTION
|
||||
Open source project of creating a pattern making program, whose allow create and modeling patterns of clothing.
|
||||
.SH OPTIONS
|
||||
The valentina does not take any options.
|
||||
.SH AUTHOR
|
||||
Roman Telezhinsky (dismine@gmail.com)
|
1
dist/debian/valentina.manpages
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
debian/valentina.1
|
10
dist/valentina.desktop
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Valentina
|
||||
GenericName=Pattern making program
|
||||
Comment=Open source project of creating a pattern making program, whose allow create and modeling patterns of clothing
|
||||
Icon=valentina
|
||||
Exec=valentina
|
||||
Categories=Qt;Graphics;
|
||||
Version=0.2
|
||||
Name[uk]=valentina
|
149
dist/valentina.nsi
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
; -------------------------------
|
||||
; Start
|
||||
|
||||
|
||||
!define MUI_PRODUCT "Valentina"
|
||||
!define MUI_FILE "valentina"
|
||||
!define MUI_VERSION "0.2"
|
||||
!define MUI_BRANDINGTEXT "Valentina ${MUI_VERSION}"
|
||||
CRCCheck On
|
||||
|
||||
; Bij deze moeten we waarschijnlijk een absoluut pad gaan gebruiken
|
||||
; dit moet effe uitgetest worden.
|
||||
!include "${NSISDIR}\Contrib\Modern UI\System.nsh"
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
Name "${MUI_BRANDINGTEXT}"
|
||||
Caption "${MUI_BRANDINGTEXT}"
|
||||
SetCompressor bzip2
|
||||
OutFile "${MUI_FILE}-install-v.${MUI_VERSION}.exe"
|
||||
|
||||
; Request application privileges for Windows Vista
|
||||
RequestExecutionLevel user
|
||||
|
||||
ShowInstDetails show
|
||||
ShowUninstDetails show
|
||||
|
||||
!define MUI_ICON "valentina\${MUI_FILE}.ico"
|
||||
!define MUI_UNICON "valentina\${MUI_FILE}.ico"
|
||||
;!define MUI_SPECIALBITMAP "Bitmap.bmp"
|
||||
|
||||
;--------------------------------
|
||||
;Folder selection page
|
||||
|
||||
InstallDir "$PROGRAMFILES\${MUI_PRODUCT}"
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;Modern UI Configuration
|
||||
|
||||
InstallColors 061C79 E5F0E2
|
||||
LicenseBkColor E5F0E2
|
||||
InstProgressFlags smooth colored
|
||||
|
||||
!define MUI_WELCOMEPAGE
|
||||
!define MUI_LICENSEPAGE
|
||||
!define MUI_DIRECTORYPAGE
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_UNINSTALLER
|
||||
!define MUI_UNCONFIRMPAGE
|
||||
!define MUI_FINISHPAGE
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;Page
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "valentina\license"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
;Language
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;Modern UI System
|
||||
|
||||
;!insertmacro MUI_SYSTEM
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;Data
|
||||
|
||||
LicenseData "valentina\LICENSE"
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
Section "Valentina (required)"
|
||||
|
||||
;Add files
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "c:\pack\valentina\*.*"
|
||||
|
||||
;create desktop shortcut
|
||||
CreateShortCut "$DESKTOP\${MUI_PRODUCT}.lnk" "$INSTDIR\${MUI_FILE}.exe" ""
|
||||
|
||||
;create start-menu items
|
||||
CreateDirectory "$SMPROGRAMS\${MUI_PRODUCT}"
|
||||
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
|
||||
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\${MUI_PRODUCT}.lnk" "$INSTDIR\${MUI_FILE}.exe" "" "$INSTDIR\${MUI_FILE}.exe" 0
|
||||
|
||||
;write uninstall information to the registry
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}" "DisplayName" "${MUI_PRODUCT} (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
Section "Uninstall"
|
||||
|
||||
;Delete Files
|
||||
RMDir /r "$INSTDIR\*.*"
|
||||
|
||||
;Remove the installation directory
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
;Delete Start Menu Shortcuts
|
||||
Delete "$DESKTOP\${MUI_PRODUCT}.lnk"
|
||||
Delete "$SMPROGRAMS\${MUI_PRODUCT}\*.*"
|
||||
RmDir "$SMPROGRAMS\${MUI_PRODUCT}"
|
||||
|
||||
;Delete Uninstaller And Unistall Registry Entries
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${MUI_PRODUCT}"
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MUI_PRODUCT}"
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
;--------------------------------
|
||||
;MessageBox Section
|
||||
|
||||
|
||||
;Function that calls a messagebox when installation finished correctly
|
||||
Function .onInstSuccess
|
||||
MessageBox MB_OK "You have successfully installed ${MUI_PRODUCT}. Use the desktop icon to start the program."
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
MessageBox MB_OK "You have successfully uninstalled ${MUI_PRODUCT}."
|
||||
FunctionEnd
|
||||
|
||||
|
||||
;eof
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
@ -1,8 +1,10 @@
|
|||
# Doxyfile 1.8.1.2
|
||||
# Doxyfile 1.8.4
|
||||
|
||||
# This file describes the settings to be used by the documentation system
|
||||
# doxygen (www.doxygen.org) for a project.
|
||||
#
|
||||
# All text after a double hash (##) is considered a comment and is placed
|
||||
# in front of the TAG it is preceding .
|
||||
# All text after a hash (#) is considered a comment and will be ignored.
|
||||
# The format is:
|
||||
# TAG = value [value, ...]
|
||||
|
@ -32,27 +34,27 @@ PROJECT_NAME = "Valentina"
|
|||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER =
|
||||
PROJECT_NUMBER = 0.2
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer
|
||||
# a quick idea about the purpose of the project. Keep the description short.
|
||||
|
||||
PROJECT_BRIEF =
|
||||
PROJECT_BRIEF = "Pattern making program."
|
||||
|
||||
# With the PROJECT_LOGO tag one can specify an logo or icon that is
|
||||
# included in the documentation. The maximum height of the logo should not
|
||||
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
|
||||
# Doxygen will copy the logo to the output directory.
|
||||
|
||||
PROJECT_LOGO =
|
||||
PROJECT_LOGO = doc/doxygen/logo.png
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
# If a relative path is entered, it will be relative to the location
|
||||
# where doxygen was started. If left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_DIRECTORY = doc/
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
|
||||
# 4096 sub-directories (in 2 levels) under the output directory of each output
|
||||
|
@ -61,7 +63,7 @@ OUTPUT_DIRECTORY =
|
|||
# source files, where putting all generated files in the same directory would
|
||||
# otherwise cause performance problems for the file system.
|
||||
|
||||
CREATE_SUBDIRS = NO
|
||||
CREATE_SUBDIRS = YES
|
||||
|
||||
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
|
||||
# documentation generated by doxygen is written. Doxygen will use this
|
||||
|
@ -70,11 +72,11 @@ CREATE_SUBDIRS = NO
|
|||
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
|
||||
# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
|
||||
# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
|
||||
# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
|
||||
# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
|
||||
# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
|
||||
# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,
|
||||
# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,
|
||||
# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
|
||||
|
||||
OUTPUT_LANGUAGE = Ukrainian
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||
# include brief member descriptions after the members that are listed in
|
||||
|
@ -126,7 +128,9 @@ FULL_PATH_NAMES = YES
|
|||
# only done if one of the specified strings matches the left-hand part of
|
||||
# the path. The tag can be used to show relative paths in the file list.
|
||||
# If left blank the directory from which doxygen is run is used as the
|
||||
# path to strip.
|
||||
# path to strip. Note that you specify absolute paths here, but also
|
||||
# relative paths, which will be relative from the directory where doxygen is
|
||||
# started.
|
||||
|
||||
STRIP_FROM_PATH =
|
||||
|
||||
|
@ -229,14 +233,15 @@ OPTIMIZE_FOR_FORTRAN = NO
|
|||
OPTIMIZE_OUTPUT_VHDL = NO
|
||||
|
||||
# Doxygen selects the parser to use depending on the extension of the files it
|
||||
# parses. With this tag you can assign which parser to use for a given extension.
|
||||
# Doxygen has a built-in mapping, but you can override or extend it using this
|
||||
# tag. The format is ext=language, where ext is a file extension, and language
|
||||
# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
|
||||
# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
|
||||
# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
|
||||
# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
|
||||
# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
|
||||
# parses. With this tag you can assign which parser to use for a given
|
||||
# extension. Doxygen has a built-in mapping, but you can override or extend it
|
||||
# using this tag. The format is ext=language, where ext is a file extension,
|
||||
# and language is one of the parsers supported by doxygen: IDL, Java,
|
||||
# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,
|
||||
# C++. For instance to make doxygen treat .inc files as Fortran files (default
|
||||
# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note
|
||||
# that for custom extensions you also need to set FILE_PATTERNS otherwise the
|
||||
# files are not read by doxygen.
|
||||
|
||||
EXTENSION_MAPPING =
|
||||
|
||||
|
@ -249,6 +254,13 @@ EXTENSION_MAPPING =
|
|||
|
||||
MARKDOWN_SUPPORT = YES
|
||||
|
||||
# When enabled doxygen tries to link words that correspond to documented
|
||||
# classes, or namespaces to their corresponding documentation. Such a link can
|
||||
# be prevented in individual cases by by putting a % sign in front of the word
|
||||
# or globally by setting AUTOLINK_SUPPORT to NO.
|
||||
|
||||
AUTOLINK_SUPPORT = YES
|
||||
|
||||
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
|
||||
# to include (a tag file for) the STL sources as input, then you should
|
||||
# set this tag to YES in order to let doxygen match functions declarations and
|
||||
|
@ -269,10 +281,10 @@ CPP_CLI_SUPPORT = NO
|
|||
|
||||
SIP_SUPPORT = NO
|
||||
|
||||
# For Microsoft's IDL there are propget and propput attributes to indicate getter
|
||||
# and setter methods for a property. Setting this option to YES (the default)
|
||||
# will make doxygen replace the get and set methods by a property in the
|
||||
# documentation. This will only work if the methods are indeed getting or
|
||||
# For Microsoft's IDL there are propget and propput attributes to indicate
|
||||
# getter and setter methods for a property. Setting this option to YES (the
|
||||
# default) will make doxygen replace the get and set methods by a property in
|
||||
# the documentation. This will only work if the methods are indeed getting or
|
||||
# setting a simple type. If this is not the case, or you want to show the
|
||||
# methods anyway, you should set this option to NO.
|
||||
|
||||
|
@ -301,11 +313,11 @@ SUBGROUPING = YES
|
|||
INLINE_GROUPED_CLASSES = NO
|
||||
|
||||
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
|
||||
# unions with only public data fields will be shown inline in the documentation
|
||||
# of the scope in which they are defined (i.e. file, namespace, or group
|
||||
# documentation), provided this scope is documented. If set to NO (the default),
|
||||
# structs, classes, and unions are shown on a separate page (for HTML and Man
|
||||
# pages) or section (for LaTeX and RTF).
|
||||
# unions with only public data fields or simple typedef fields will be shown
|
||||
# inline in the documentation of the scope in which they are defined (i.e. file,
|
||||
# namespace, or group documentation), provided this scope is documented. If set
|
||||
# to NO (the default), structs, classes, and unions are shown on a separate
|
||||
# page (for HTML and Man pages) or section (for LaTeX and RTF).
|
||||
|
||||
INLINE_SIMPLE_STRUCTS = NO
|
||||
|
||||
|
@ -319,30 +331,14 @@ INLINE_SIMPLE_STRUCTS = NO
|
|||
|
||||
TYPEDEF_HIDES_STRUCT = NO
|
||||
|
||||
# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
|
||||
# determine which symbols to keep in memory and which to flush to disk.
|
||||
# When the cache is full, less often used symbols will be written to disk.
|
||||
# For small to medium size projects (<1000 input files) the default value is
|
||||
# probably good enough. For larger projects a too small cache size can cause
|
||||
# doxygen to be busy swapping symbols to and from disk most of the time
|
||||
# causing a significant performance penalty.
|
||||
# If the system has enough physical memory increasing the cache will improve the
|
||||
# performance by keeping more symbols in memory. Note that the value works on
|
||||
# a logarithmic scale so increasing the size by one will roughly double the
|
||||
# memory usage. The cache size is given by this formula:
|
||||
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
|
||||
# corresponding to a cache size of 2^16 = 65536 symbols.
|
||||
|
||||
SYMBOL_CACHE_SIZE = 0
|
||||
|
||||
# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
|
||||
# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
|
||||
# their name and scope. Since this can be an expensive process and often the
|
||||
# same symbol appear multiple times in the code, doxygen keeps a cache of
|
||||
# pre-resolved symbols. If the cache is too small doxygen will become slower.
|
||||
# If the cache is too large, memory is wasted. The cache size is given by this
|
||||
# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
|
||||
# corresponding to a cache size of 2^16 = 65536 symbols.
|
||||
# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
|
||||
# cache is used to resolve symbols given their name and scope. Since this can
|
||||
# be an expensive process and often the same symbol appear multiple times in
|
||||
# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too
|
||||
# small doxygen will become slower. If the cache is too large, memory is wasted.
|
||||
# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid
|
||||
# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536
|
||||
# symbols.
|
||||
|
||||
LOOKUP_CACHE_SIZE = 0
|
||||
|
||||
|
@ -353,7 +349,7 @@ LOOKUP_CACHE_SIZE = 0
|
|||
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
|
||||
# documentation are documented, even if no documentation was available.
|
||||
# Private class members and static file members will be hidden unless
|
||||
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
|
||||
# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES
|
||||
|
||||
EXTRACT_ALL = YES
|
||||
|
||||
|
@ -362,14 +358,15 @@ EXTRACT_ALL = YES
|
|||
|
||||
EXTRACT_PRIVATE = YES
|
||||
|
||||
# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.
|
||||
# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
|
||||
# scope will be included in the documentation.
|
||||
|
||||
EXTRACT_PACKAGE = NO
|
||||
|
||||
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_STATIC = YES
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||
# defined locally in source files will be included in the documentation.
|
||||
|
@ -533,7 +530,8 @@ GENERATE_BUGLIST = YES
|
|||
GENERATE_DEPRECATEDLIST= YES
|
||||
|
||||
# The ENABLED_SECTIONS tag can be used to enable conditional
|
||||
# documentation sections, marked by \if sectionname ... \endif.
|
||||
# documentation sections, marked by \if section-label ... \endif
|
||||
# and \cond section-label ... \endcond blocks.
|
||||
|
||||
ENABLED_SECTIONS =
|
||||
|
||||
|
@ -591,7 +589,8 @@ LAYOUT_FILE =
|
|||
# requires the bibtex tool to be installed. See also
|
||||
# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
|
||||
# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
|
||||
# feature you need bibtex and perl available in the search path.
|
||||
# feature you need bibtex and perl available in the search path. Do not use
|
||||
# file names with spaces, bibtex cannot handle them.
|
||||
|
||||
CITE_BIB_FILES =
|
||||
|
||||
|
@ -743,8 +742,10 @@ IMAGE_PATH =
|
|||
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
|
||||
# input file. Doxygen will then use the output that the filter program writes
|
||||
# to standard output.
|
||||
# If FILTER_PATTERNS is specified, this tag will be
|
||||
# ignored.
|
||||
# If FILTER_PATTERNS is specified, this tag will be ignored.
|
||||
# Note that the filter must not add or remove lines; it is applied before the
|
||||
# code is scanned, but not when the output code is generated. If lines are added
|
||||
# or removed, the anchors will not be placed correctly.
|
||||
|
||||
INPUT_FILTER =
|
||||
|
||||
|
@ -773,6 +774,13 @@ FILTER_SOURCE_FILES = NO
|
|||
|
||||
FILTER_SOURCE_PATTERNS =
|
||||
|
||||
# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
|
||||
# is part of the input, its contents will be placed on the main page
|
||||
# (index.html). This can be useful if you have a project on for instance GitHub
|
||||
# and want reuse the introduction page also for the doxygen output.
|
||||
|
||||
USE_MDFILE_AS_MAINPAGE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -894,17 +902,27 @@ HTML_FOOTER =
|
|||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
# fine-tune the look of the HTML output. If the tag is left blank doxygen
|
||||
# will generate a default style sheet. Note that doxygen will try to copy
|
||||
# the style sheet file to the HTML output directory, so don't put your own
|
||||
# style sheet in the HTML output directory as well, or it will be erased!
|
||||
# fine-tune the look of the HTML output. If left blank doxygen will
|
||||
# generate a default style sheet. Note that it is recommended to use
|
||||
# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this
|
||||
# tag will in the future become obsolete.
|
||||
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional
|
||||
# user-defined cascading style sheet that is included after the standard
|
||||
# style sheets created by doxygen. Using this option one can overrule
|
||||
# certain style aspects. This is preferred over using HTML_STYLESHEET
|
||||
# since it does not replace the standard style sheet and is therefor more
|
||||
# robust against future updates. Doxygen will copy the style sheet file to
|
||||
# the output directory.
|
||||
|
||||
HTML_EXTRA_STYLESHEET =
|
||||
|
||||
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
|
||||
# other source files which should be copied to the HTML output directory. Note
|
||||
# that these files will be copied to the base HTML output directory. Use the
|
||||
# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
|
||||
# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
|
||||
# files. In the HTML_STYLESHEET file, use the file name only. Also note that
|
||||
# the files will be copied as-is; there are no commands or markers available.
|
||||
|
||||
|
@ -985,9 +1003,9 @@ DOCSET_FEEDNAME = "Doxygen generated docs"
|
|||
|
||||
DOCSET_BUNDLE_ID = org.doxygen.Project
|
||||
|
||||
# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
|
||||
# the documentation publisher. This should be a reverse domain-name style
|
||||
# string, e.g. com.mycompany.MyDocSet.documentation.
|
||||
# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely
|
||||
# identify the documentation publisher. This should be a reverse domain-name
|
||||
# style string, e.g. com.mycompany.MyDocSet.documentation.
|
||||
|
||||
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
|
||||
|
||||
|
@ -1172,6 +1190,13 @@ FORMULA_TRANSPARENT = YES
|
|||
|
||||
USE_MATHJAX = NO
|
||||
|
||||
# When MathJax is enabled you can set the default output format to be used for
|
||||
# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and
|
||||
# SVG. The default value is HTML-CSS, which is slower, but has the best
|
||||
# compatibility.
|
||||
|
||||
MATHJAX_FORMAT = HTML-CSS
|
||||
|
||||
# When MathJax is enabled you need to specify the location relative to the
|
||||
# HTML output directory using the MATHJAX_RELPATH option. The destination
|
||||
# directory should contain the MathJax.js script. For instance, if the mathjax
|
||||
|
@ -1189,6 +1214,11 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
|
|||
|
||||
MATHJAX_EXTENSIONS =
|
||||
|
||||
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript
|
||||
# pieces of code that will be used on startup of the MathJax code.
|
||||
|
||||
MATHJAX_CODEFILE =
|
||||
|
||||
# When the SEARCHENGINE tag is enabled doxygen will generate a search box
|
||||
# for the HTML output. The underlying search engine uses javascript
|
||||
# and DHTML and should work on any modern browser. Note that when using
|
||||
|
@ -1200,15 +1230,55 @@ MATHJAX_EXTENSIONS =
|
|||
SEARCHENGINE = YES
|
||||
|
||||
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
|
||||
# implemented using a PHP enabled web server instead of at the web client
|
||||
# using Javascript. Doxygen will generate the search PHP script and index
|
||||
# file to put on the web server. The advantage of the server
|
||||
# based approach is that it scales better to large projects and allows
|
||||
# full text search. The disadvantages are that it is more difficult to setup
|
||||
# and does not have live searching capabilities.
|
||||
# implemented using a web server instead of a web client using Javascript.
|
||||
# There are two flavours of web server based search depending on the
|
||||
# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
|
||||
# searching and an index file used by the script. When EXTERNAL_SEARCH is
|
||||
# enabled the indexing and searching needs to be provided by external tools.
|
||||
# See the manual for details.
|
||||
|
||||
SERVER_BASED_SEARCH = NO
|
||||
|
||||
# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP
|
||||
# script for searching. Instead the search results are written to an XML file
|
||||
# which needs to be processed by an external indexer. Doxygen will invoke an
|
||||
# external search engine pointed to by the SEARCHENGINE_URL option to obtain
|
||||
# the search results. Doxygen ships with an example indexer (doxyindexer) and
|
||||
# search engine (doxysearch.cgi) which are based on the open source search
|
||||
# engine library Xapian. See the manual for configuration details.
|
||||
|
||||
EXTERNAL_SEARCH = NO
|
||||
|
||||
# The SEARCHENGINE_URL should point to a search engine hosted by a web server
|
||||
# which will returned the search results when EXTERNAL_SEARCH is enabled.
|
||||
# Doxygen ships with an example search engine (doxysearch) which is based on
|
||||
# the open source search engine library Xapian. See the manual for configuration
|
||||
# details.
|
||||
|
||||
SEARCHENGINE_URL =
|
||||
|
||||
# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
|
||||
# search data is written to a file for indexing by an external tool. With the
|
||||
# SEARCHDATA_FILE tag the name of this file can be specified.
|
||||
|
||||
SEARCHDATA_FILE = searchdata.xml
|
||||
|
||||
# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the
|
||||
# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
|
||||
# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
|
||||
# projects and redirect the results back to the right project.
|
||||
|
||||
EXTERNAL_SEARCH_ID =
|
||||
|
||||
# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
|
||||
# projects other than the one defined by this configuration file, but that are
|
||||
# all added to the same external search index. Each project needs to have a
|
||||
# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id
|
||||
# of to a relative location where the documentation can be found.
|
||||
# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ...
|
||||
|
||||
EXTRA_SEARCH_MAPPINGS =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -1246,7 +1316,7 @@ COMPACT_LATEX = NO
|
|||
|
||||
# The PAPER_TYPE tag can be used to set the paper type that is used
|
||||
# by the printer. Possible values are: a4, letter, legal and
|
||||
# executive. If left blank a4wide will be used.
|
||||
# executive. If left blank a4 will be used.
|
||||
|
||||
PAPER_TYPE = a4
|
||||
|
||||
|
@ -1269,6 +1339,13 @@ LATEX_HEADER =
|
|||
|
||||
LATEX_FOOTER =
|
||||
|
||||
# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images
|
||||
# or other source files which should be copied to the LaTeX output directory.
|
||||
# Note that the files will be copied as-is; there are no commands or markers
|
||||
# available.
|
||||
|
||||
LATEX_EXTRA_FILES =
|
||||
|
||||
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
|
||||
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
|
||||
# contain links (just like the HTML output) instead of page references
|
||||
|
@ -1413,6 +1490,21 @@ XML_DTD =
|
|||
|
||||
XML_PROGRAMLISTING = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the DOCBOOK output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files
|
||||
# that can be used to generate PDF.
|
||||
|
||||
GENERATE_DOCBOOK = NO
|
||||
|
||||
# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
|
||||
# front of it. If left blank docbook will be used as the default path.
|
||||
|
||||
DOCBOOK_OUTPUT = docbook
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -1562,6 +1654,12 @@ ALLEXTERNALS = NO
|
|||
|
||||
EXTERNAL_GROUPS = YES
|
||||
|
||||
# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed
|
||||
# in the related pages index. If set to NO, only the current project's
|
||||
# pages will be listed.
|
||||
|
||||
EXTERNAL_PAGES = YES
|
||||
|
||||
# The PERL_PATH should be the absolute path and name of the perl script
|
||||
# interpreter (i.e. the result of `which perl').
|
||||
|
||||
|
@ -1658,7 +1756,7 @@ UML_LOOK = YES
|
|||
# the class node. If there are many fields or methods and many nodes the
|
||||
# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
|
||||
# threshold limits the number of items for each type to make the size more
|
||||
# managable. Set this to 0 for no limit. Note that the threshold may be
|
||||
# manageable. Set this to 0 for no limit. Note that the threshold may be
|
||||
# exceeded by 50% before the limit is enforced.
|
||||
|
||||
UML_LIMIT_NUM_FIELDS = 10
|
BIN
doc/doxygen/logo.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
|
@ -1,42 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTION_H
|
||||
#define VEXCEPTION_H
|
||||
|
||||
#include <QException>
|
||||
|
||||
class VException : public QException{
|
||||
public:
|
||||
VException(const QString &what);
|
||||
VException(const VException &e):what(e.What()){}
|
||||
virtual ~VException() noexcept(true){}
|
||||
inline void raise() const { throw *this; }
|
||||
inline VException *clone() const { return new VException(*this); }
|
||||
virtual QString ErrorMessage() const;
|
||||
virtual QString DetailedInformation() const { return QString(); }
|
||||
inline QString What() const {return what;}
|
||||
protected:
|
||||
QString what;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTION_H
|
|
@ -1,42 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTIONBADID_H
|
||||
#define VEXCEPTIONBADID_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionBadId : public VException{
|
||||
public:
|
||||
VExceptionBadId(const QString &what, const qint64 &id):VException(what), id(id),
|
||||
key(QString()){}
|
||||
VExceptionBadId(const QString &what, const QString &key):VException(what), id(0), key(key){}
|
||||
VExceptionBadId(const VExceptionBadId &e):VException(e), id(e.BadId()), key(e.BadKey()){}
|
||||
virtual ~VExceptionBadId() noexcept(true){}
|
||||
virtual QString ErrorMessage() const;
|
||||
inline qint64 BadId() const {return id; }
|
||||
inline QString BadKey() const {return key; }
|
||||
protected:
|
||||
qint64 id;
|
||||
QString key;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONBADID_H
|
|
@ -1,38 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTIONCONVERSIONERROR_H
|
||||
#define VEXCEPTIONCONVERSIONERROR_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionConversionError : public VException{
|
||||
public:
|
||||
VExceptionConversionError(const QString &what, const QString &str);
|
||||
VExceptionConversionError(const VExceptionConversionError &e):VException(e), str(e.String()){}
|
||||
virtual ~VExceptionConversionError() noexcept(true) {}
|
||||
virtual QString ErrorMessage() const;
|
||||
inline QString String() const {return str;}
|
||||
protected:
|
||||
QString str;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONCONVERSIONERROR_H
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTIONEMPTYPARAMETER_H
|
||||
#define VEXCEPTIONEMPTYPARAMETER_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionEmptyParameter : public VException{
|
||||
public:
|
||||
VExceptionEmptyParameter(const QString &what, const QString &name,
|
||||
const QDomElement &domElement);
|
||||
VExceptionEmptyParameter(const VExceptionEmptyParameter &e):VException(e), name(e.Name()),
|
||||
tagText(e.TagText()), tagName(e.TagName()), lineNumber(e.LineNumber()){}
|
||||
virtual ~VExceptionEmptyParameter() noexcept(true) {}
|
||||
virtual QString ErrorMessage() const;
|
||||
virtual QString DetailedInformation() const;
|
||||
inline QString Name() const {return name;}
|
||||
inline QString TagText() const {return tagText;}
|
||||
inline QString TagName() const {return tagName;}
|
||||
inline qint32 LineNumber() const {return lineNumber;}
|
||||
protected:
|
||||
QString name;
|
||||
QString tagText;
|
||||
QString tagName;
|
||||
qint32 lineNumber;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONEMPTYPARAMETER_H
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTIONOBJECTERROR_H
|
||||
#define VEXCEPTIONOBJECTERROR_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionObjectError : public VException{
|
||||
public:
|
||||
VExceptionObjectError(const QString &what, const QDomElement &domElement);
|
||||
VExceptionObjectError(const VExceptionObjectError &e):VException(e), tagText(e.TagText()),
|
||||
tagName(e.TagName()), lineNumber(e.LineNumber()), moreInfo(e.MoreInformation()){}
|
||||
virtual ~VExceptionObjectError() noexcept(true) {}
|
||||
virtual QString ErrorMessage() const;
|
||||
virtual QString DetailedInformation() const;
|
||||
inline QString TagText() const {return tagText;}
|
||||
inline QString TagName() const {return tagName;}
|
||||
inline qint32 LineNumber() const {return lineNumber;}
|
||||
void AddMoreInformation(const QString &info);
|
||||
inline QString MoreInformation() const {return moreInfo;}
|
||||
protected:
|
||||
QString tagText;
|
||||
QString tagName;
|
||||
qint32 lineNumber;
|
||||
QString moreInfo;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONOBJECTERROR_H
|
|
@ -1,20 +0,0 @@
|
|||
#include "vexceptionuniqueid.h"
|
||||
|
||||
VExceptionUniqueId::VExceptionUniqueId(const QString &what, const QDomElement &domElement)
|
||||
:VException(what), tagText(QString()), tagName(QString()), lineNumber(-1){
|
||||
Q_ASSERT_X(!domElement.isNull(), Q_FUNC_INFO, "domElement is null");
|
||||
QTextStream stream(&tagText);
|
||||
domElement.save(stream, 4);
|
||||
tagName = domElement.tagName();
|
||||
lineNumber = domElement.lineNumber();
|
||||
}
|
||||
|
||||
QString VExceptionUniqueId::ErrorMessage() const{
|
||||
QString error = QString("ExceptionUniqueId: %1").arg(what);
|
||||
return error;
|
||||
}
|
||||
|
||||
QString VExceptionUniqueId::DetailedInformation() const{
|
||||
QString detail = QString("tag: %1 in line %2\nFull tag:\n%3").arg(tagName).arg(lineNumber).arg(tagText);
|
||||
return detail;
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
#ifndef VEXCEPTIONUNIQUEID_H
|
||||
#define VEXCEPTIONUNIQUEID_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionUniqueId : public VException{
|
||||
public:
|
||||
VExceptionUniqueId(const QString &what, const QDomElement &domElement);
|
||||
VExceptionUniqueId(const VExceptionUniqueId &e):VException(e), tagText(e.TagText()),
|
||||
tagName(e.TagName()), lineNumber(e.LineNumber()){}
|
||||
virtual ~VExceptionUniqueId() noexcept(true){}
|
||||
virtual QString ErrorMessage() const;
|
||||
virtual QString DetailedInformation() const;
|
||||
inline QString TagText() const {return tagText;}
|
||||
inline QString TagName() const {return tagName;}
|
||||
inline qint32 LineNumber() const {return lineNumber;}
|
||||
protected:
|
||||
QString tagText;
|
||||
QString tagName;
|
||||
qint32 lineNumber;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONUNIQUEID_H
|
|
@ -1,44 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VEXCEPTIONWRONGPARAMETERID_H
|
||||
#define VEXCEPTIONWRONGPARAMETERID_H
|
||||
|
||||
#include "vexception.h"
|
||||
|
||||
class VExceptionWrongParameterId : public VException{
|
||||
public:
|
||||
VExceptionWrongParameterId(const QString &what, const QDomElement &domElement);
|
||||
VExceptionWrongParameterId(const VExceptionWrongParameterId &e):VException(e),tagText(e.TagText()),
|
||||
tagName(e.TagName()), lineNumber(e.LineNumber()){}
|
||||
virtual ~VExceptionWrongParameterId() noexcept(true){}
|
||||
virtual QString ErrorMessage() const;
|
||||
virtual QString DetailedInformation() const;
|
||||
inline QString TagText() const {return tagText;}
|
||||
inline QString TagName() const {return tagName;}
|
||||
inline qint32 LineNumber() const {return lineNumber;}
|
||||
protected:
|
||||
QString tagText;
|
||||
QString tagName;
|
||||
qint32 lineNumber;
|
||||
};
|
||||
|
||||
#endif // VEXCEPTIONWRONGPARAMETERID_H
|
|
@ -1,93 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 VSPLINEPATH_H
|
||||
#define VSPLINEPATH_H
|
||||
|
||||
#include "vsplinepoint.h"
|
||||
#include <container/vpointf.h>
|
||||
#include "vspline.h"
|
||||
#include <QApplication>
|
||||
|
||||
namespace SplinePoint{
|
||||
enum Position { FirstPoint, LastPoint };
|
||||
Q_DECLARE_FLAGS(Positions, Position)
|
||||
}
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS( SplinePoint::Positions )
|
||||
|
||||
/**
|
||||
* @brief The VSplinePath клас, що розраховує шлях сплайнів.
|
||||
*/
|
||||
class VSplinePath{
|
||||
Q_DECLARE_TR_FUNCTIONS(VSplinePath)
|
||||
public:
|
||||
/**
|
||||
* @brief VSplinePath конструктор по замовчуванню.
|
||||
*/
|
||||
VSplinePath();
|
||||
/**
|
||||
* @brief VSplinePath конструктор по замовчуванню.
|
||||
*/
|
||||
VSplinePath(const QHash<qint64, VPointF> *points, qreal kCurve = 1,
|
||||
Draw::Draws mode = Draw::Calculation, qint64 idObject = 0);
|
||||
VSplinePath(const VSplinePath& splPath);
|
||||
/**
|
||||
* @brief append додає точку сплайну до шляху.
|
||||
* @param point точка.
|
||||
*/
|
||||
void append(VSplinePoint point);
|
||||
qint32 Count() const;
|
||||
inline qint32 CountPoint() const {return path.size();}
|
||||
VSpline GetSpline(qint32 index) const;
|
||||
QPainterPath GetPath() const;
|
||||
QVector<QPointF> GetPathPoints() const;
|
||||
inline QVector<VSplinePoint> GetSplinePath() const {return path;}
|
||||
qreal GetLength() const;
|
||||
inline QHash<qint64, VPointF> GetDataPoints() const {return points;}
|
||||
void UpdatePoint(qint32 indexSpline, SplinePoint::Position pos, VSplinePoint point);
|
||||
VSplinePoint GetSplinePoint(qint32 indexSpline, SplinePoint::Position pos) const;
|
||||
/**
|
||||
* @brief Clear очищає шлях сплайнів.
|
||||
*/
|
||||
inline void Clear() {path.clear();}
|
||||
inline qreal getKCurve() const {return kCurve;}
|
||||
inline void setKCurve(const qreal &value) {kCurve = value;}
|
||||
inline const QVector<VSplinePoint> *GetPoint() const {return &path;}
|
||||
VSplinePath &operator=(const VSplinePath &path);
|
||||
VSplinePoint &operator[](int indx);
|
||||
inline Draw::Draws getMode() const {return mode;}
|
||||
inline void setMode(const Draw::Draws &value) {mode = value;}
|
||||
|
||||
inline qint64 getIdObject() const {return idObject;}
|
||||
inline void setIdObject(const qint64 &value) {idObject = value;}
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief path вектор з точок сплайна.
|
||||
*/
|
||||
QVector<VSplinePoint> path;
|
||||
qreal kCurve;
|
||||
Draw::Draws mode;
|
||||
QHash<qint64, VPointF> points;
|
||||
qint64 idObject;
|
||||
};
|
||||
|
||||
#endif // VSPLINEPATH_H
|
77
options.h
|
@ -1,77 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Valentina project All Rights Reserved.
|
||||
**
|
||||
** This file is part of Valentina.
|
||||
**
|
||||
** Tox 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 OPTIONS_H
|
||||
#define OPTIONS_H
|
||||
|
||||
#include <QFlags>
|
||||
|
||||
#define PrintDPI 96
|
||||
#define PaperSize 50000
|
||||
#define toPixel(mm) ((mm / 25.4) * PrintDPI)
|
||||
#define toMM(pix) ((pix / PrintDPI) * 25.4)
|
||||
#define widthMainLine toPixel(1.2)
|
||||
#define widthHairLine widthMainLine/3
|
||||
|
||||
namespace Scene{
|
||||
enum Scene { Point, Line, Spline, Arc, SplinePath, Detail };
|
||||
Q_DECLARE_FLAGS(Scenes, Scene)
|
||||
}
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Scene::Scenes )
|
||||
|
||||
namespace Tool{
|
||||
enum Tool {ArrowTool,
|
||||
SinglePointTool,
|
||||
EndLineTool,
|
||||
LineTool,
|
||||
AlongLineTool,
|
||||
ShoulderPointTool,
|
||||
NormalTool,
|
||||
BisectorTool,
|
||||
LineIntersectTool,
|
||||
SplineTool,
|
||||
ArcTool,
|
||||
SplinePathTool,
|
||||
PointOfContact,
|
||||
Detail,
|
||||
NodePoint,
|
||||
NodeArc,
|
||||
NodeSpline,
|
||||
NodeSplinePath,
|
||||
Height,
|
||||
Triangle,
|
||||
PointOfIntersection
|
||||
};
|
||||
Q_DECLARE_FLAGS(Tools, Tool)
|
||||
|
||||
enum Source { FromGui, FromFile };
|
||||
Q_DECLARE_FLAGS(Sources, Source)
|
||||
}
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Tool::Tools )
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Tool::Sources )
|
||||
|
||||
namespace Draw {
|
||||
enum Draw { Calculation, Modeling };
|
||||
Q_DECLARE_FLAGS(Draws, Draw)
|
||||
}
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(Draw::Draws)
|
||||
|
||||
#endif // OPTIONS_H
|
5
scripts/makedoc.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
# Script generate developer documentation for progect.
|
||||
# Output directory doc/
|
||||
# Run from root directory of project
|
||||
doxygen doc/doxygen/Doxyfile
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 649 B After Width: | Height: | Size: 649 B |
Before Width: | Height: | Size: 893 B After Width: | Height: | Size: 893 B |
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 808 B |
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 736 B |
Before Width: | Height: | Size: 925 B After Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 864 B After Width: | Height: | Size: 864 B |
Before Width: | Height: | Size: 655 B After Width: | Height: | Size: 655 B |
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 689 B |
Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 441 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 857 B After Width: | Height: | Size: 857 B |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |