tree changes

This commit is contained in:
2020-08-19 00:47:44 +03:00
parent 4b7c513f7f
commit 3e1768b418
355 changed files with 4116 additions and 4316 deletions

View File

@@ -0,0 +1,23 @@
project(qpicalc)
find_qt(${QtVersions} Core Gui Widgets)
qt_sources(SRC)
qt_wrap(${SRC} CPPS out_CPP QMS out_QM)
qt_add_executable(${PROJECT_NAME} WIN32 out_CPP)
qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qad_graphic)
message(STATUS "Building ${PROJECT_NAME}")
if(LIB)
if(WIN32)
qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
else()
if (DEFINED ANDROID_PLATFORM)
qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${ANDROID_SYSTEM_LIBRARY_PATH}/usr/bin)
else()
qt_install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
endif()
endif()
#message(STATUS "Install ${PROJECT_NAME} to system \"${CMAKE_INSTALL_PREFIX}\"")
else()
qt_install(TARGETS ${PROJECT_NAME} DESTINATION bin)
#message(STATUS "Install ${PROJECT_NAME} to local \"bin\"")
endif()

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 813 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

View File

@@ -0,0 +1,351 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="mbricks.svg"
inkscape:export-filename="/home/peri4/pprojects/mbricks/icons/mbricks_256.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutM"
style="overflow:visible">
<path
id="path4080"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
transform="scale(0.4)" />
</marker>
<linearGradient
id="linearGradient7185">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7187" />
<stop
style="stop-color:#9f5321;stop-opacity:1;"
offset="1"
id="stop7189" />
</linearGradient>
<marker
inkscape:stockid="Scissors"
orient="auto"
refY="0.0"
refX="0.0"
id="Scissors"
style="overflow:visible">
<path
id="schere"
style="marker-start:none"
d="M 9.0898857,-3.6061018 C 8.1198849,-4.7769976 6.3697607,-4.7358294 5.0623558,-4.2327734 L -3.1500488,-1.1548705 C -5.5383421,-2.4615840 -7.8983361,-2.0874077 -7.8983361,-2.7236578 C -7.8983361,-3.2209742 -7.4416699,-3.1119800 -7.5100293,-4.4068519 C -7.5756648,-5.6501286 -8.8736064,-6.5699315 -10.100428,-6.4884954 C -11.327699,-6.4958500 -12.599867,-5.5553341 -12.610769,-4.2584343 C -12.702194,-2.9520479 -11.603560,-1.7387447 -10.304005,-1.6532027 C -8.7816644,-1.4265411 -6.0857470,-2.3487593 -4.8210600,-0.082342643 C -5.7633447,1.6559151 -7.4350844,1.6607341 -8.9465707,1.5737277 C -10.201445,1.5014928 -11.708664,1.8611256 -12.307219,3.0945882 C -12.885586,4.2766744 -12.318421,5.9591904 -10.990470,6.3210002 C -9.6502788,6.8128279 -7.8098011,6.1912892 -7.4910978,4.6502760 C -7.2454393,3.4624530 -8.0864637,2.9043186 -7.7636052,2.4731223 C -7.5199917,2.1477623 -5.9728246,2.3362771 -3.2164999,1.0982979 L 5.6763468,4.2330688 C 6.8000164,4.5467672 8.1730685,4.5362646 9.1684433,3.4313614 L -0.051640930,-0.053722219 L 9.0898857,-3.6061018 z M -9.2179159,-5.5066058 C -7.9233569,-4.7838060 -8.0290767,-2.8230356 -9.3743431,-2.4433169 C -10.590861,-2.0196559 -12.145370,-3.2022863 -11.757521,-4.5207817 C -11.530373,-5.6026336 -10.104134,-6.0014137 -9.2179159,-5.5066058 z M -9.1616516,2.5107591 C -7.8108215,3.0096239 -8.0402087,5.2951947 -9.4138723,5.6023681 C -10.324932,5.9187072 -11.627422,5.4635705 -11.719569,4.3902287 C -11.897178,3.0851737 -10.363484,1.9060805 -9.1616516,2.5107591 z " />
</marker>
<marker
inkscape:stockid="TriangleOutL"
orient="auto"
refY="0.0"
refX="0.0"
id="TriangleOutL"
style="overflow:visible">
<path
id="path4077"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
transform="scale(0.8)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible">
<path
id="path3952"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;">
<path
id="path3955"
style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;">
<path
id="path3937"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
id="linearGradient2880">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop2882" />
<stop
style="stop-color:#a1a0ec;stop-opacity:1;"
offset="1"
id="stop2884" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-27.752184 : 226.04049 : 1"
inkscape:vp_y="0 : 532.84338 : 0"
inkscape:vp_z="668.44676 : 231.8798 : 1"
inkscape:persp3d-origin="729.03793 : 212.46096 : 1"
id="perspective10" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient2880"
id="radialGradient3660"
cx="44.799999"
cy="841.16217"
fx="44.799999"
fy="841.16217"
r="83.199997"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.9999999,1.9999998,-2.0000003,-2.0000003,1816.7246,2433.8867)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7185"
id="radialGradient7191"
cx="79.29837"
cy="78.79641"
fx="79.29837"
fy="78.79641"
r="49.693359"
gradientTransform="matrix(3.7537835e-8,1.9999999,-1.9999999,6.9316032e-8,236.4014,-58.319081)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7185"
id="radialGradient7193"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7537835e-8,1.9999999,-1.9999999,6.9316032e-8,236.4014,-58.319081)"
cx="79.29837"
cy="78.79641"
fx="79.29837"
fy="78.79641"
r="49.693359" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7185"
id="radialGradient7195"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7537835e-8,1.9999999,-1.9999999,6.9316032e-8,236.4014,-58.319081)"
cx="79.29837"
cy="78.79641"
fx="79.29837"
fy="78.79641"
r="49.693359" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7185"
id="radialGradient7197"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7537835e-8,1.9999999,-1.9999999,6.9316032e-8,236.4014,-58.319081)"
cx="79.29837"
cy="78.79641"
fx="79.29837"
fy="78.79641"
r="49.693359" />
<filter
inkscape:collect="always"
id="filter7823">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.1939744"
id="feGaussianBlur7825" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.9694029"
inkscape:cx="174.88154"
inkscape:cy="103.79424"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
borderlayer="false"
showborder="true"
inkscape:showpageshadow="true"
inkscape:snap-global="true"
inkscape:snap-page="true"
inkscape:snap-grids="false"
inkscape:snap-object-midpoints="true"
inkscape:snap-bbox="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:bbox-nodes="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-center="true"
inkscape:window-width="1680"
inkscape:window-height="957"
inkscape:window-x="-2"
inkscape:window-y="-3"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2878"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-796.36218)">
<rect
style="fill:url(#radialGradient3660);fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
id="rect2873"
width="166.39999"
height="166.39999"
x="44.799999"
y="841.16217"
ry="19.968" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 240,0 0,81 -20.47574,0"
id="path3745"
transform="translate(0,796.36218)"
sodipodi:nodetypes="ccc" />
<path
sodipodi:type="arc"
style="fill:#0000ff;stroke:#0000ff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1;fill-rule:nonzero"
id="path3666"
sodipodi:cx="212.14285"
sodipodi:cy="102.42857"
sodipodi:rx="13.571428"
sodipodi:ry="13.571428"
d="m 225.71428,102.42857 c 0,7.4953 -6.07613,13.57143 -13.57143,13.57143 -7.49529,0 -13.57143,-6.07613 -13.57143,-13.57143 0,-7.495289 6.07614,-13.571425 13.57143,-13.571425 7.4953,0 13.57143,6.076136 13.57143,13.571425 z"
transform="matrix(0.5,0,0,0.5,106.12857,826.1479)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)"
d="m 0,81 40,0"
id="path3747"
transform="translate(0,796.36218)"
sodipodi:nodetypes="cc" />
<path
transform="matrix(0.5,0,0,0.5,-62.271427,826.1479)"
d="m 225.71428,102.42857 c 0,7.4953 -6.07613,13.57143 -13.57143,13.57143 -7.49529,0 -13.57143,-6.07613 -13.57143,-13.57143 0,-7.495289 6.07614,-13.571425 13.57143,-13.571425 7.4953,0 13.57143,6.076136 13.57143,13.571425 z"
sodipodi:ry="13.571428"
sodipodi:rx="13.571428"
sodipodi:cy="102.42857"
sodipodi:cx="212.14285"
id="path3743"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="ccc"
id="path5719"
d="m 5,1052.3622 0,-85.00002 35,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend);opacity:1" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path5721"
sodipodi:cx="212.14285"
sodipodi:cy="102.42857"
sodipodi:rx="13.571428"
sodipodi:ry="13.571428"
d="m 225.71428,102.42857 c 0,7.4953 -6.07613,13.57143 -13.57143,13.57143 -7.49529,0 -13.57143,-6.07613 -13.57143,-13.57143 0,-7.495289 6.07614,-13.571425 13.57143,-13.571425 7.4953,0 13.57143,6.076136 13.57143,13.571425 z"
transform="matrix(0.5,0,0,0.5,-62.271427,916.14789)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-end:url(#Arrow2Lend)"
d="m 0,922.36217 40,0"
id="path5723"
sodipodi:nodetypes="cc" />
<path
transform="matrix(0.5,0,0,0.5,-62.271427,871.14789)"
d="m 225.71428,102.42857 c 0,7.4953 -6.07613,13.57143 -13.57143,13.57143 -7.49529,0 -13.57143,-6.07613 -13.57143,-13.57143 0,-7.495289 6.07614,-13.571425 13.57143,-13.571425 7.4953,0 13.57143,6.076136 13.57143,13.571425 z"
sodipodi:ry="13.571428"
sodipodi:rx="13.571428"
sodipodi:cy="102.42857"
sodipodi:cx="212.14285"
id="path5725"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cccc"
id="path5727"
d="m 256,967.36218 -16,0 0,-45 -20,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
transform="matrix(0.5,0,0,0.5,106.12857,871.14789)"
d="m 225.71428,102.42857 c 0,7.4953 -6.07613,13.57143 -13.57143,13.57143 -7.49529,0 -13.57143,-6.07613 -13.57143,-13.57143 0,-7.495289 6.07614,-13.571425 13.57143,-13.571425 7.4953,0 13.57143,6.076136 13.57143,13.571425 z"
sodipodi:ry="13.571428"
sodipodi:rx="13.571428"
sodipodi:cy="102.42857"
sodipodi:cx="212.14285"
id="path5729"
style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#0000ff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<flowRoot
xml:space="preserve"
id="flowRoot5731"
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:url(#radialGradient7191);fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:Bitstream Vera Sans Bold;stroke-width:0.70352161999999996;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter7823)"
transform="matrix(1.2,0,0,1.6836967,-25.658203,708.84411)"><flowRegion
id="flowRegion5733"
style="fill:url(#radialGradient7195);fill-opacity:1"><rect
id="rect5735"
width="145"
height="120"
x="55"
y="81"
style="font-size:72px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:url(#radialGradient7193);fill-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:Bitstream Vera Sans Bold;stroke-width:0.70352162;stroke-miterlimit:4;stroke-dasharray:none"
ry="0" /></flowRegion><flowPara
id="flowPara5737"
style="font-weight:bold;fill:url(#radialGradient7197);fill-opacity:1;-inkscape-font-specification:Bitstream Vera Sans Bold;stroke-width:0.70352162;stroke-miterlimit:4;stroke-dasharray:none">MB</flowPara></flowRoot> </g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,13 @@
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
#if QT_VERSION >= 0x050000
a.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
#endif
MainWindow w;
w.show();
return a.exec();
}

