Starting linux setup system.

This commit is contained in:
Ad5001 2021-06-22 00:27:40 +02:00
parent 83646baee0
commit 1498028036
Signed by: Ad5001
GPG Key ID: EF45F9C6AFE20160
88 changed files with 533 additions and 173 deletions

View File

@ -0,0 +1,128 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001
*
* 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 program 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 <https://www.gnu.org/licenses/>.
"""
from PySide2.QtWidgets import QApplication, QFileDialog
from PySide2.QtQml import QQmlApplicationEngine, qmlRegisterType
from PySide2.QtCore import Qt, QObject, Signal, Slot, Property
from PySide2.QtGui import QIcon, QImage
from PySide2 import __version__ as PySide2_version
import os
import tempfile
from platform import release as os_release
from json import dumps
from sys import platform, argv, version as sys_version
import webbrowser
__VERSION__ = "0.0.1.dev0"
tempfile = tempfile.mkstemp(suffix='.png')[1]
def get_linux_theme():
des = {
"KDE": "Flat",
"gnome": "default",
"lxqt": "fusion",
"mate": "fusion",
}
if "XDG_SESSION_DESKTOP" in os.environ:
return des[os.environ["XDG_SESSION_DESKTOP"]] if os.environ["XDG_SESSION_DESKTOP"] in des else "fusion"
else:
# Android
return "Material"
class Helper(QObject):
@Slot(str, str)
def write(self, filename, filedata):
if os.path.exists(os.path.dirname(os.path.realpath(filename))):
f = open(os.path.realpath(filename), 'w', -1, 'utf8')
f.write(filedata)
f.close()
@Slot(str, result=str)
def load(self, filename):
if os.path.exists(os.path.realpath(filename)):
f = open(os.path.realpath(filename), 'r', -1, 'utf8')
data = f.read()
f.close()
return data
return '{}'
@Slot(result=str)
def gettmpfile(self):
global tempfile
return tempfile
@Slot()
def copyImageToClipboard(self):
global tempfile
clipboard = QApplication.clipboard()
clipboard.setImage(QImage(tempfile))
@Slot(result=str)
def getVersion(self):
return __VERSION__
@Slot(result=str)
def getDebugInfos(self):
"""
Returns the version info about Qt, PySide2 & Python
"""
return "Built with PySide2 (Qt) v{} and python v{}".format(PySide2_version, sys_version.split("\n")[0])
@Slot(str)
def openUrl(self, url):
webbrowser.open(url)
def run():
pwd = os.getcwd()
os.chdir(os.path.dirname(os.path.realpath(__file__)))
os.environ["QT_QUICK_CONTROLS_STYLE"] = {
"linux": get_linux_theme(),
"freebsd": get_linux_theme(),
"win32": "universal" if os_release == "10" else "fusion",
"cygwin": "fusion",
"darwin": "imagine"
}[platform]
app = QApplication(argv)
app.setApplicationName("LogarithmPlotter")
app.setOrganizationName("Ad5001")
app.setWindowIcon(QIcon(os.path.realpath(os.path.join(os.getcwd(), "..", "logplotter.svg"))))
engine = QQmlApplicationEngine()
helper = Helper()
engine.rootContext().setContextProperty("Helper", helper)
engine.addImportPath(os.path.realpath(os.path.join(os.getcwd(), "qml")))
engine.load(os.path.realpath(os.path.join(os.getcwd(), "qml", "LogGraph.qml")))
os.chdir(pwd)
if len(argv) > 0 and os.path.exists(argv[-1]) and argv[-1].split('.')[-1] in ['json', 'lgg', 'lpf']:
print(argv[-1])
engine.rootObjects()[0].loadDiagram(argv[-1])
os.chdir(os.path.dirname(os.path.realpath(__file__)))
if not engine.rootObjects():
print("No root object")
exit(-1)
app.exec_()
os.remove(tempfile)

View File

@ -0,0 +1,4 @@
from .run import run
if __name__ == "__main__":
run()

View File

@ -108,12 +108,11 @@ Item {
"α","β","γ","δ","ε","ζ","η","θ","κ","λ",
"μ","ξ","ρ","ς","σ","τ","φ","χ","ψ","ω",
"Γ","Δ","Θ","Λ","Ξ","Π","Σ","Φ","Ψ","Ω",
"∞","≠","≥","≤","∧","","∩","","⊂","⊃",
"⊕","⊗","∈","∀","∃","∂"," "," "," "," ",
"∞","∂"," "," "," "," "," "," "," "," ",
"¹","²","³","⁴","⁵","⁶","⁷","⁸","⁹","⁰",
"₁","₂","₃","₄","₅","₆","₇","₈","₉","₀",
"ₐ","ₑ","ₒ","ₓ","ₔ","ₕ","ₖ","ₗ","ₘ","ₙ",
"ₚ","ₛ","ₜ","₊","₋","₌","₍","₎"," "," "
"ₚ","ₛ","ₜ"," "," "," "," "," "," "," "
]
Repeater {

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Function.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs833" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Gain Bode.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Phase Bode.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs10" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Point.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Repartition.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs835" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Sequence.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs10" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Somme gains Bode.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Somme gains Bode.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Somme phases Bode.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs10" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Text.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="X Cursor.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="delete.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs10" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="xaxisstep.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="yaxisstep.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Expression.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs833" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -7,7 +7,7 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)"
sodipodi:docname="Gain.svg"
id="SVGRoot"
version="1.1"

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Pass.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="rouding.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="Text.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs1469" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="angle.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -13,7 +13,7 @@
viewBox="0 0 24 24"
id="svg4"
sodipodi:docname="appearance.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<metadata
id="metadata10">
<rdf:RDF>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="arrow.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="label.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="icon.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="target.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="linewidth.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="textsize.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs833" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="xaxisstep.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="xlabel.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="xmin.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="xzoom.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="yaxisstep.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="ylabel.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="ymax.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -13,7 +13,7 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="yzoom.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<defs
id="defs836" />
<sodipodi:namedview

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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="24.0px"
height="24.0px"
viewBox="0 0 24.0 24.0"
version="1.1"
id="SVGRoot"
sodipodi:docname="logplotterfile.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<title
id="title849">LogarithmPlotter Icon</title>
<defs
id="defs10">
<linearGradient
inkscape:collect="always"
id="linearGradient51">
<stop
style="stop-color:#e0e0e0;stop-opacity:1"
offset="0"
id="stop47" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop49" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient909">
<stop
style="stop-color:#d0d0df;stop-opacity:1"
offset="0"
id="stop905" />
<stop
style="stop-color:#dddddf;stop-opacity:0;"
offset="1"
id="stop907" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient909"
id="linearGradient911"
x1="19"
y1="6"
x2="19"
y2="9"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient51"
id="linearGradient53"
x1="7"
y1="5"
x2="19"
y2="22"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.839192"
inkscape:cx="31.617327"
inkscape:cy="5.2075676"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid19" />
</sodipodi:namedview>
<metadata
id="metadata13">
<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>LogarithmPlotter File Icon</dc:title>
<dc:date>2021</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>Ad5001</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>(c) Copyright Ad5001 2021</dc:title>
</cc:Agent>
</dc:rights>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-nc-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:prohibits
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect26"
style="fill:url(#linearGradient53);fill-opacity:1;stroke:#aaaaaf;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4,2 h 13 l 3,3.8181818 V 23 H 4 Z"
sodipodi:nodetypes="cccccc" />
<rect
style="fill:#000000;fill-rule:evenodd;stroke-width:9.65201;stroke-opacity:0"
id="rect1410"
width="11"
height="1"
x="6.5"
y="16" />
<rect
style="fill:#000000;fill-rule:evenodd;stroke-width:9.65208;stroke-opacity:0"
id="rect1412"
width="1"
height="11"
x="10.5"
y="7" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.97652;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1529"
sodipodi:type="arc"
sodipodi:cx="6.5"
sodipodi:cy="7"
sodipodi:rx="10.01174"
sodipodi:ry="9.0117397"
sodipodi:start="0"
sodipodi:end="1.5707963"
sodipodi:arc-type="arc"
sodipodi:open="true"
d="M 16.51174,7 A 10.01174,9.0117397 0 0 1 6.5,16.01174" />
<path
id="rect899"
style="fill:#aaaaaf;fill-opacity:1;stroke:none;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17,2 3,4 v 0 h -3 z"
sodipodi:nodetypes="ccccc" />
<path
id="rect902"
style="fill:url(#linearGradient911);fill-opacity:1;stroke:none;stroke-width:0.6579;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17,6 h 2.65 v 2.5 0 z"
sodipodi:nodetypes="ccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

5
linux/debian/changelog Normal file
View File

@ -0,0 +1,5 @@
logarithmplotter (0.0.1.dev0) UNRELEASED; urgency=medium
* Initial release.
-- Ad5001 <mail@ad5001.eu> Mon, 06 Jun 2021 08:48:28 +0200

1
linux/debian/compat Normal file
View File

@ -0,0 +1 @@
11

12
linux/debian/control Normal file
View File

@ -0,0 +1,12 @@
Package: logarithmplotter
Source: logarithmplotter
Version: 0.0.1.dev0
Architecture: all
Maintainer: Ad5001 <mail@ad5001.eu>
Depends: python3, python3-pip, qt5-default (>= 5.14.0), qml-module-qtquick-controls2 (>= 5.14.0), qml-module-qtmultimedia (>= 5.14.0), qml-module-qtgraphicaleffects (>= 5.14.0), qml-module-qtquick2 (>= 5.14.0), qml-module-qtqml-models2 (>= 5.14.0), qml-module-qtquick-controls (>= 5.14.0), python3-pyside2.qtcore (>= 5.14.0), python3-pyside2.qtqml (>= 5.14.0), python3-pyside2.qtgui (>= 5.14.0), python3-pyside2.qtquick (>= 5.14.0), python3-pyside2.qtwidgets (>= 5.14.0), python3-pyside2.qtmultimedia (>= 5.14.0), python3-pyside2.qtnetwork (>= 5.14.0)
Build-Depends: debhelper (>=11~), dh-python, dpkg-dev (>= 1.16.1~), python-setuptools, python3-all-dev (>=3.6)
Section: science
Priority: optional
Homepage: https://apps.ad5001.eu/logarithmplotter
Installed-Size: 174
Description: Create graphs with logarithm scales.

8
linux/debian/copyright Normal file
View File

@ -0,0 +1,8 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: logarithmplotter
Upstream-Contact: Ad5001 <mail@ad5001.eu>
Files: *
Copyright: 2020, Ad5001 <mail@ad5001.eu>
License: GPL-3

1
linux/debian/depends Normal file
View File

@ -0,0 +1 @@
python3-pip, qt5-default (>= 5.12.0), qml-module-qtquick-controls2 (>= 5.12.0), qml-module-qtmultimedia (>= 5.12.0), qml-module-qtgraphicaleffects (>= 5.12.0), qml-module-qtquick2 (>= 5.12.0), qml-module-qtqml-models2 (>= 5.12.0), qml-module-qtquick-controls (>= 5.12.0), python3-pyside2.qtcore (>= 5.12.0), python3-pyside2.qtqml (>= 5.12.0), python3-pyside2.qtgui (>= 5.12.0), python3-pyside2.qtquick (>= 5.12.0), python3-pyside2.qtwidgets (>= 5.12.0), python3-pyside2.qtmultimedia (>= 5.12.0), python3-pyside2.qtnetwork (>= 5.12.0)

1
linux/debian/install Normal file
View File

@ -0,0 +1 @@
logarithmplotter usr/bin/

0
linux/debian/recommends Normal file
View File

6
linux/debian/rules Normal file
View File

@ -0,0 +1,6 @@
#!/usr/bin/make -f
export PYBUILD_NAME = logarithmplotter
%:
dh $@ --with python3 --buildsystem=pybuild

View File

@ -0,0 +1,12 @@
#!/bin/bash
APPROOT="$(cd -P "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo "Adding desktop file..."
mkdir -p ~/.local/share/applications
sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/logarithmplotter.desktop" > ~/.local/share/applications/logarithmplotter.desktop
echo "Installing mime-type..."
mkdir -p ~/.local/share/applications
sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/x-logarithm-plotter-old.xml" > ~/.local/share/mime/packages/x-logarithm-plotter.xml
mkdir -p ~/.local/share/icons/hicolor/scalable/mimetypes
cp "$APPROOT/logplotterfile.svg" ~/.local/share/icons/hicolor/scalable/mimetypes/application-x-logarithm-plotter.svg
update-mime-database ~/.local/share/mime/
update-icon-caches ~/.local/share/icons/hicolor

View File

@ -2,10 +2,10 @@
APPROOT="$(cd -P "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo "Adding desktop file..."
mkdir -p ~/.local/share/applications
sed "s+/home/ad5001/Apps/LogarithmPlotter/+$APPROOT/+g" "$APPROOT/linux/logplotter.desktop" > ~/.local/share/applications/logplotter.desktop
sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/logplotter.desktop" > ~/.local/share/applications/logarithmplotter.desktop
echo "Installing mime-type..."
mkdir -p ~/.local/share/applications
sed "s+/home/ad5001/Apps/LogarithmPlotter/+$APPROOT/+g" "$APPROOT/linux/x-logarithm-plotter.xml" > ~/.local/share/mime/packages/x-logarithm-plotter.xml
sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/x-logarithm-plotter-old.xml" > ~/.local/share/mime/packages/x-logarithm-plotter.xml
mkdir -p ~/.local/share/icons/hicolor/scalable/mimetypes
cp "$APPROOT/logplotterfile.svg" ~/.local/share/icons/hicolor/scalable/mimetypes/application-x-logarithm-plotter.svg
update-mime-database ~/.local/share/mime/

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=LogarithmPlotter
Comment=Plotter to make BODE diagrams, sequences and repartition functions.
Exec=/usr/bin/logarithmplotter %F
Icon=logplotter
MimeType=application/x-logarithm-plotter;
Terminal=false
StartupNotify=false
Categories=Graphics;Science;Math;

View File

@ -3,8 +3,8 @@ Version=1.0
Type=Application
Name=LogarithmPlotter
Comment=Plotter to make BODE diagrams, sequences and repartition functions.
Exec=/usr/bin/python3 /home/ad5001/Apps/LogarithmPlotter/run.py %F
Icon=/home/ad5001/Apps/LogarithmPlotter/logplotter.svg
Exec=/usr/bin/python3 ROOTFOLDER/run.py %F
Icon=ROOTFOLDER/logplotter.svg
MimeType=application/x-logarithm-plotter;
Terminal=false
StartupNotify=false

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="application/x-logarithm-plotter">
<comment>Logarithm Plot File</comment>
<comment xml:lang="fr">Fichier Graphe Logarithmique</comment>
<icon name="ROOTFOLDER/logplotterfile.svg"/>
<glob-deleteall/>
<glob pattern="*.json"/>
<glob pattern="*.lgg"/>
<glob pattern="*.lpf"/>
</mime-type>
</mime-info>

View File

@ -3,7 +3,7 @@
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="application/x-logarithm-plotter">
<comment>Logarithm Plot File</comment>
<comment xml:lang="fr">Fichier Graphe Logarithmique</comment>
<icon name="/home/ad5001/Apps/LogarithmPlotter/linux/logplotterfile.svg"/>
<icon name="application-x-logarithm-plotter"/>
<glob-deleteall/>
<glob pattern="*.json"/>
<glob pattern="*.lgg"/>

View File

@ -13,9 +13,9 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="logplotter.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<title
id="title836">Logarithm Plotter Icon v1.0</title>
id="title836">LogarithmPlotter Icon v1.0</title>
<defs
id="defs833" />
<sodipodi:namedview
@ -49,7 +49,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Logarithm Plotter Icon v1.0</dc:title>
<dc:title>LogarithmPlotter Icon v1.0</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/" />
<dc:date>2021</dc:date>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -14,9 +14,9 @@
version="1.1"
id="SVGRoot"
sodipodi:docname="logplotterfile.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
inkscape:version="1.0.1 (3bc2e813f5, 2021-09-07)">
<title
id="title849">Logarithm Plotter Icon</title>
id="title849">LogarithmPlotter Icon</title>
<defs
id="defs10">
<linearGradient
@ -93,7 +93,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Logarithm Plotter File Icon</dc:title>
<dc:title>LogarithmPlotter File Icon</dc:title>
<dc:date>2021</dc:date>
<dc:creator>
<cc:Agent>

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

3
package-linux.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
python3 setup.py --command-packages=stdeb.command sdist_dsc --package accountfree --copyright-file linux/debian/copyright --suite hirsute --recommends "$(cat linux/debian/recommends)" --depends "$(cat linux/debian/depends)" --section science bdist_deb

130
run.py
View File

@ -1,126 +1,8 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001
*
* 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 program 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 <https://www.gnu.org/licenses/>.
"""
from PySide2.QtWidgets import QApplication, QFileDialog
from PySide2.QtQml import QQmlApplicationEngine, qmlRegisterType
from PySide2.QtCore import Qt, QObject, Signal, Slot, Property
from PySide2.QtGui import QIcon, QImage
from PySide2 import __version__ as PySide2_version
def run():
import LogarithmPlotter
LogarithmPlotter.run()
import os
import tempfile
from platform import release as os_release
from json import dumps
from sys import platform, argv, version as sys_version
import webbrowser
pwd = os.getcwd()
os.chdir(os.path.dirname(os.path.realpath(__file__)))
__VERSION__ = "0.0.1.dev0"
tempfile = tempfile.mkstemp(suffix='.png')[1]
def get_linux_theme():
des = {
"KDE": "Flat",
"gnome": "default",
"lxqt": "fusion",
"mate": "fusion",
}
if "XDG_SESSION_DESKTOP" in os.environ:
return des[os.environ["XDG_SESSION_DESKTOP"]] if os.environ["XDG_SESSION_DESKTOP"] in des else "fusion"
else:
# Android
return "Material"
os.environ["QT_QUICK_CONTROLS_STYLE"] = {
"linux": get_linux_theme(),
"freebsd": get_linux_theme(),
"win32": "universal" if os_release == "10" else "fusion",
"cygwin": "fusion",
"darwin": "imagine"
}[platform]
class Helper(QObject):
@Slot(str, str)
def write(self, filename, filedata):
if os.path.exists(os.path.dirname(os.path.realpath(filename))):
f = open(os.path.realpath(filename), 'w', -1, 'utf8')
f.write(filedata)
f.close()
@Slot(str, result=str)
def load(self, filename):
if os.path.exists(os.path.realpath(filename)):
f = open(os.path.realpath(filename), 'r', -1, 'utf8')
data = f.read()
f.close()
return data
return '{}'
@Slot(result=str)
def gettmpfile(self):
global tempfile
return tempfile
@Slot()
def copyImageToClipboard(self):
global tempfile
clipboard = QApplication.clipboard()
clipboard.setImage(QImage(tempfile))
@Slot(result=str)
def getVersion(self):
return __VERSION__
@Slot(result=str)
def getDebugInfos(self):
"""
Returns the version info about Qt, PySide2 & Python
"""
return "Built with PySide2 (Qt) v{} and python v{}".format(PySide2_version, sys_version.split("\n")[0])
@Slot(str)
def openUrl(self, url):
webbrowser.open(url)
app = QApplication(argv)
app.setApplicationName("LogarithmPlotter")
app.setOrganizationName("Ad5001")
app.setWindowIcon(QIcon(os.path.realpath(os.path.join(os.getcwd(), "logplotter.svg"))))
engine = QQmlApplicationEngine()
helper = Helper()
engine.rootContext().setContextProperty("Helper", helper)
engine.addImportPath(os.path.realpath(os.path.join(os.getcwd(), "qml")))
engine.load(os.path.realpath(os.path.join(os.getcwd(), "qml", "LogGraph.qml")))
os.chdir(pwd)
if len(argv) > 0 and os.path.exists(argv[-1]) and argv[-1].split('.')[-1] in ['json', 'lgg', 'lpf']:
print(argv[-1])
engine.rootObjects()[0].loadDiagram(argv[-1])
os.chdir(os.path.dirname(os.path.realpath(__file__)))
if not engine.rootObjects():
print("No root object")
exit(-1)
app.exec_()
os.remove(tempfile)
if __name__ == "__main__":
run()

