diff --git a/dist/Puzzle.icns b/dist/Puzzle.icns
new file mode 100644
index 000000000..a8c2190d6
Binary files /dev/null and b/dist/Puzzle.icns differ
diff --git a/dist/macx/puzzle/Info.plist b/dist/macx/puzzle/Info.plist
new file mode 100755
index 000000000..5eaa2370b
--- /dev/null
+++ b/dist/macx/puzzle/Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ NSPrincipalClass
+ NSApplication
+ CFBundleIconFile
+ @ICON@
+ CFBundlePackageType
+ APPL
+ LSMinimumSystemVersion
+ 10.6
+ NSHumanReadableCopyright
+ © 2013-2020, Valentina project
+ CFBundleSignature
+ @TYPEINFO@
+ CFBundleExecutable
+ @EXECUTABLE@
+ CFBundleIdentifier
+ io.bitbucket.valentinaproject.@EXECUTABLE@
+ CFBundleShortVersionString
+ 0.7.0
+ CFBundleVersion
+ 0.7.0.0
+ CFBundleInfoDictionaryVersion
+ 6.0
+ NSRequiresAquaSystemAppearance
+
+
+
diff --git a/src/app/app.pro b/src/app/app.pro
index 4a4eb35c8..6a02b9428 100644
--- a/src/app/app.pro
+++ b/src/app/app.pro
@@ -1,8 +1,10 @@
TEMPLATE = subdirs
SUBDIRS = \
tape \
- valentina
+ valentina \
+ puzzle
-macx{# For making app bundle tape must exist before valentina.app will be created
+macx{# For making app bundle tape and puzzle must exist before valentina.app will be created
valentina.depends = tape
+ valentina.depends = puzzle
}
diff --git a/src/app/puzzle/main.cpp b/src/app/puzzle/main.cpp
new file mode 100644
index 000000000..f214dd3a0
--- /dev/null
+++ b/src/app/puzzle/main.cpp
@@ -0,0 +1,38 @@
+/************************************************************************
+ **
+ ** @file main.cpp
+ ** @author Roman Telezhynskyi
+ ** @date 16 2, 2020
+ **
+ ** @brief
+ ** @copyright
+ ** This source code is part of the Valentina project, a pattern making
+ ** program, whose allow create and modeling patterns of clothing.
+ ** Copyright (C) 2020 Valentina project
+ ** All Rights Reserved.
+ **
+ ** Valentina is free software: you can redistribute it and/or modify
+ ** it under the terms of the GNU General Public License as published by
+ ** the Free Software Foundation, either version 3 of the License, or
+ ** (at your option) any later version.
+ **
+ ** Valentina is distributed in the hope that it will be useful,
+ ** but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ** GNU General Public License for more details.
+ **
+ ** You should have received a copy of the GNU General Public License
+ ** along with Valentina. If not, see .
+ **
+ *************************************************************************/
+#include "puzzlemainwindow.h"
+#include
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ PuzzleMainWindow w;
+ w.show();
+
+ return a.exec();
+}
diff --git a/src/app/puzzle/puzzle.pri b/src/app/puzzle/puzzle.pri
new file mode 100644
index 000000000..863a4d1a2
--- /dev/null
+++ b/src/app/puzzle/puzzle.pri
@@ -0,0 +1,15 @@
+# ADD TO EACH PATH $$PWD VARIABLE!!!!!!
+# This need for corect working file translations.pro
+
+SOURCES += \
+ $$PWD/main.cpp \
+ $$PWD/puzzlemainwindow.cpp
+
+*msvc*:SOURCES += $$PWD/stable.cpp
+
+HEADERS += \
+ $$PWD/puzzlemainwindow.h \
+ $$PWD/stable.h
+
+FORMS += \
+ $$PWD/puzzlemainwindow.ui
diff --git a/src/app/puzzle/puzzle.pro b/src/app/puzzle/puzzle.pro
new file mode 100644
index 000000000..b0255b2c2
--- /dev/null
+++ b/src/app/puzzle/puzzle.pro
@@ -0,0 +1,335 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2020-02-16T17:16:07
+#
+#-------------------------------------------------
+
+# File with common stuff for whole project
+include(../../../common.pri)
+
+QT += core gui widgets
+
+# Name of binary file
+TARGET = puzzle
+
+# We want create executable file
+TEMPLATE = app
+
+# Use out-of-source builds (shadow builds)
+CONFIG -= debug_and_release debug_and_release_target
+
+# Since Q5.12 available support for C++17
+equals(QT_MAJOR_VERSION, 5):greaterThan(QT_MINOR_VERSION, 11) {
+ CONFIG += c++17
+} else {
+ CONFIG += c++14
+}
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which has been marked as deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+# You can also make your code fail to compile if you use deprecated APIs.
+# In order to do so, uncomment the following line.
+# You can also select to disable deprecated APIs only up to a certain version of Qt.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+# Since Qt 5.4.0 the source code location is recorded only in debug builds.
+# We need this information also in release builds. For this need define QT_MESSAGELOGCONTEXT.
+DEFINES += QT_MESSAGELOGCONTEXT
+
+# Directory for executable file
+DESTDIR = bin
+
+# Directory for files created moc
+MOC_DIR = moc
+
+# Directory for objecs files
+OBJECTS_DIR = obj
+
+# Directory for files created rcc
+RCC_DIR = rcc
+
+# Directory for files created uic
+UI_DIR = uic
+
+
+# Suport subdirectories. Just better project code tree.
+include(puzzle.pri)
+
+RESOURCES += \
+ share/resources/puzzleicon.qrc
+
+include(../translations.pri)
+
+# Set "make install" command for Unix-like systems.
+unix{
+ # Prefix for binary file.
+ isEmpty(PREFIX){
+ PREFIX = $$DEFAULT_PREFIX
+ }
+
+ unix:!macx{
+ DATADIR =$$PREFIX/share
+ DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
+
+ # Path to bin file after installation
+ target.path = $$PREFIX/bin
+
+ INSTALLS += \
+ target
+ }
+ macx{
+ # Some macx stuff
+ QMAKE_MAC_SDK = macosx
+
+ # QMAKE_MACOSX_DEPLOYMENT_TARGET defined in common.pri
+
+ CONFIG(release, debug|release){
+ QMAKE_RPATHDIR += @executable_path/../Frameworks
+
+ # Path to resources in app bundle
+ #RESOURCES_DIR = "Contents/Resources" defined in translation.pri
+ FRAMEWORKS_DIR = "Contents/Frameworks"
+ MACOS_DIR = "Contents/MacOS"
+ # On macx we will use app bundle. Bundle doesn't need bin directory inside.
+ # See issue #166: Creating OSX Homebrew (Mac OS X package manager) formula.
+ target.path = $$MACOS_DIR
+
+ #languages added inside translations.pri
+
+ # Symlinks also good names for copying. Make will take origin file and copy them with using symlink name.
+ # For bundle this names more then enough. We don't need care much about libraries versions.
+ #libraries.path = $$FRAMEWORKS_DIR
+ #libraries.files += $${OUT_PWD}/../../libs/qmuparser/$${DESTDIR}/libqmuparser.2.dylib
+ #libraries.files += $${OUT_PWD}/../../libs/vpropertyexplorer/$${DESTDIR}/libvpropertyexplorer.1.dylib
+
+ # logo on macx.
+ ICON = $$PWD/../../../dist/Puzzle.icns
+
+ QMAKE_INFO_PLIST = $$PWD/../../../dist/macx/puzzle/Info.plist
+
+ format.path = $$RESOURCES_DIR/
+ format.files += $$PWD/../../../dist/macx/i-measurements.icns
+ format.files += $$PWD/../../../dist/macx/s-measurements.icns
+
+ QMAKE_BUNDLE_DATA += \
+ #libraries \
+ format
+ }
+ }
+}
+
+#win32 {
+# for(DIR, INSTALL_OPENSSL) {
+# #add these absolute paths to a variable which
+# #ends up as 'mkcommands = path1 path2 path3 ...'
+# openssl_path += $${PWD}/$$DIR
+# }
+# copyToDestdir($$openssl_path, $$shell_path($${OUT_PWD}/$$DESTDIR))
+#}
+
+# Compilation will fail without this files after we added them to this section.
+OTHER_FILES += \
+ share/resources/puzzleicon/64x64/logo.ico # Puzzle's logo.
+
+# Set using ccache. Function enable_ccache() defined in common.pri.
+$$enable_ccache()
+
+include(warnings.pri)
+
+CONFIG(release, debug|release){
+ # Release mode
+ !*msvc*:CONFIG += silent
+ DEFINES += V_NO_ASSERT
+ !unix:*g++*{
+ QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll
+ }
+
+ noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
+ DEFINES += V_NO_DEBUG
+ } else {
+ # Turn on debug symbols in release mode on Unix systems.
+ # On Mac OS X temporarily disabled. Need find way how to strip binary file.
+ !macx:!*msvc*{
+ QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
+ QMAKE_CFLAGS_RELEASE += -g -gdwarf-3
+ QMAKE_LFLAGS_RELEASE =
+ }
+ }
+} else {
+# Breakpoints do not work if debug the app inside of bundle. In debug mode we turn off creating a bundle.
+# Probably it will breake some dependencies. Version for Mac designed to work inside an app bundle.
+ CONFIG -= app_bundle
+}
+
+DVCS_HESH=$$FindBuildRevision()
+message("Build revision:" $${DVCS_HESH})
+DEFINES += "BUILD_REVISION=$${DVCS_HESH}" # Make available build revision number in sources.
+
+# Path to recource file.
+win32:RC_FILE = share/resources/puzzle.rc
+
+noRunPath{ # For enable run qmake with CONFIG+=noRunPath
+ # do nothing
+} else {
+ unix:!macx{
+ # suppress the default RPATH
+ # helps to run the program without Qt Creator
+ # see problem with path to libqmuparser and libpropertybrowser
+ QMAKE_LFLAGS_RPATH =
+ QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\' -Wl,-rpath,$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -Wl,-rpath,$${OUT_PWD}/../../libs/vpropertyexplorer/$${DESTDIR}"
+ }
+}
+
+# When the GNU linker sees a library, it discards all symbols that it doesn't need.
+# Dependent library go first.
+
+#VTools static library (depend on VWidgets, VMisc, VPatternDB)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vtools/$${DESTDIR}/ -lvtools
+
+#INCLUDEPATH += $$PWD/../../libs/vtools
+#INCLUDEPATH += $$OUT_PWD/../../libs/vtools/$${UI_DIR} # For UI files
+#DEPENDPATH += $$PWD/../../libs/vtools
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vtools/$${DESTDIR}/vtools.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vtools/$${DESTDIR}/libvtools.a
+
+##VWidgets static library
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vwidgets/$${DESTDIR}/ -lvwidgets
+
+#INCLUDEPATH += $$PWD/../../libs/vwidgets
+#DEPENDPATH += $$PWD/../../libs/vwidgets
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vwidgets/$${DESTDIR}/vwidgets.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vwidgets/$${DESTDIR}/libvwidgets.a
+
+## VFormat static library (depend on VPatternDB, IFC)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vformat/$${DESTDIR}/ -lvformat
+
+#INCLUDEPATH += $$PWD/../../libs/vformat
+#DEPENDPATH += $$PWD/../../libs/vformat
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/vformat.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vformat/$${DESTDIR}/libvformat.a
+
+##VPatternDB static library (depend on vgeometry, vmisc, VLayout)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vpatterndb/$${DESTDIR} -lvpatterndb
+
+#INCLUDEPATH += $$PWD/../../libs/vpatterndb
+#DEPENDPATH += $$PWD/../../libs/vpatterndb
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a
+
+## Fervor static library (depend on VMisc, IFC)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/fervor/$${DESTDIR}/ -lfervor
+
+#INCLUDEPATH += $$PWD/../../libs/fervor
+#DEPENDPATH += $$PWD/../../libs/fervor
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/fervor/$${DESTDIR}/fervor.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/fervor/$${DESTDIR}/libfervor.a
+
+## IFC static library (depend on QMuParser, VMisc)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/ifc/$${DESTDIR}/ -lifc
+
+#INCLUDEPATH += $$PWD/../../libs/ifc
+#DEPENDPATH += $$PWD/../../libs/ifc
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a
+
+##VMisc static library
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR}/ -lvmisc
+
+#INCLUDEPATH += $$PWD/../../libs/vmisc
+#DEPENDPATH += $$PWD/../../libs/vmisc
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a
+
+## VLayout static library (depend on VGeometry)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vlayout/$${DESTDIR}/ -lvlayout
+
+#INCLUDEPATH += $$PWD/../../libs/vlayout
+#DEPENDPATH += $$PWD/../../libs/vlayout
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/vlayout.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vlayout/$${DESTDIR}/libvlayout.a
+
+## VGeometry static library (depend on ifc)
+#unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry
+
+#INCLUDEPATH += $$PWD/../../libs/vgeometry
+#DEPENDPATH += $$PWD/../../libs/vgeometry
+
+#win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib
+#else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a
+
+## QMuParser library
+#win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2
+#else:unix: LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser
+
+#INCLUDEPATH += $${PWD}/../../libs/qmuparser
+#DEPENDPATH += $${PWD}/../../libs/qmuparser
+
+## VPropertyExplorer library
+#win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
+#else:unix: LIBS += -L$${OUT_PWD}/../../libs/vpropertyexplorer/$${DESTDIR} -lvpropertyexplorer
+
+#INCLUDEPATH += $${PWD}/../../libs/vpropertyexplorer
+#DEPENDPATH += $${PWD}/../../libs/vpropertyexplorer
+
+contains(DEFINES, APPIMAGE) {
+ unix:!macx: LIBS += -licudata -licui18n -licuuc
+}
+
+CONFIG(release, debug|release){
+ noStripDebugSymbols {
+ # do nothing
+ } else {
+ !macx:!*msvc*{
+ noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
+ win32:!*msvc*{
+ # Strip debug symbols.
+ QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET}
+ }
+
+ unix:!macx{
+ # Strip after you link all libaries.
+ QMAKE_POST_LINK += objcopy --strip-debug ${TARGET}
+ }
+ } else {
+ win32:!*msvc*{
+ # Strip debug symbols.
+ QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg &&
+ QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} &&
+ QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET}
+
+ QMAKE_DISTCLEAN += bin/${TARGET}.dbg
+ }
+
+ unix:!macx{
+ # Strip debug symbols.
+ QMAKE_POST_LINK += objcopy --only-keep-debug ${TARGET} ${TARGET}.dbg &&
+ QMAKE_POST_LINK += objcopy --strip-debug ${TARGET} &&
+ QMAKE_POST_LINK += objcopy --add-gnu-debuglink="${TARGET}.dbg" ${TARGET}
+
+ QMAKE_DISTCLEAN += ${TARGET}.dbg
+ }
+ }
+ }
+ }
+}
+
+CONFIG(release, debug|release){
+ macx{
+ # run macdeployqt to include all qt libraries in packet
+ QMAKE_POST_LINK += $$[QT_INSTALL_BINS]/macdeployqt $${OUT_PWD}/$${DESTDIR}/$${TARGET}.app
+ }
+}
diff --git a/src/app/puzzle/puzzlemainwindow.cpp b/src/app/puzzle/puzzlemainwindow.cpp
new file mode 100644
index 000000000..2c0321e4c
--- /dev/null
+++ b/src/app/puzzle/puzzlemainwindow.cpp
@@ -0,0 +1,41 @@
+/************************************************************************
+ **
+ ** @file puzzlemainwindow.cpp
+ ** @author Roman Telezhynskyi
+ ** @date 16 2, 2020
+ **
+ ** @brief
+ ** @copyright
+ ** This source code is part of the Valentina project, a pattern making
+ ** program, whose allow create and modeling patterns of clothing.
+ ** Copyright (C) 2020 Valentina project
+ ** All Rights Reserved.
+ **
+ ** Valentina is free software: you can redistribute it and/or modify
+ ** it under the terms of the GNU General Public License as published by
+ ** the Free Software Foundation, either version 3 of the License, or
+ ** (at your option) any later version.
+ **
+ ** Valentina is distributed in the hope that it will be useful,
+ ** but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ** GNU General Public License for more details.
+ **
+ ** You should have received a copy of the GNU General Public License
+ ** along with Valentina. If not, see .
+ **
+ *************************************************************************/
+#include "puzzlemainwindow.h"
+#include "ui_puzzlemainwindow.h"
+
+PuzzleMainWindow::PuzzleMainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::PuzzleMainWindow)
+{
+ ui->setupUi(this);
+}
+
+PuzzleMainWindow::~PuzzleMainWindow()
+{
+ delete ui;
+}
diff --git a/src/app/puzzle/puzzlemainwindow.h b/src/app/puzzle/puzzlemainwindow.h
new file mode 100644
index 000000000..bf1943946
--- /dev/null
+++ b/src/app/puzzle/puzzlemainwindow.h
@@ -0,0 +1,50 @@
+/************************************************************************
+ **
+ ** @file puzzlemainwindow.h
+ ** @author Roman Telezhynskyi
+ ** @date 16 2, 2020
+ **
+ ** @brief
+ ** @copyright
+ ** This source code is part of the Valentina project, a pattern making
+ ** program, whose allow create and modeling patterns of clothing.
+ ** Copyright (C) 2020 Valentina project
+ ** All Rights Reserved.
+ **
+ ** Valentina is free software: you can redistribute it and/or modify
+ ** it under the terms of the GNU General Public License as published by
+ ** the Free Software Foundation, either version 3 of the License, or
+ ** (at your option) any later version.
+ **
+ ** Valentina is distributed in the hope that it will be useful,
+ ** but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ** GNU General Public License for more details.
+ **
+ ** You should have received a copy of the GNU General Public License
+ ** along with Valentina. If not, see .
+ **
+ *************************************************************************/
+#ifndef PUZZLEMAINWINDOW_H
+#define PUZZLEMAINWINDOW_H
+
+#include
+
+namespace Ui {
+class PuzzleMainWindow;
+}
+
+class PuzzleMainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit PuzzleMainWindow(QWidget *parent = nullptr);
+ virtual ~PuzzleMainWindow();
+
+private:
+ Q_DISABLE_COPY(PuzzleMainWindow)
+ Ui::PuzzleMainWindow *ui;
+};
+
+#endif // PUZZLEMAINWINDOW_H
diff --git a/src/app/puzzle/puzzlemainwindow.ui b/src/app/puzzle/puzzlemainwindow.ui
new file mode 100644
index 000000000..9de7e2667
--- /dev/null
+++ b/src/app/puzzle/puzzlemainwindow.ui
@@ -0,0 +1,24 @@
+
+ PuzzleMainWindow
+
+
+
+ 0
+ 0
+ 400
+ 300
+
+
+
+ PuzzleMainWindow
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/puzzle/share/resources/puzzle.rc b/src/app/puzzle/share/resources/puzzle.rc
new file mode 100644
index 000000000..809de88e6
--- /dev/null
+++ b/src/app/puzzle/share/resources/puzzle.rc
@@ -0,0 +1,80 @@
+IDI_ICON1 ICON DISCARDABLE "puzzleicon/64x64/logo.ico"
+
+#include
+#include "../../version.h"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION VER_FILEVERSION
+PRODUCTVERSION VER_PRODUCTVERSION
+
+// normally found in included by
+// FILEFLAGS
+#define VS_FF_NORMAL 0x00000000L // ok I made this one up
+#ifndef VS_FF_DEBUG
+#define VS_FF_DEBUG 0x00000001L
+#endif
+#ifndef VS_FF_PRERELEASE
+#define VS_FF_PRERELEASE 0x00000002L
+#endif
+// FILEOS
+#ifndef VOS_NT
+#define VOS_NT 0x00040000L
+#endif
+#ifndef VOS__WINDOWS32
+#define VOS__WINDOWS32 0x00000004L
+#endif
+#ifndef VOS_NT_WINDOWS32
+#define VOS_NT_WINDOWS32 0x00040004L
+#endif
+// FILETYPE
+#ifndef VFT_APP
+#define VFT_APP 0x00000001L
+#endif
+#ifndef VFT_DLL
+#define VFT_DLL 0x00000002L
+#endif
+
+#ifdef V_PRERELEASE
+
+#ifdef V_NO_DEBUG
+ FILEFLAGS (VS_FF_PRERELEASE)
+#else
+ FILEFLAGS (VS_FF_DEBUG|VS_FF_PRERELEASE)
+#endif
+
+#else
+
+#ifdef V_NO_DEBUG
+ FILEFLAGS (VS_FF_NORMAL)
+#else
+ FILEFLAGS (VS_FF_DEBUG|VS_FF_NORMAL)
+#endif
+
+#endif
+
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ BEGIN
+ VALUE "CompanyName", VER_COMPANYNAME_STR
+ VALUE "FileDescription", VER_FILEDESCRIPTION_STR
+ VALUE "FileVersion", VER_FILEVERSION_STR
+ VALUE "InternalName", VER_INTERNALNAME_STR
+ VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
+ VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
+ VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
+ VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
+ VALUE "ProductName", VER_PRODUCTNAME_STR
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR
+ END
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0x04E4 //U.S. English
+ END
+END
diff --git a/src/app/puzzle/share/resources/puzzleicon.qrc b/src/app/puzzle/share/resources/puzzleicon.qrc
new file mode 100644
index 000000000..871f678c4
--- /dev/null
+++ b/src/app/puzzle/share/resources/puzzleicon.qrc
@@ -0,0 +1,5 @@
+
+
+ puzzleicon/64x64/logo.png
+
+
diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/logo.ico b/src/app/puzzle/share/resources/puzzleicon/64x64/logo.ico
new file mode 100644
index 000000000..a98015678
Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/64x64/logo.ico differ
diff --git a/src/app/puzzle/share/resources/puzzleicon/64x64/logo.png b/src/app/puzzle/share/resources/puzzleicon/64x64/logo.png
new file mode 100644
index 000000000..ea9aa050e
Binary files /dev/null and b/src/app/puzzle/share/resources/puzzleicon/64x64/logo.png differ
diff --git a/src/app/puzzle/warnings.pri b/src/app/puzzle/warnings.pri
new file mode 100644
index 000000000..da69ccfc3
--- /dev/null
+++ b/src/app/puzzle/warnings.pri
@@ -0,0 +1,85 @@
+#Turn on compilers warnings.
+unix {
+ *g++*{
+ QMAKE_CXXFLAGS += \
+ # Key -isystem disable checking errors in system headers.
+ -isystem "$${OUT_PWD}/$${UI_DIR}" \
+ -isystem "$${OUT_PWD}/$${MOC_DIR}" \
+ -isystem "$${OUT_PWD}/$${RCC_DIR}" \
+ $$GCC_DEBUG_CXXFLAGS # See common.pri for more details.
+
+ checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
+ QMAKE_CXXFLAGS += -Werror
+ }
+
+ noAddressSanitizer{ # For enable run qmake with CONFIG+=noAddressSanitizer
+ # do nothing
+ } else {
+ CONFIG(debug, debug|release){
+ # Debug mode
+ #gcc’s 4.8.0 Address Sanitizer
+ #http://blog.qt.digia.com/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt/
+ QMAKE_CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer
+ QMAKE_CFLAGS += -fsanitize=address -fno-omit-frame-pointer
+ QMAKE_LFLAGS += -fsanitize=address
+ }
+ }
+
+ gccUbsan{ # For enable run qmake with CONFIG+=gccUbsan
+ CONFIG(debug, debug|release){
+ # Debug mode
+ #gcc’s 4.9.0 Undefined Behavior Sanitizer (ubsan)
+ QMAKE_CXXFLAGS += -fsanitize=undefined
+ QMAKE_CFLAGS += -fsanitize=undefined
+ QMAKE_LFLAGS += -fsanitize=undefined
+ }
+ }
+ }
+
+ *clang*{
+ QMAKE_CXXFLAGS += \
+ # Key -isystem disable checking errors in system headers.
+ -isystem "$${OUT_PWD}/$${UI_DIR}" \
+ -isystem "$${OUT_PWD}/$${MOC_DIR}" \
+ -isystem "$${OUT_PWD}/$${RCC_DIR}" \
+ $$CLANG_DEBUG_CXXFLAGS # See common.pri for more details.
+
+ checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
+ QMAKE_CXXFLAGS += -Werror
+ }
+
+ # -isystem key works only for headers. In some cases it's not enough. But we can't delete this warnings and
+ # want them in global list. Compromise decision delete them from local list.
+ QMAKE_CXXFLAGS -= \
+ -Wundefined-reinterpret-cast \
+ -Wmissing-prototypes # rcc folder
+ }
+
+ *-icc-*{
+ QMAKE_CXXFLAGS += \
+ -isystem "$${OUT_PWD}/$${UI_DIR}" \
+ -isystem "$${OUT_PWD}/$${MOC_DIR}" \
+ -isystem "$${OUT_PWD}/$${RCC_DIR}" \
+ $$ICC_DEBUG_CXXFLAGS
+
+ checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
+ QMAKE_CXXFLAGS += -Werror
+ }
+ }
+} else { # Windows
+ *g++*{
+ QMAKE_CXXFLAGS += $$GCC_DEBUG_CXXFLAGS # See common.pri for more details.
+
+ checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
+ QMAKE_CXXFLAGS += -Werror
+ }
+ }
+
+ *msvc*{
+ QMAKE_CXXFLAGS += $$MSVC_DEBUG_CXXFLAGS # See common.pri for more details.
+
+ checkWarnings{ # For enable run qmake with CONFIG+=checkWarnings
+ QMAKE_CXXFLAGS += -WX
+ }
+ }
+}