View File

@@ -0,0 +1,261 @@
#include "mainwindow.h"
MainWindow::MainWindow(QWidget * parent): QMainWindow(parent), Ui::MainWindow() {
setupUi(this);
active_ = false;
lineInput->setFocus();
#if QT_VERSION >= 0x050000
treeGraphics->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
treeGraphics->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
#else
treeGraphics->header()->setResizeMode(0, QHeaderView::ResizeToContents);
treeGraphics->header()->setResizeMode(1, QHeaderView::ResizeToContents);
#endif
npal = epal = lineInput->palette();
epal.setColor(lineInput->backgroundRole(), QColor(Qt::red).lighter(150));
connect(&session, SIGNAL(loading(QPIConfig & )), this, SLOT(loading(QPIConfig & )));
connect(&session, SIGNAL(saving(QPIConfig & )), this, SLOT(saving(QPIConfig & )));
session.setFile("session_qpicalc.conf");
session.addEntry(this);
session.addEntry(lineInput);
session.addEntry(tabWidget);
session.load();
ans = evaluator.setVariable("ans");
on_lineInput_returnPressed();
}
MainWindow::~MainWindow() {session.save();
}
void MainWindow::changeEvent(QEvent * e) {
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::updateGraphics() {
graphic->setGraphicsCount(treeGraphics->topLevelItemCount());
for (int i = 0; i < treeGraphics->topLevelItemCount(); ++i)
graphic->setGraphicColor(treeGraphics->topLevelItem(i)->data(0, Qt::DecorationRole).value<QColor>(), i);
redrawGraphics();
}
void MainWindow::redrawGraphics() {
QRectF sr = graphic->visualRect();
double dx = (sr.right() - sr.left()) / graphic->width(), sx = sr.left(), fx = sr.right(), cx;
QPolygonF pol;
evaluator.setVariable("x");
int vi = evaluator.variableIndex("x");
graphic->setAutoUpdate(false);
for (int i = 0; i < treeGraphics->topLevelItemCount(); ++i) {
QTreeWidgetItem * ti = treeGraphics->topLevelItem(i);
graphic->setGraphicName(ti->text(1), i);
pol.clear();
if (ti->checkState(0) == Qt::Checked) {
if (evaluator.check(ti->text(1))) {
cx = sx;
while (cx < fx) {
evaluator.setVariable(vi, complexd(cx, 0.));
pol << QPointF(cx, evaluator.evaluate().real());
cx += dx;
}
}
}
graphic->setGraphicVisible(ti->checkState(0) == Qt::Checked, i);
graphic->setGraphicData(pol, i);
}
graphic->setAutoUpdate(true);
graphic->update(true);
}
void MainWindow::loading(QPIConfig & conf) {
active_ = false;
QStringList vars = conf.getValue("variables").toStringList();
int vc = vars.size() / 2;
for (int i = 0; i < vc; ++i) {
QTreeWidgetItem * ti = new QTreeWidgetItem(treeVariables);
ti->setText(0, vars[i * 2]);
ti->setText(1, vars[i * 2 + 1]);
ti->setFlags(ti->flags() | Qt::ItemIsEditable);
treeVariables->addTopLevelItem(ti);
}
buttonVarClear->setEnabled(treeVariables->topLevelItemCount() > 0);
QByteArray ba = conf.getValue("graphics").toByteArray();
QDataStream s(ba);
QVector<GraphicType> g;
if (!ba.isEmpty()) s >> g;
graphic->setAllGraphics(g);
for (int i = 0; i < graphic->graphicsCount(); ++i) {
graphic->setCurrentGraphic(i);
QTreeWidgetItem * ti = new QTreeWidgetItem(treeGraphics);
ti->setFlags(ti->flags() | Qt::ItemIsEditable);
ti->setCheckState(0, graphic->graphicVisible() ? Qt::Checked : Qt::Unchecked);
ti->setData(0, Qt::DecorationRole, graphic->graphicColor());
ti->setText(1, graphic->graphicName());
treeGraphics->addTopLevelItem(ti);
}
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
graphic->setVisualRect(conf.getValue("graphicRect", QRectF(-1., -1., 2., 2.)).toRectF());
ba = conf.getValue("graphic_state").toByteArray();
if (!ba.isEmpty())
graphic->load(ba);
on_tabWidget_currentChanged(0);
redrawGraphics();
active_ = true;
}
void MainWindow::saving(QPIConfig & conf) {
QStringList vars;
int vc = treeVariables->topLevelItemCount();
for (int i = 0; i < vc; ++i) {
QTreeWidgetItem * ti = treeVariables->topLevelItem(i);
vars << ti->text(0) << ti->text(1);
}
conf.setValue("variables", vars);
QVector<GraphicType> g;
vc = treeGraphics->topLevelItemCount();
for (int i = 0; i < vc; ++i) {
QTreeWidgetItem * ti = treeGraphics->topLevelItem(i);
vars << QString::number(ti->background(1).color().rgb()) << ti->text(2);
}
QByteArray ba; QDataStream s(&ba, QIODevice::WriteOnly);
s << graphic->allGraphics();
conf.setValue("graphics", QByteArray2QString(ba));
conf.setValue("graphicRect", graphic->visualRect());
conf.setValue("graphic_state", graphic->save());
}
void MainWindow::on_lineInput_textChanged(QString text) {
if (evaluator.check(text)) lineInput->setPalette(npal);
else lineInput->setPalette(epal);
labelParsed->setText(evaluator.expression());
labelError->setText(evaluator.error());
}
void MainWindow::on_lineInput_returnPressed() {
bool ret = evaluator.check(lineInput->text());
if (ret) lineInput->setPalette(npal);
else lineInput->setPalette(epal);
labelParsed->setText(evaluator.expression());
labelError->setText(evaluator.error());
if (!ret) return;
complexd val = evaluator.evaluate();
evaluator.setVariable(ans, val);
if (val.imag() == 0) labelResult->setText(QString::number(val.real()));
else {
if (val.real() == 0) labelResult->setText(QString::number(val.imag()) + "i");
else {
if (val.imag() > 0) labelResult->setText(QString::number(val.real())
+ " + " + QString::number(val.imag()) + "i");
else labelResult->setText(QString::number(val.real())
+ " - " + QString::number(fabs(val.imag())) + "i");
}
}
if (lineInput->text().trimmed().isEmpty()) return;
QTreeWidgetItem * ti = 0, * pti = 0;
if (treeHistory->topLevelItemCount() > 0)
pti = treeHistory->topLevelItem(treeHistory->topLevelItemCount() - 1);
if (pti != 0)
if (pti->text(0) == lineInput->text())
return;
ti = new QTreeWidgetItem(treeHistory);
ti->setText(0, lineInput->text());
ti->setText(1, labelResult->text());
treeHistory->addTopLevelItem(ti);
if (treeHistory->verticalScrollBar()->value() == treeHistory->verticalScrollBar()->maximum())
treeHistory->scrollToBottom();
}
void MainWindow::on_treeGraphics_itemDoubleClicked(QTreeWidgetItem * item, int column) {
Qt::ItemFlags f = item->flags();
if (column != 1) f &= ~Qt::ItemIsEditable;
else f |= Qt::ItemIsEditable;
item->setFlags(f);
if (column != 0) return;
QColor col = QColorDialog::getColor(item->data(0, Qt::DecorationRole).value<QColor>(), this, "Select color for graphic", QColorDialog::ShowAlphaChannel);
if (!col.isValid()) return;
item->setData(0, Qt::DecorationRole, col);
updateGraphics();
}
void MainWindow::on_buttonVarAdd_clicked() {
QTreeWidgetItem * ti = new QTreeWidgetItem(treeVariables);
ti->setSelected(true);
ti->setFlags(ti->flags() | Qt::ItemIsEditable);
treeVariables->addTopLevelItem(ti);
treeVariables->setFocus();
treeVariables->editItem(ti);
buttonVarClear->setEnabled(treeVariables->topLevelItemCount() > 0);
}
void MainWindow::on_buttonVarDel_clicked() {
QList<QTreeWidgetItem * > si = treeVariables->selectedItems();
foreach (QTreeWidgetItem * i, si)
delete i;
buttonVarClear->setEnabled(treeVariables->topLevelItemCount() > 0);
}
void MainWindow::on_buttonGraphicAdd_clicked() {
graphic->setGraphicsCount(graphic->graphicsCount() + 1);
graphic->setCurrentGraphic(graphic->graphicsCount() - 1);
QTreeWidgetItem * ti = new QTreeWidgetItem(treeGraphics);
ti->setSelected(true);
ti->setFlags(ti->flags() | Qt::ItemIsEditable);
ti->setCheckState(0, Qt::Checked);
ti->setData(0, Qt::DecorationRole, graphic->graphicColor());
treeGraphics->addTopLevelItem(ti);
treeGraphics->setFocus();
treeGraphics->editItem(ti, 1);
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
updateGraphics();
}
void MainWindow::on_buttonGraphicDel_clicked() {
QList<QTreeWidgetItem * > si = treeGraphics->selectedItems();
foreach (QTreeWidgetItem * i, si)
delete i;
buttonGraphicClear->setEnabled(treeGraphics->topLevelItemCount() > 0);
updateGraphics();
}
void MainWindow::on_buttonGraphicClear_clicked() {
treeGraphics->clear();
buttonGraphicClear->setEnabled(false);
updateGraphics();
}
void MainWindow::on_tabWidget_currentChanged(int index) {
QPIEvaluator eval;
evaluator.clearCustomVariables();
for (int i = 0; i < treeVariables->topLevelItemCount(); ++i) {
QString vn, vv;
vn = treeVariables->topLevelItem(i)->text(0);
vv = treeVariables->topLevelItem(i)->text(1);
eval.check(vv);
evaluator.setVariable(vn, eval.evaluate());
}
if (index == 0) on_lineInput_returnPressed();
if (index == 2) redrawGraphics();
}

View File

@@ -0,0 +1,56 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPalette>
#include <QFile>
#include <QTextStream>
#include <QScrollBar>
#include <QColorDialog>
#include "ui_mainwindow.h"
#include "qpievaluator.h"
#include "session_manager.h"
class MainWindow: public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
public:
MainWindow(QWidget * parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent * e);
private:
void updateGraphics();
void redrawGraphics();
QPIEvaluator evaluator;
QPalette npal, epal;
SessionManager session;
int ans;
bool active_;
private slots:
void loading(QPIConfig & conf);
void saving(QPIConfig & conf);
void on_lineInput_textChanged(QString s);
void on_lineInput_returnPressed();
void on_treeHistory_itemDoubleClicked(QTreeWidgetItem * item, int column) {lineInput->setText(item->text(0));}
void on_treeVariables_itemSelectionChanged() {buttonVarDel->setDisabled(treeVariables->selectedItems().isEmpty());}
void on_treeGraphics_itemSelectionChanged() {buttonGraphicDel->setDisabled(treeGraphics->selectedItems().isEmpty());}
void on_treeGraphics_itemChanged(QTreeWidgetItem * , int col) { if (active_) redrawGraphics();}
void on_treeGraphics_itemDoubleClicked(QTreeWidgetItem * item, int column);
void on_buttonVarAdd_clicked();
void on_buttonVarDel_clicked();
void on_buttonVarClear_clicked() {treeVariables->clear(); buttonVarClear->setEnabled(false);}
void on_buttonGraphicAdd_clicked();
void on_buttonGraphicDel_clicked();
void on_buttonGraphicClear_clicked();
void on_tabWidget_currentChanged(int index);
void on_graphic_visualRectChanged() {redrawGraphics();}
};
#endif // MAINWINDOW_H

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