98
setup.py Normal file
View File

@ -0,0 +1,98 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* Copyright (C) 2021 Ad5001
*
* 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 program 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 <https://www.gnu.org/licenses/>.
"""
import setuptools
import os
import sys
current_dir = os.path.realpath(os.path.dirname(os.path.realpath(__file__)))
from LogarithmPlotter import __VERSION__ as pkg_version
CLASSIFIERS = """
Environment :: Graphic
Environment :: X11 Applications :: Qt
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Natural Language :: English
Development Status :: 4 - Beta
Operating System :: MacOS :: MacOS X
Operating System :: Microsoft :: Windows
Operating System :: POSIX
Operating System :: POSIX :: BSD
Operating System :: POSIX :: Linux
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: Implementation :: CPython
Topic :: Utilities
Topic :: Scientific/Engineering
""".strip().splitlines()
def read_file(file_name):
f = open(file_name, 'r', -1)
data = f.read()
f.close()
return data
def package_data():
pkg_data = []
for d,folders,files in os.walk("LogarithmPlotter/qml"):
d = d[17:]
pkg_data += [os.path.join(d, f) for f in files]
print("Pkgdata", pkg_data)
return pkg_data
data_files = []
if sys.platform == 'linux':
data_files.append(('/usr/share/applications/', ['linux/logarithmplotter.desktop']))
data_files.append(('/usr/share/mime/packages/', ['linux/x-logarithm-plotter.xml']))
data_files.append(('/usr/share/icons/hicolor/scalable/mimetypes/', ['linux/application-x-logarithm-plotter.svg']))
data_files.append(('/usr/share/icons/hicolor/scalable/apps/', ['logplotter.svg']))
setuptools.setup(
install_requires=["PySide2"],
python_requires='>=3.8',
name='logarithmplotter',
version=pkg_version,
description='Browse and use online services, free of account',
long_description=read_file("README.md"),
keywords='logarithm plotter graph creator bode diagram',
author='Ad5001',
author_email='mail@ad5001.eu',
license=('GPLv3'),
url='https://apps.ad5001.eu/logarithmplotter',
classifiers=CLASSIFIERS,
zip_safe=False,
packages=["LogarithmPlotter"],
package_data={
'LogarithmPlotter':package_data(),
},
include_package_data=True,
data_files = data_files,
entry_points={
'console_scripts': [
'logarithmplotter = LogarithmPlotter:run',
],
}
)