New paparazzicenter in Python (#1811)

This is the result of a student project to develop a new paparazzi center based on Python/Qt.
See http://wiki.paparazziuav.org/wiki/Paparazzi_Center/Evolutions for the main idea and development process.
It can be tested by running the main paparazzi launcher with the -python option. I more convenient way might be added later.
This PR is mostly a way to not loose this work, and other people are encourage to improve it in many aspects (HMI, functionalities, ...).
This commit is contained in:
Gautier Hattenberger
2016-07-19 22:52:15 +02:00
committed by Felix Ruess
parent 1ce9bcfb58
commit 9763a70ca9
58 changed files with 10571 additions and 1 deletions
+2
View File
@@ -23,6 +23,8 @@
*.gdb_history
.cache.xml
# Eclipse IDE project files
*.cproject
*.project
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env /bin/sh
cd $PAPARAZZI_SRC/sw/supervision/python
./main.py
+10 -1
View File
@@ -9,7 +9,16 @@ let env =
let value = if value = "." then Sys.getcwd () else value in
Printf.sprintf "%s=%s" var value)
[|"PAPARAZZI_SRC"; "PAPARAZZI_HOME"|]
let com = dirname // "sw/supervision/paparazzicenter";;
let com =
if Array.length (Sys.argv) > 1 then begin
Printf.printf "%d\n" (Array.length (Sys.argv));
if Sys.argv.(1) = "-python" then
dirname // "paparazzi-python.sh"
else
dirname // "sw/supervision/paparazzicenter"
end
else
dirname // "sw/supervision/paparazzicenter";;
Sys.argv.(0) <- com;;
let env = Array.append env (Unix.environment ());;
Unix.execve com Sys.argv env
+44
View File
@@ -0,0 +1,44 @@
<!ELEMENT cache (system|data)*>
<!ELEMENT system (window|filters)*>
<!ELEMENT window (x|y|width|height)*>
<!ELEMENT x (#PCDATA)>
<!ATTLIST x
value CDATA #REQUIRED>
<!ELEMENT y (#PCDATA)>
<!ATTLIST y
value CDATA #REQUIRED>
<!ELEMENT width (#PCDATA)>
<!ATTLIST width
value CDATA #REQUIRED>
<!ELEMENT height (#PCDATA)>
<!ATTLIST height
value CDATA #REQUIRED>
<!ELEMENT filters (level|info|warning|error)*>
<!ELEMENT level (#PCDATA)>
<!ATTLIST level
value CDATA #REQUIRED>
<!ELEMENT info (#PCDATA)>
<!ATTLIST info
value CDATA #REQUIRED>
<!ELEMENT warning (#PCDATA)>
<!ATTLIST warning
value CDATA #REQUIRED>
<!ELEMENT error (#PCDATA)>
<!ATTLIST error
value CDATA #REQUIRED>
<!ELEMENT data (set|config|target|device|session)*>
<!ELEMENT set (#PCDATA)>
<!ATTLIST set
value CDATA #REQUIRED>
<!ELEMENT config (#PCDATA)>
<!ATTLIST config
value CDATA #REQUIRED>
<!ELEMENT target (#PCDATA)>
<!ATTLIST target
value CDATA #REQUIRED>
<!ELEMENT device (#PCDATA)>
<!ATTLIST device
value CDATA #REQUIRED>
<!ELEMENT session (#PCDATA)>
<!ATTLIST session
value CDATA #REQUIRED>
+69
View File
@@ -0,0 +1,69 @@
###############################################################################
# Welcome in the future Paparazzi Center ! #
###############################################################################
1) Run instructions :
To run the new Paparazzi Center, you need :
> A Linux or IOS system
> A correctly installed version of Paparazzi UAV software
> Python 3.4 (install package 'python3')
> PyQt5 (install package 'python3-pyqt5')
First "git pull" my part of code or copy the current "./sw/supervision/python"
version into your own "./sw/supervision" directory. No installation nor
compilation is needed.
Then, make the 'main.py' file executable ('chmod +x main.py') and launch the
program in a terminal ('./main.py') or from the paparazzi launcher (soon).
###############################################################################
2) Feedback :
I'm an intern student at the ENAC and my mission is to reconceive the Paparazzi
Center in Python/Qt to make it more intuitive and 'maintainable' (that can
evolve easily). So I'd really like to have your feeling about my propositions !
If you have any question or comment about it, please contact me by
Github (my pseudo is 'floienac' and I use Gitter) or by mail
('f.bitard@gmail.com').
I'd be glad to be criticized, especially if you're directly concerned as a
final user or a developer of Paparazzi UAV.
Thanks by advance :)
Florian BITARD - intern student at the ENAC's drones lab
(February to June 2016)
http://wiki.paparazziuav.org/wiki/Paparazzi_Center/Evolutions
###############################################################################
3) GNU License :
As this new Paparazzi Center is a free and open source software part, feel
free to correct bugs, improve the functions and add new ones to it.
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
+103
View File
@@ -0,0 +1,103 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import ui.set_manager as manager
import ui.popup as popup
import PyQt5.QtWidgets as Widgets
import logging
import os
###############################################################################
# [Constants]
LOGGER = logging.getLogger("[DIALOGS]")
UI_DIR = "ui"
DATA_CHANGED_POPUP_TYPE = "data changed"
DATA_CHANGED_POPUP_HTML = "data_changed.html"
CREDITS_POPUP_TYPE = "credits"
CREDITS_POPUP_HTML = "credits.html"
TUTORIAL_POPUP_TYPE = "tutorial"
TUTORIAL_POPUP_HTML = "tutorial.html"
###############################################################################
# [SettingsManager class]
class SettingsManager(Widgets.QDialog):
"""Class to manage the settings manager HMI."""
def __init__(self):
super(SettingsManager, self).__init__()
self.ui = manager.Ui_Dialog()
self.ui.setupUi(self)
###############################################################################
# [SettingsManager class]
class Popup(Widgets.QDialog):
"""Class to manage the settings manager HMI."""
def __init__(self, popup_type=None):
super(Popup, self).__init__()
self.ui = popup.Ui_Dialog()
self.ui.setupUi(self)
self.ui.textBrowser.setOpenExternalLinks(True)
self.type = popup_type
self.set_popup_details()
def set_popup_details(self):
"""
-> Set the title, the text and the dialog buttons of the popup window
according to its type.
"""
if self.type == DATA_CHANGED_POPUP_TYPE:
self.setWindowTitle("/!\ Some unsaved data found !")
self.ui.buttonBox.setStandardButtons(
Widgets.QDialogButtonBox.Cancel | Widgets.QDialogButtonBox.Save)
html_file = DATA_CHANGED_POPUP_HTML
elif self.type == CREDITS_POPUP_TYPE:
self.setWindowTitle("Paparazzi UAV Center credits "
"(Python/Qt version)")
self.ui.buttonBox.setStandardButtons(Widgets.QDialogButtonBox.Close)
html_file = CREDITS_POPUP_HTML
elif self.type == TUTORIAL_POPUP_TYPE:
self.setWindowTitle("Tutorials and documents")
self.ui.buttonBox.setStandardButtons(Widgets.QDialogButtonBox.Close)
html_file = TUTORIAL_POPUP_HTML
else:
self.setWindowTitle("Popup without specific type.")
html_file = "none.html"
try:
html_config_path = os.path.join(UI_DIR, html_file)
with open(html_config_path, 'r') as popup_html_content:
self.ui.textBrowser.setHtml(popup_html_content.read())
except FileNotFoundError:
print("Popup HTML configuration file not found ! "
"('%s' should be in 'ui' directory.)" % html_file)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg7698" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs7700">
<linearGradient id="linearGradient3140" y2="31.211" gradientUnits="userSpaceOnUse" x2="23.576" gradientTransform="matrix(.41578 -.41749 .51898 .51462 -15.747 2.6504)" y1="25.357" x1="23.576">
<stop id="stop2541" style="stop-color:#181818" offset="0"/>
<stop id="stop2543" style="stop-color:#dbdbdb" offset=".13483"/>
<stop id="stop2545" style="stop-color:#a4a4a4" offset=".20224"/>
<stop id="stop2547" style="stop-color:#fff" offset=".26966"/>
<stop id="stop2549" style="stop-color:#8d8d8d" offset=".44650"/>
<stop id="stop2551" style="stop-color:#959595" offset=".57114"/>
<stop id="stop2553" style="stop-color:#cecece" offset=".72038"/>
<stop id="stop2555" style="stop-color:#181818" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3142" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.868 .69303)" y1="24.99" x1="30.038">
<stop id="stop2559" style="stop-color:#565656" offset="0"/>
<stop id="stop2561" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2563" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3144" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.983 .80921)" y1="24.99" x1="30.038">
<stop id="stop2567" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2569" style="stop-color:#fff" offset=".5"/>
<stop id="stop2571" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3146" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.466 .28929)" y1="24.99" x1="30.038">
<stop id="stop2575" style="stop-color:#565656" offset="0"/>
<stop id="stop2577" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2579" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3148" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.581 .40547)" y1="24.99" x1="30.038">
<stop id="stop2583" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2585" style="stop-color:#fff" offset=".5"/>
<stop id="stop2587" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3150" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.062 -.11641)" y1="24.99" x1="30.038">
<stop id="stop2591" style="stop-color:#565656" offset="0"/>
<stop id="stop2593" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2595" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3152" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.177 -.00021970)" y1="24.99" x1="30.038">
<stop id="stop2599" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2601" style="stop-color:#fff" offset=".5"/>
<stop id="stop2603" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3154" y2="26.03" gradientUnits="userSpaceOnUse" x2="9" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.637 .46249)" y1="29.057" x1="9">
<stop id="stop2607" style="stop-color:#ece5a5" offset="0"/>
<stop id="stop2609" style="stop-color:#fcfbf2" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3156" y2="41.392" gradientUnits="userSpaceOnUse" x2="9.5221" gradientTransform="matrix(.37638 .036153 0.0367 .37487 -2.2183 -1.1331)" y1="37.372" x1="5.5179">
<stop id="stop2613" style="stop-color:#dbce48" offset="0"/>
<stop id="stop2615" style="stop-color:#c5b625" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3735" y2="2.001" gradientUnits="userSpaceOnUse" x2="2" y1="18.001" x1="2">
<stop id="stop3106-1" style="stop-color:#969696" offset="0"/>
<stop id="stop3108-2" style="stop-color:#bebebe" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3737" y2="17.001" gradientUnits="userSpaceOnUse" x2="6" y1="4.001" x1="6">
<stop id="stop3602-9" style="stop-color:#fff" offset="0"/>
<stop id="stop3604-4" style="stop-color:#e6e6e6" offset="1"/>
</linearGradient>
</defs>
<g id="g3433">
<g id="layer1-3" transform="translate(0 -2.001)">
<path id="path2855" style="stroke-linejoin:round;stroke:url(#linearGradient3735);stroke-linecap:round;fill:url(#linearGradient3737)" d="m0.54277 2.501 12.957 0.01 0.042 14.99h-12.999l-1e-8 -15z"/>
<g id="g4198" style="fill:#999" transform="matrix(1.0195 0 0 1 29.21 6.7744)">
<path id="path6035" style="opacity:.7;fill:#686868" d="m-25.666-1.7733h1.1241v1h-1.1241v-1z"/>
<path id="path6033" style="opacity:.7;fill:#686868" d="m-24.388-1.7733h1.0606v1h-1.0606v-1z"/>
<path id="path6031" style="opacity:.7;fill:#686868" d="m-23.175-1.7733h0.93368v1h-0.93368v-1z"/>
<path id="path6029" style="opacity:.7;fill:#686868" d="m-22.088-1.7733h0.41011v1h-0.41011v-1z"/>
<path id="path6027" style="opacity:.7;fill:#686868" d="m-21.525-1.7733h0.91782v1h-0.91782v-1z"/>
<path id="path6025" style="opacity:.7;fill:#686868" d="m-20.454-1.7733h2.3775v1h-2.3775v-1z"/>
<path id="path6017" style="opacity:.7;fill:#686868" d="m-25.666 4.2267h1.1241v1h-1.1241v-1z"/>
<path id="path6015" style="opacity:.7;fill:#686868" d="m-24.388 4.2267h1.0606v1h-1.0606v-1z"/>
<path id="path6013" style="opacity:.7;fill:#686868" d="m-23.175 4.2267h0.93368v1h-0.93368v-1z"/>
<path id="path6011" style="opacity:.7;fill:#686868" d="m-22.088 4.2267h0.41011v1h-0.41011v-1z"/>
<path id="path6009" style="opacity:.7;fill:#686868" d="m-21.525 4.2267h0.91781v1h-0.91781v-1z"/>
<path id="path5999" style="opacity:.7;fill:#686868" d="m-25.666 0.22666h1.7428v1h-1.7428v-1z"/>
<path id="path5997" style="opacity:.7;fill:#686868" d="m-23.764 0.22666h0.83849v1h-0.83849v-1z"/>
<path id="path5995" style="opacity:.7;fill:#686868" d="m-22.766 0.22666h0.39424v1h-0.39424v-1z"/>
<path id="path5993" style="opacity:.7;fill:#686868" d="m-22.213 0.22666h0.75916v1h-0.75916v-1z"/>
<path id="path5991" style="opacity:.7;fill:#686868" d="m-21.295 0.22666h0.75916v1h-0.75916v-1z"/>
<path id="path5989" style="opacity:.7;fill:#686868" d="m-20.376 0.22666h1.2193v1h-1.2193v-1z"/>
<path id="path5981" style="opacity:.7;fill:#686868" d="m-25.666 2.2267h1.9967v1h-1.9967v-1z"/>
<path id="path5979" style="opacity:.7;fill:#686868" d="m-23.512 2.2267h2.1395v1h-2.1395v-1z"/>
<path id="path5977" style="opacity:.7;fill:#686868" d="m-21.216 2.2267h0.85436v1h-0.85436v-1z"/>
<path id="path5975" style="opacity:.7;fill:#686868" d="m-20.205 2.2267h2.0125v1h-2.0125v-1z"/>
<path id="path2916" style="opacity:.7;fill:#686868" d="m-25.666 6.2267h1.1241v1h-1.1241v-1z"/>
<path id="path2918" style="opacity:.7;fill:#686868" d="m-24.388 6.2267h1.0606v1h-1.0606v-1z"/>
<path id="path2920" style="opacity:.7;fill:#686868" d="m-23.175 6.2267h0.93368v1h-0.93368v-1z"/>
</g>
<path id="path2422" style="opacity:.15;fill:#0c0c0c;fill-rule:evenodd" d="m13.297 7.7055c-0.08415-0.04997-0.14927-0.03697-0.19229-0.0092l-5.7296 3.6801-1.0545 0.67922-0.03247 0.01374-1.2485 2.8377 3.0941 0.094 0.02569-0.01734 1.0613-0.67562 5.7281-3.7118c0.171-0.111-0.101-0.848-0.611-1.656-0.383-0.606-0.789-1.0846-1.041-1.2345z"/>
</g>
<g id="g8626" transform="matrix(.70258 0 0 .70426 5.0317 1.6629)">
<path id="path3041" style="stroke-linejoin:round;stroke:#0c0c0c;stroke-width:.60798;fill:url(#linearGradient3140)" d="m2.0488 11.037c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.0007708 0.0011 0.01977 0.01774 0.01898 0.01882l10.138-10.18c0.258-0.2581-0.213-1.1432-1.051-1.9744-0.838-0.8311-1.728-1.295-1.986-1.0366l-10.138 10.18z"/>
<path id="path3043" style="opacity:.8;stroke-linejoin:round;stroke:#e28ccd;stroke-width:.60798;fill:#ffb6ed" d="m10.565 2.4841c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000769 0.0011 0.01977 0.017738 0.01898 0.018821l1.552-1.5571c0.409-0.4086-0.029-1.0928-0.981-2.0447-0.813-0.8055-1.674-1.2696-1.96-1.0619l-0.02525 0.025356-1.6218 1.6271z"/>
<path id="path3045" style="opacity:.6;fill:#0c0c0c" d="m2.0488 11.037c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.0007714 0.0011 0.01977 0.01774 0.01898 0.01882l6.982-7.0109 0.02525-0.025356c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2885-0.247-1.1262-1.058-1.9298-0.812-0.8056-1.6734-1.2697-1.9599-1.062l-0.025251 0.025355-6.982 7.0109z"/>
<path id="path3047" style="fill:url(#linearGradient3142)" d="m9.1785 3.8767c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017736 0.01898 0.01882l0.12626-0.12678c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2892-0.246-1.1269-1.057-1.9305-0.812-0.8056-1.6737-1.2697-1.9602-1.062l-0.12626 0.12678z"/>
<path id="path3049" style="fill:url(#linearGradient3144)" d="m9.0628 3.9929c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017738 0.01898 0.018822l0.126-0.1268c0.00079-0.00108-0.01975-0.017721-0.01898-0.018821 0.203-0.2892-0.247-1.1269-1.058-1.9305-0.812-0.8056-1.6734-1.2697-1.9599-1.062l-0.1263 0.1268z"/>
<path id="path3051" style="fill:url(#linearGradient3146)" d="m9.5806 3.473c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.000773 0.0011 0.01977 0.017737 0.01898 0.01882l0.12626-0.12678c0.000791-0.00108-0.01975-0.017721-0.01898-0.01882 0.202-0.2892-0.247-1.1269-1.058-1.9306-0.812-0.8055-1.6736-1.2696-1.9601-1.0619l-0.1263 0.1268z"/>
<path id="path3053" style="fill:url(#linearGradient3148)" d="m9.4649 3.5891c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.000769 0.0011 0.01977 0.017737 0.01898 0.018821l0.12626-0.12678c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2892-0.247-1.1269-1.057-1.9305-0.813-0.8055-1.6743-1.2696-1.9608-1.0619l-0.1263 0.1267z"/>
<path id="path3055" style="fill:url(#linearGradient3150)" d="m9.9846 3.0673c0.2864-0.2077 1.1484 0.2564 1.9604 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.00077 0.0011 0.01977 0.017738 0.01898 0.018821l0.126-0.1268c0.000792-0.00108-0.01975-0.017721-0.01898-0.018821 0.202-0.2892-0.247-1.1269-1.058-1.9306-0.812-0.8055-1.674-1.2696-1.96-1.0619l-0.1264 0.1268z"/>
<path id="path3057" style="fill:url(#linearGradient3152)" d="m9.8689 3.1835c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017737 0.01898 0.018821l0.12626-0.12678c0.000789-0.00108-0.01975-0.017722-0.01898-0.018821 0.203-0.2892-0.247-1.1269-1.057-1.9306-0.813-0.8055-1.674-1.2696-1.9608-1.0619l-0.1263 0.1268z"/>
<path id="path3059" style="fill-rule:evenodd;stroke:url(#linearGradient3156);stroke-width:.60798;fill:url(#linearGradient3154)" d="m0.25981 15.794 4.7719-1.7255 0.039308-0.03926c0.2026-0.289-0.2524-1.127-1.0629-1.93-0.8124-0.806-1.6727-1.268-1.9592-1.06l-1.7891 4.755z"/>
<path id="path3061" style="fill-rule:evenodd;stroke:#0c0c0c;stroke-width:.60798;fill:#0c0c0c" d="m0.74443 14.506-0.48521 1.283 1.3014-0.473c-0.1137-0.134-0.2193-0.268-0.3544-0.402-0.1555-0.154-0.30705-0.281-0.46177-0.408z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2395" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2397">
<linearGradient id="linearGradient2427" y2="31.138" gradientUnits="userSpaceOnUse" x2="-93.088" gradientTransform="matrix(.42104 -.10139 .10080 .42350 44.055 -5.0894)" y1="2.0691" x1="-86.129">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2431" y2="39.78" gradientUnits="userSpaceOnUse" x2="20.494" gradientTransform="matrix(.41388 0 0 .41629 -1.7222 -1.7776)" y1="7.044" x1="20.494">
<stop id="stop3402" style="stop-color:#fff" offset="0"/>
<stop id="stop3404" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path1542" style="stroke-linejoin:round;stroke:#699536;stroke-linecap:round;stroke-width:1.0028;fill:url(#linearGradient2427)" d="m12.262 0.50446c-0.232-0.02365-0.462 0.09048-0.581 0.30958l-5.0718 9.333-3.2606-2.6075c-0.2904-0.1597-0.6528-0.057-0.8115 0.2352l-1.4622 1.8882c-0.1587 0.29213-0.051938 0.6565 0.2385 0.81613 0 0 5.9534 4.9457 5.9608 4.9493 0.068071 0.03741 0.13926 0.05624 0.21162 0.06544 0.23638 0.03004 0.47828-0.08166 0.59979-0.30532l6.8394-12.586c0.1587-0.29213 0.05194-0.6565-0.2385-0.81613l-2.194-1.2118c-0.073-0.03986-0.153-0.06176-0.23-0.06964z"/>
<path id="path2429" style="opacity:.4;stroke:url(#linearGradient2431);stroke-linecap:round;stroke-width:1.0028;fill:none" d="m12.312 1.6562-5.312 9.8128a0.15035 0.15035 0 0 1 0 0.031 0.15035 0.15035 0 0 1 -0.03125 0.03125 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 0.03125 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 -0.03125 0.15035 0.15035 0 0 1 -0.03125 0l-3.6562-2.906c-0.32388 0.40246-0.60092 0.77792-0.96875 1.25 0.1123 0.093077 1.303 1.09 2.625 2.1875 0.6912 0.57379 1.3815 1.1568 1.9062 1.5938 0.26235 0.21848 0.4994 0.39983 0.65625 0.53125 0.050142 0.04201 0.088455 0.06296 0.125 0.09375 0.052555-0.09355 0.10901-0.18055 0.25-0.4375 0.19196-0.34986 0.43971-0.83698 0.75-1.4062 0.62059-1.1385 1.4445-2.6103 2.25-4.0938 0.80552-1.4834 1.5812-2.9751 2.1875-4.0938 0.30316-0.55933 0.56868-1.0087 0.75-1.3438 0.14198-0.26236 0.21072-0.36449 0.25-0.4375-0.055-0.0314-0.1-0.0615-0.218-0.125-0.172-0.0919-0.379-0.1999-0.594-0.3126-0.215-0.1126-0.432-0.2271-0.594-0.3124-0.067-0.0354-0.141-0.0375-0.188-0.0626z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3251" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3253">
<linearGradient id="linearGradient2406" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2411" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2409" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
</radialGradient>
</defs>
<g id="layer1">
<g id="g3275">
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2411);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2409)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2463" style="opacity:.4;stroke:url(#linearGradient2406);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
</g>
<path id="path3360" style="opacity:.2" d="m3 8h10v-2h-10v2z"/>
<path id="path3249" style="fill:#fff" d="m3 9h10v-2h-10v2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg7384" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata90">
<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>Gnome Symbolic Icon Theme</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<title id="title9167">Gnome Symbolic Icon Theme</title>
<g id="layer9" transform="translate(-321,-257)">
<path id="path18112" style="color:#bebebe;enable-background:new;fill:#bebebe" d="m328.92 257.09c-0.5255-0.0286-1.0382 0.28305-1.4375 0.96875l-6.25 11.594c-0.53 0.97 0.05 2.35 1.1 2.35h13.156c0.98172 0 1.9031-1.1594 1.2188-2.3438l-6.32-11.54c-0.39872-0.64617-0.94325-1.0026-1.4688-1.0312zm-0.0313 3.9375c0.54448-0.0172 1.0485 0.48677 1.0312 1.0312v3.9375c0.007 0.52831-0.47163 1.0142-1 1.0142-0.52836 0-1.0075-0.48593-1-1.0142v-3.9375c-0.008-0.4666 0.3541-0.91253 0.8125-1 0.0511-0.0145 0.10345-0.025 0.15625-0.0313zm-0.9687 6.9688h2v2h-2v-2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4002" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs4004">
<linearGradient id="linearGradient3645" y2="15" xlink:href="#linearGradient3587-6-5-3" gradientUnits="userSpaceOnUse" x2="7.9995" gradientTransform="translate(-.99952 1)" y1="1" x1="7.9995"/>
<linearGradient id="linearGradient3653" y2="12" xlink:href="#linearGradient3587-6-5-3" gradientUnits="userSpaceOnUse" x2="8.9995" gradientTransform="translate(1.0005 1)" y1="3" x1="8.9995"/>
<linearGradient id="linearGradient3587-6-5-3">
<stop id="stop3589-9-2-2" offset="0"/>
<stop id="stop3591-7-4-73" style="stop-color:#363636" offset="1"/>
</linearGradient>
</defs>
<path id="path3655" style="opacity:.6;block-progression:tb;text-indent:0;color:#000000;text-transform:none;fill:#fff" d="m4.2192 5.0003-0.03125 0.03125c-0.13929 0.056469-0.26082 0.1559-0.34375 0.28125l-3 4.25c-0.18164 0.25295-0.18164 0.62205 0 0.875l3 4.25c0.082937 0.12535 0.20446 0.22478 0.34375 0.28125l0.03125 0.03125h0.125 0.15625c0.020821 0.000868 0.041679 0.000868 0.0625 0h9.9375 0.5v-0.5-9-0.5h-0.5-9.875-0.0625c-0.020821-0.0008682-0.041679-0.0008682-0.0625 0h-0.1875-0.09375zm0.9375 1h8.8438v8h-8.8125c-0.031927-0.06831-0.074226-0.13176-0.125-0.1875l-2.6875-3.8125 2.6875-3.8125c0.039807-0.057709 0.071467-0.12103 0.09375-0.1875z"/>
<path id="path3657" style="opacity:.6;block-progression:tb;text-indent:0;color:#bebebe;enable-background:new;text-transform:none;fill:#fff" d="m7.0036 7.0006h1c0.01037-0.00012 0.02079-0.00046 0.03125 0 0.25495 0.0112 0.50987 0.12858 0.6875 0.3125l1.2812 1.2812 1.3125-1.2812c0.26562-0.2305 0.44667-0.3055 0.6875-0.3125h1v1c0 0.28647-0.03434 0.55065-0.25 0.75l-1.2812 1.2813 1.25 1.25c0.18819 0.18817 0.28124 0.45345 0.28125 0.71875v1h-1c-0.2653-0.00001-0.53059-0.0931-0.71875-0.28125l-1.2812-1.2812-1.2812 1.2812c-0.18816 0.18819-0.45346 0.28125-0.71875 0.28125h-1v-1c-0.000003-0.26529 0.09306-0.53058 0.28125-0.71875l1.2812-1.25-1.2812-1.2813c-0.21074-0.19463-0.30316-0.46925-0.28125-0.75v-1z"/>
<path id="path2836" style="opacity:.7;block-progression:tb;text-indent:0;color:#000000;text-transform:none;fill:url(#linearGradient3645)" d="m4.2192 4-0.03125 0.03125c-0.1393 0.0565-0.2608 0.1559-0.3438 0.2813l-2.7002 4.25c-0.18164 0.25295-0.18164 0.62205 0 0.875l2.7002 4.25c0.082937 0.12535 0.20446 0.22478 0.34375 0.28125l0.0312 0.031h0.125 0.15625c0.020821 0.000868 0.041679 0.000868 0.0625 0h9.9375 0.5v-0.5-9-0.5h-0.5-9.875-0.0625c-0.020821-0.0008682-0.041679-0.0008682-0.0625 0h-0.1875-0.09375zm0.9375 1h8.8438v8h-8.8125c-0.031927-0.06831-0.074226-0.13176-0.125-0.1875l-2.687-3.812 2.6875-3.8125c0.0398-0.0577 0.0714-0.121 0.0937-0.1875z"/>
<path id="path10839" style="opacity:.7;block-progression:tb;text-indent:0;color:#bebebe;enable-background:new;text-transform:none;fill:url(#linearGradient3653)" d="m7.0036 6.0002h1c0.01037-0.00012 0.02079-0.00046 0.03125 0 0.25495 0.0112 0.50987 0.12858 0.6875 0.3125l1.2812 1.2812 1.3125-1.2812c0.26562-0.2305 0.44667-0.3055 0.6875-0.3125h1v1c0 0.28647-0.03434 0.55065-0.25 0.75l-1.2812 1.2812 1.25 1.25c0.18819 0.18817 0.28124 0.45345 0.28125 0.71875v1h-1c-0.2653-0.00001-0.53059-0.0931-0.71875-0.28125l-1.2812-1.2812-1.2813 1.2812c-0.18816 0.18819-0.45346 0.28125-0.71875 0.28125h-1v-1c-0.000003-0.26529 0.09306-0.53058 0.28125-0.71875l1.2811-1.2495-1.2812-1.2813c-0.21074-0.19463-0.30316-0.46925-0.28125-0.75v-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3691" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3693">
<linearGradient id="linearGradient4884" y2="224.68" gradientUnits="userSpaceOnUse" x2="31.341" y1="235.03" x1="31.341">
<stop id="stop4024-2-8" style="stop-color:#555753" offset="0"/>
<stop id="stop4026-8-3" style="stop-color:#babdb6" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3655" y2="225" gradientUnits="userSpaceOnUse" x2="23.5" y1="225" x1="34.5">
<stop id="stop2605-6" style="stop-color:#bb2b12" offset="0"/>
<stop id="stop2607-3" style="stop-color:#cd7233" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3663" y2="229" gradientUnits="userSpaceOnUse" x2="35.5" y1="229" x1="24.5">
<stop id="stop2612-7" style="stop-color:#f0c178" offset="0"/>
<stop id="stop2614-5" style="stop-color:#e18941" offset=".5"/>
<stop id="stop2616-9" style="stop-color:#ec4f18" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<g id="g4946" style="enable-background:new" transform="matrix(0,1,1,0,-219,-21.5)">
<g id="g4873" style="stroke:url(#linearGradient4884)">
<path id="path2932-4" style="stroke-linejoin:round;stroke-width:4;stroke:url(#linearGradient3655);stroke-linecap:round;enable-background:new;fill:none" d="m32 221-5.5 5.5 5.5 5.5"/>
</g>
<path id="path2932" style="stroke-linejoin:round;stroke:url(#linearGradient3663);stroke-linecap:round;stroke-width:2;fill:none" d="m32 221-5.5 5.5 5.5 5.5"/>
<path id="path2932-0-9-9" style="opacity:.4;stroke:#fff;stroke-linecap:round;enable-background:new;fill:none" d="m31.4 232-5.5-5.5 5.5-5.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2461" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2463">
<linearGradient id="linearGradient2457" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2788" style="stop-color:#1f4b6a" offset="0"/>
<stop id="stop2790" style="stop-color:#4083c2" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2455" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop2778" style="stop-color:#8badea" offset="0"/>
<stop id="stop2780" style="stop-color:#6396cd" offset=".26238"/>
<stop id="stop2782" style="stop-color:#3b7caf" offset=".66094"/>
<stop id="stop2784" style="stop-color:#194c70" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient2452" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2449" style="stroke-linejoin:round;stroke:url(#linearGradient2457);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2455)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2451" style="opacity:.4;stroke:url(#linearGradient2452);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
<path id="path3536" style="fill:#fff" d="m5.8809 7.6039c0.1112 0.2727 0.2329 0.4926 0.4614 0.176 0.291-0.1922 1.259-1.0222 1.1895-0.2449-0.2635 1.4439-0.5972 2.876-0.8384 4.323-0.2804 0.798 0.4546 1.481 1.1726 0.94 0.7716-0.361 1.4257-0.923 2.0961-1.441-0.1034-0.231-0.1794-0.565-0.4273-0.248-0.3352 0.171-1.0517 0.943-1.2144 0.337 0.2258-1.561 0.6984-3.0746 0.9775-4.6254 0.2848-0.7194-0.2609-1.5917-1.002-0.976-0.8996 0.4419-1.6391 1.1342-2.415 1.7593zm3.1923-5.3491c-0.936-0.0124-1.3641 1.536-0.46 1.9183 0.7319 0.2706 1.4868-0.5111 1.281-1.2531-0.07-0.3879-0.4276-0.6943-0.821-0.6652z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3247" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3249">
<linearGradient id="linearGradient2401" y2="34.225" gradientUnits="userSpaceOnUse" x2="24.104" gradientTransform="matrix(.70965 0 0 .70537 -8.945 -8.2363)" y1="15.181" x1="24.104">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3190" y2="16.004" gradientUnits="userSpaceOnUse" x2="8" x1="8">
<stop id="stop3182" style="stop-color:#fff" offset="0"/>
<stop id="stop3184" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2262" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#699536;fill:url(#linearGradient2401)" d="m5.5 5.5v-5h5v5h5v5h-5v5h-5v-5h-5v-5h5z"/>
<path id="path3188" style="opacity:.4;stroke:url(#linearGradient3190);fill:none" d="m6.5 1.5v4c-0.00481 0.55028-0.44972 0.99519-1 1h-4v3h4c0.55028 0.00481 0.99519 0.44972 1 1v4h3v-4c0.00481-0.55028 0.44972-0.99519 1-1h4v-3h-4c-0.5503-0.0048-0.9952-0.4497-1-1v-4h-3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3247" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3249">
<linearGradient id="linearGradient2401" y2="29.707" gradientUnits="userSpaceOnUse" x2="23.878" gradientTransform="matrix(.70965 0 0 .70537 -8.945 -8.2363)" y1="18.765" x1="23.878">
<stop id="stop3945" style="stop-color:#e35d4f" offset="0"/>
<stop id="stop3947" style="stop-color:#c6262e" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3190" y2="16.004" gradientUnits="userSpaceOnUse" x2="8" x1="8">
<stop id="stop3182" style="stop-color:#fff" offset="0"/>
<stop id="stop3184" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2262" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#a53738;fill:url(#linearGradient2401)" d="m15.5 5.5v5h-15v-5h15z"/>
<path id="path3188" style="opacity:.4;stroke:url(#linearGradient3190);fill:none" d="m1.5 6.5v3h13v-3h-13z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2829" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2831">
<linearGradient id="linearGradient3615">
<stop id="stop3617" style="stop-color:#eeeeec" offset="0"/>
<stop id="stop3619" style="stop-color:#babdb6" offset=".69580"/>
<stop id="stop3621" style="stop-color:#a1a59b" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2782">
<stop id="stop2784" style="stop-color:#fff" offset="0"/>
<stop id="stop2786" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3627" y2="45.849" xlink:href="#linearGradient3615" gradientUnits="userSpaceOnUse" x2="-11.448" gradientTransform="matrix(.36755 0 0 .36638 8.2056 -1.7938)" y1="10.344" x1="-11.448"/>
<linearGradient id="linearGradient3629" y2="52.94" xlink:href="#linearGradient2782" gradientUnits="userSpaceOnUse" x2="10.44" gradientTransform="matrix(.29583 0 0 .33661 8.2499 -1.1702)" y1="9.9657" x1="10.44"/>
<linearGradient id="linearGradient3635" y2="45.849" xlink:href="#linearGradient3615" gradientUnits="userSpaceOnUse" x2="-11.448" gradientTransform="matrix(.36755 0 0 .36638 16.206 -1.7938)" y1="10.344" x1="-11.448"/>
<linearGradient id="linearGradient3637" y2="52.94" xlink:href="#linearGradient2782" gradientUnits="userSpaceOnUse" x2="10.44" gradientTransform="matrix(.29583 0 0 .33661 16.25 -1.1702)" y1="9.9657" x1="10.44"/>
</defs>
<g id="layer1">
<path id="path3623" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#888a86;stroke-linecap:round;stroke-width:1.0007;fill:url(#linearGradient3627)" d="m1.5004 1.5004v12.999h4.9993v-12.999h-4.9993z"/>
<path id="path3625" style="opacity:0.41;stroke-opacity:.97255;stroke:url(#linearGradient3629);stroke-linecap:round;stroke-width:1.0013;fill:none" d="m2.5007 2.5007v10.999l2.9983-0.0154v-10.983h-2.9983z"/>
<path id="path3631" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#888a86;stroke-linecap:round;stroke-width:1.0007;fill:url(#linearGradient3635)" d="m9.5004 1.5004v12.999h4.9993v-12.999h-4.9993z"/>
<path id="path3633" style="opacity:0.41;stroke-opacity:.97255;stroke:url(#linearGradient3637);stroke-linecap:round;stroke-width:1.0013;fill:none" d="m10.501 2.5007v10.999l2.9983-0.0154v-10.983h-2.9983z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2397" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2399">
<linearGradient id="linearGradient2395" y2="43.878" gradientUnits="userSpaceOnUse" x2="18.037" gradientTransform="matrix(.42222 0 0 .38297 -3.1322 -1.1011)" y1="14.511" x1="18.037">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2392" y2="46.874" gradientUnits="userSpaceOnUse" x2="13.759" gradientTransform="matrix(.35126 0 0 .34884 -.99223 -.37226)" y1="14.66" x1="34.404">
<stop id="stop4224" style="stop-color:#fff" offset="0"/>
<stop id="stop4226" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path3375" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#548820;stroke-linecap:round;fill:url(#linearGradient2395)" d="m1.5 14.5v-13l13 6.5-13 6.5z"/>
<path id="path2294" style="opacity:0.41;stroke:url(#linearGradient2392);stroke-linecap:round;fill:none" d="m2.5 12.878v-9.778l9.841 4.9-9.841 4.878z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2528" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2530">
<linearGradient id="linearGradient2406" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2411" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2409" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
</radialGradient>
</defs>
<g id="layer1">
<g id="g2552">
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2411);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2409)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2463" style="opacity:.4;stroke:url(#linearGradient2406);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
</g>
<path id="path3243" style="opacity:.2;fill-rule:evenodd" d="m5.2625 3l-1.2625 1.2625 2.6047 2.5913c0.08 0.081 0.08 0.2114 0 0.2924l-2.6047 2.5913 1.2625 1.2625 2.5913-2.5914c0.081-0.08 0.2114-0.08 0.2924 0l2.5918 2.5914 1.262-1.2625-2.5914-2.5913c-0.08-0.081-0.08-0.2114 0-0.2924l2.5914-2.5913-1.262-1.2625-2.5918 2.5914c-0.081 0.08-0.2114 0.08-0.2924 0l-2.5913-2.5914z"/>
<path id="path3256" style="fill:#fff;fill-rule:evenodd" d="m5.2625 4l-1.2625 1.2625 2.6047 2.5913c0.08 0.081 0.08 0.2114 0 0.2924l-2.6047 2.5918 1.2625 1.262 2.5913-2.5914c0.081-0.08 0.2114-0.08 0.2924 0l2.5918 2.5914 1.262-1.262-2.5914-2.5918c-0.08-0.081-0.08-0.2114 0-0.2924l2.5914-2.5913-1.262-1.2625-2.5918 2.5914c-0.081 0.08-0.2114 0.08-0.2924 0l-2.5913-2.5914z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2987" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16px" width="16px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs id="defs2989">
<linearGradient id="linearGradient2880" y2="44" gradientUnits="userSpaceOnUse" x2="16.143" gradientTransform="matrix(.23078 0 0 .15386 2.4612 4.8074)" y1="4" x1="16.143">
<stop id="stop2225-6-4-7-2" style="stop-color:#fff" offset="0"/>
<stop id="stop2229-2-5-5-8" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2883" y2="24.628" gradientUnits="userSpaceOnUse" x2="20.055" gradientTransform="matrix(.30476 0 0 .32156 .68572 1.0807)" y1="15.298" x1="16.626">
<stop id="stop2687-1-9-0-2" style="stop-color:#fff" offset="0"/>
<stop id="stop2689-5-4-3-1" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2886" y2="16" xlink:href="#linearGradient3680-6" gradientUnits="userSpaceOnUse" x2="16" gradientTransform="matrix(.34286 0 0 .36364 -.42808 -.81818)" y1="27.045" x1="16"/>
<linearGradient id="linearGradient3680-6">
<stop id="stop3682-4" style="stop-color:#dcdcdc" offset="0"/>
<stop id="stop3684-8" style="stop-color:#fff" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2890" y2="26" xlink:href="#linearGradient3680-6" gradientUnits="userSpaceOnUse" x2="20" gradientTransform="matrix(.375 0 0 0.375 -.74978 -0.5)" y1="28" x1="20"/>
<linearGradient id="linearGradient2894" y2="47.279" gradientUnits="userSpaceOnUse" x2="12.213" gradientTransform="matrix(.28855 0 0 .25608 1.0743 2.6116)" y1="2.9165" x1="12.579">
<stop id="stop2240-1-6-7-0" style="stop-color:#fff" offset="0"/>
<stop id="stop2242-7-3-7-2" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2897" y2="33.296" gradientUnits="userSpaceOnUse" x2="23.071" gradientTransform="matrix(.33032 0 0 .32624 .074248 1.9649)" y1="36.047" x1="23.071">
<stop id="stop2225-6-4-7" style="stop-color:#fff" offset="0"/>
<stop id="stop2229-2-5-5" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2900" gradientUnits="userSpaceOnUse" cy="8.4498" cx="7.4957" gradientTransform="matrix(0 .47178 -.86826 -1.9907e-8 15.337 1.0829)" r="20">
<stop id="stop3790-0-0" style="stop-color:#505050" offset="0"/>
<stop id="stop3792-0-2" style="stop-color:#141414" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient2902" y2="44" gradientUnits="userSpaceOnUse" x2="16.143" gradientTransform="matrix(.28207 0 0 .20514 1.2304 3.5766)" y1="4" x1="16.143">
<stop id="stop3796-3-0" style="stop-color:#323232" offset="0"/>
<stop id="stop3798-8-6" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2983" y2="43.865" gradientUnits="userSpaceOnUse" y1="7.96" gradientTransform="matrix(.33330 0 0 .32429 .00075427 .06858)" x2="24" x1="24">
<stop id="stop4324-9-7" style="stop-color:#f0f0f0" offset="0"/>
<stop id="stop2860-4-4" style="stop-color:#d7d7d8" offset=".085525"/>
<stop id="stop2862-5-9" style="stop-color:#b2b2b3" offset=".92166"/>
<stop id="stop4326-1-1" style="stop-color:#979798" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2985" y2="2.8765" gradientUnits="userSpaceOnUse" y1="44.96" gradientTransform="matrix(.31912 0 0 .29298 .34112 1.4648)" x2="10.014" x1="10.014">
<stop id="stop4334-7-6" style="stop-color:#595959" offset="0"/>
<stop id="stop4336-8-0" style="stop-color:#b3b3b3" offset="1"/>
</linearGradient>
</defs>
<metadata id="metadata2992">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1">
<rect id="rect2551-5-8" style="stroke-linejoin:round;fill-rule:evenodd;stroke:url(#linearGradient2985);stroke-linecap:round;stroke-width:1.0021;fill:url(#linearGradient2983)" rx="1" ry="1" height="11.998" width="14.998" y="2.5011" x=".50107"/>
<rect id="rect1314-3-3" style="stroke-linejoin:round;color:#000000;stroke:url(#linearGradient2902);stroke-linecap:round;fill:url(#radialGradient2900)" rx="0" ry="0" height="8" width="11" y="4.5" x="2.5"/>
<rect id="rect2221-3-8" style="opacity:.4;stroke-linejoin:round;stroke:url(#linearGradient2897);stroke-linecap:round;stroke-width:1.0021;fill:none" rx="0" ry="0" height="9.9979" width="12.998" y="3.5011" x="1.501"/>
<rect id="rect2556-8-5" style="opacity:.8;stroke-linejoin:round;stroke:url(#linearGradient2894);stroke-linecap:round;stroke-width:1.0037;fill:none" height="9.9963" width="12.996" y="3.5019" x="1.5019"/>
<path id="path3651-2" style="fill:url(#linearGradient2890)" d="m9.0002 10v-0.75h-3v0.75h3z"/>
<path id="path3653-7" style="fill:url(#linearGradient2886)" d="m3.6862 9-0.6857-0.7273 1.5428-1.2727-1.5428-1.2727 0.6857-0.7273 2.3143 2-2.3143 2z"/>
<path id="path3333-3-0" style="opacity:.2;fill:url(#linearGradient2883);fill-rule:evenodd" d="m1.6667 3c-0.3683 0-0.6667 0.3149-0.6667 0.7034v5.145c0.0009545 0.043283 0.018837 0.084214 0.049602 0.11286 0.030769 0.028643 0.071495 0.04238 0.1123 0.037874l13.714-2.2911c0.071-0.0117 0.123-0.0754 0.124-0.1507v-2.8539c0-0.3885-0.298-0.7034-0.667-0.7034h-12.667z"/>
<rect id="rect1314-3-3-9" style="opacity:.1;stroke-linejoin:round;color:#000000;stroke:url(#linearGradient2880);stroke-linecap:round;fill:none" rx="0" ry="0" height="6" width="9" y="5.5" x="3.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

+155
View File
@@ -0,0 +1,155 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import lib.gui as gui
import PyQt5.QtCore as Core
import re
###############################################################################
# [Constants]
DEFAULT_FONT_QCOLOR = gui.generate_qcolor("black")
DEFAULT_BACKGROUND_QCOLOR = gui.generate_qcolor("white")
DEFAULT_LOGGER_FONT_QCOLOR = gui.generate_qcolor("blue")
ALL_MESSAGES_LEVEL = "all"
CUSTOM_MESSAGES_LEVEL = "custom"
MINIMAL_MESSAGES_LEVEL = "minimal"
PROCESS_MESSAGE_TYPE = "process"
APPLICATION_MESSAGE_TYPE = "application"
ERROR_FLAG = "error"
WARNING_FLAG = "warning"
INFO_FLAG = "info"
DEFAULT_FLAG = "default"
BACKGROUNDS_COLORS = {ERROR_FLAG: "red",
WARNING_FLAG: "yellow",
INFO_FLAG: "green",
DEFAULT_FLAG: "white"}
FONTS_COLORS = {ERROR_FLAG: "red",
WARNING_FLAG: "orange",
INFO_FLAG: "blue",
DEFAULT_FLAG: "black"}
ERROR_REGEX = re.compile(r"[Ee][Rr]{2}[Oo][Rr][ :]")
WARNING_REGEX = re.compile(r"[Ww][Aa][Rr][Nn][Ii][Nn][Gg][ :]")
INFO_REGEX = re.compile(r"[Ii][Nn][Ff][Oo][ :]")
def analyse_log_line(line):
if ERROR_REGEX.search(line) is not None:
flag = ERROR_FLAG
elif WARNING_REGEX.search(line) is not None:
flag = WARNING_FLAG
elif INFO_REGEX.search(line) is not None:
flag = INFO_FLAG
else:
flag = DEFAULT_FLAG
return line, flag
###############################################################################
# [Console class]
class Console(Core.QObject):
""" Class to define a Console object."""
def __init__(self, q_text_edit_widget):
super(Console, self).__init__()
self.edit = q_text_edit_widget
def write(self, line, font_color=DEFAULT_FONT_QCOLOR,
backgroud_color=DEFAULT_BACKGROUND_QCOLOR):
self.edit.setTextColor(font_color)
self.edit.setTextBackgroundColor(backgroud_color)
self.edit.append(line)
###############################################################################
# [LogFilter class]
class LogFilter(object):
"""Class to define a LogFilter object to manage the messages written in the
integrated console."""
def __init__(self, init_level_str, init_default_bool, init_info_bool,
init_warning_bool, init_error_bool):
"""
-> 'level' sets what sort of messages to display in the console and is
linked to the HMI radio-button choice.
-> 'info', 'warning' and 'error' are booleans to set what logs to
display in the console and is linked to the HMI check-boxes.
"""
self.level = init_level_str
self.default = init_default_bool
self.info = init_info_bool
self.warning = init_warning_bool
self.error = init_error_bool
def __repr__(self):
string = "\t| level = {!s:<10} | default = {!s:<5} | info = {!s:<5} |"\
" warning = {!s:<5} | error = {!s:<5} |"
format_string = string.format(self.level, self.default, self.info,
self.warning, self.error)
return format_string
def set_level(self, level):
"""
:param level:
-> level = 'minimum' (only important messages)
'basic' (customized messages)
'all' (all messages emitted by Makefiles and compilers).
"""
self.level = level
def set_sensitivity_filter(self, default, info, warning, error):
"""
:param default:
:param info:
:param warning:
:param error:
-> info, warnings and error are booleans.
"""
self.default = default
self.info = info
self.warning = warning
self.error = error
def write_line_decision(self, flag):
if flag == ERROR_FLAG and self.error:
return True
elif flag == WARNING_FLAG and self.warning:
return True
elif flag == INFO_FLAG and self.info:
return True
elif flag == DEFAULT_FLAG and self.default:
return True
else:
return False
+161
View File
@@ -0,0 +1,161 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
###############################################################################
# [Configuration class]
class Configuration(object):
"""Class to define a Configuration (old aircraft) object."""
def __init__(self, name, config_id, airframes, targets):
# Necessary parameters :
self.name = name
self.id = config_id
self.airframes = airframes
# Not necessary parameters :
self.settings = []
self.modules = []
self.flight_plan = []
self.radio = []
self.telemetry = []
self.color = []
self.targets = targets
def __repr__(self):
string = "| name = {!s:<25} | id = {!s:<3} | airframe = {!s:<65} |" + \
"targets = {!s:<250} | color = {!s:<15} | " + \
"radio = {!s:<40} | telemetry = {!s:<45} | " + \
"flight_plan = {!s:<75} | settings = {!s:<265} | " + \
"modules = {!s:<265} |"
format_string = string.format(self.name, self.id, self.airframes,
[_ for _ in self.targets.values()],
self.color, self.radio,
self.telemetry, self.flight_plan,
self.settings, self.modules)
return format_string
###############################################################################
# [Set class]
class Set(object):
"""Class to define a Set (old configuration) object."""
def __init__(self, name):
self.name = name
self.configs_names = []
def __repr__(self):
string = "| name = {!s:<75} | configs_names = {!s:<680} |"
format_string = string.format(self.name, self.configs_names)
return format_string
def is_config_in_set(self, config):
return config.id in self.configs_names
###############################################################################
# [Target class]
class Target(object):
"""Class to define a Target object."""
def __init__(self, name, board, ):
self.name = name
self.board = board
self.subsystems = None
self.defines = None
def __repr__(self):
string = "| name = {!s:<15} | board = {!s:<20} |"
format_string = string.format(self.name, self.board)
return format_string
###############################################################################
# [Device class]
class Device(object):
"""Class to define a Device (old flash mode) object."""
def __init__(self, name, variable_name="", variable_value=""):
self.name = name
self.variable = (variable_name, variable_value)
self.boards_regex = []
def __repr__(self):
string = "| name = {!s:<25} | variable = {!s:<35} | " + \
"boards_regex = {!s:<125} |"
format_string = string.format(self.name, self.variable,
self.boards_regex)
return format_string
###############################################################################
# [Session class]
class Session(object):
"""Class to define a Session object."""
def __init__(self, name, programs):
self.name = name
self.programs = programs
def __repr__(self):
string = "| name = {!s:<30} | programs = {!s:<1300} |"
format_string = string.format(self.name,
[_ for _ in self.programs.values()])
return format_string
###############################################################################
# [Program class]
class Program(object):
"""Class to define a Program (old tool) object."""
def __init__(self, name, command, options):
self.name = name
self.command = command
self.options = options
def __repr__(self):
string = "\t| name = {!s:<30} | command = {!s:<60} | options = {!s:<70} |"
format_string = string.format(self.name, self.command, self.options)
return format_string
###############################################################################
# [Cache class]
class Cache(object):
"""Class to define a Cache (old %gconf) object."""
def __init__(self, last_update_time):
self.last_update = last_update_time
self.main_window_shape = (0, 0)
self.last_set = None
self.last_configuration = None
self.last_target = None
self.last_session = None
self.last_device = None
@@ -0,0 +1,15 @@
<cache>
- <system>
- <window>
- <geometry value="100 100 1026 448" />
- </window>
- <filters value="all 2 2 2 2" />
- </system>
- <data>
- <set value="conf_example.xml" />
- <config value="Microjet" />
- <target value="sim" />
- <device value=" __Default__ " />
- <session value="Simulation" />
- </data>
-</cache>
+91
View File
@@ -0,0 +1,91 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import os
from sys import platform as os_name
import logging
###############################################################################
# [Constants]
LOGGER = logging.getLogger("[ENV]")
OS = os_name
SRC_NAME = "PAPARAZZI_SRC"
HERE_TO_SRC = "../../../.."
CONF_NAME = "PAPARAZZI_CONF"
HOME_TO_CONF = "conf"
HOME_NAME = "PAPARAZZI_HOME"
HOME_TO_VAR = "var"
IVY_BUS_NAME = "IVY_BUS"
def get_src_dir(src_name):
current_dir = os.path.dirname(os.path.abspath(__file__))
src_dir = os.path.normpath(os.path.join(current_dir, HERE_TO_SRC))
return os.getenv(src_name, src_dir)
PAPARAZZI_SRC = get_src_dir(SRC_NAME)
LOGGER.debug("%s=%s", SRC_NAME, PAPARAZZI_SRC)
def get_home_dir(home_name):
return os.getenv(home_name, get_src_dir(SRC_NAME))
PAPARAZZI_HOME = get_home_dir(HOME_NAME)
LOGGER.info("%s=%s", HOME_NAME, PAPARAZZI_HOME)
def get_conf_dir(conf_name):
conf_dir = os.path.join(PAPARAZZI_HOME, HOME_TO_CONF)
if os.path.exists(conf_dir):
return os.getenv(conf_name, conf_dir)
else:
LOGGER.error("'%s' directory doesn't exist !", conf_dir)
PAPARAZZI_CONF = get_conf_dir(CONF_NAME)
def get_ivy_bus(ivy_bus_name):
supposed_ivy_bus = os.getenv(ivy_bus_name)
if supposed_ivy_bus is not None:
return supposed_ivy_bus
elif OS == 'linux':
return "127.255.255.255:2010"
elif OS == 'linux2':
return "127.255.255.255:2010"
elif OS == 'darwin':
return "224.5.6.7:8910"
LOGGER.error("Unknown Ivy bus for the current OS !")
IVY_BUS = get_ivy_bus(IVY_BUS_NAME)
LOGGER.debug("%s=%s", HOME_NAME, PAPARAZZI_HOME)
RUN_VERSION_EXE_NAME = "paparazzi_version"
RUN_VERSION_EXE = os.path.join(PAPARAZZI_HOME, RUN_VERSION_EXE_NAME)
BUILD_VERSION_FILE_NAME = "build_version.txt"
BUILD_VERSION_FILE = os.path.join(PAPARAZZI_HOME, HOME_TO_VAR,
BUILD_VERSION_FILE_NAME)
+69
View File
@@ -0,0 +1,69 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import PyQt5.QtGui as Gui
###############################################################################
# [Constants]
NORMAL_CURSOR_SHAPE = "normal"
WAIT_CURSOR_SHAPE = "wait"
###############################################################################
# [Functions]
def generate_qcolor(color):
qcolor = Gui.QColor()
qcolor.setNamedColor(color)
return qcolor
def generate_widget_palette(widget, qcolor):
qpalette = Gui.QPalette(widget.palette())
qpalette.setColor(Gui.QPalette.Background, qcolor)
return qpalette
def generate_qcursor(shape):
qcursor = Gui.QCursor()
if shape == WAIT_CURSOR_SHAPE:
qcursor.setShape(16)
elif shape == NORMAL_CURSOR_SHAPE:
qcursor.setShape(0)
else:
qcursor.setShape(0)
return qcursor
def generate_qpixmap(picture_path=""):
return Gui.QPixmap(picture_path)
def generate_qicon(icon_path=None):
if icon_path is not None:
return Gui.QIcon(icon_path)
else:
return Gui.QIcon()
+56
View File
@@ -0,0 +1,56 @@
#!/usr/bin/env python3
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import lib.environment as env
import hmi
import PyQt5.QtWidgets as Widgets
import sys
import os
###############################################################################
# [Main function]
def main():
"""Main program : creates the main window and starts the main loop."""
# Set the environment variables (useful for some processes) :
os.putenv(env.HOME_NAME, env.PAPARAZZI_HOME)
os.putenv(env.SRC_NAME, env.PAPARAZZI_SRC)
app = Widgets.QApplication(sys.argv)
# TODO : SET APPLICATION ICON IN THE LAUNCHER (UBUNTU : UNITY)
main_window = hmi.Hmi()
main_window.init_all_hmi()
main_window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
File diff suppressed because it is too large Load Diff
+238
View File
@@ -0,0 +1,238 @@
# Paparazzi center utilities
#
# Copyright (C) 2016 ENAC, Florian BITARD (intern student)
#
# This file is part of paparazzi.
#
# paparazzi 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 2, or (at your option)
# any later version.
#
# paparazzi 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 paparazzi; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
###############################################################################
# [Imports]
import lib.environment as env
import lib.console as cs
import PyQt5.QtCore as Core
import logging
import os
import signal
###############################################################################
# [Constants]
LOGGER = logging.getLogger("[PROCESSES]")
AC_MAKEFILE_NAME = "Makefile.ac"
CONF_FLAG_NAME = "AIRCRAFT"
DEVICE_FLAG_NAME = "FLASH_MODE"
DEFAULT_EXIT_CODE = 2
INTERRUPTED_EXIT_CODE = -1
SUCCESS_EXIT_CODE = 0
CLEAN = "clean"
BUILD = "build"
UPLOAD = "upload"
PROGRAM = "program"
TOOL = "tool"
CLEAN_TARGET_KEY = "clean_ac"
BUILD_TARGET_KEY = ".compile"
UPLOAD_TARGET_KEY = ".upload"
CONF_FLAG = "@" + CONF_FLAG_NAME
TARGET_FLAG = "@TARGET"
CONF_ID_FLAG = "@AC_ID"
###############################################################################
# [Stream class]
class LoggerStream(Core.QObject):
""" Class to define a Stream object."""
logger_log_sent = Core.pyqtSignal(str, str, str)
def __init__(self):
super(LoggerStream, self).__init__()
# Reimplemented method in order to write the logs in the console :
def write(self, line):
log, flag = cs.analyse_log_line(line)
log_type = cs.APPLICATION_MESSAGE_TYPE
self.logger_log_sent.emit(log, flag, log_type)
###############################################################################
# [Process class]
class Process(Core.QObject):
"""Class to upload the built code to a device."""
process_killed = Core.pyqtSignal()
process_log_sent = Core.pyqtSignal(str, str, str)
def __init__(self, process_type,
configuration=None, target=None, device=None, program=None):
"""
:param process_type:
:param configuration:
:param target:
:param device:
:param program:
-> Declare a Process object as a QObject derivative.
-> Give it a name and the necessary parameters for its type.
-> Generate a command for the system call by the Popen object that
manages the subprocess and allows to redirect the output.
-> The process runs into an independent thread.
-> A queue is used to collect the logs from the Popen output and
an other one is used to send it to the QTextEdit integrated console.
-> Logs flags are collected for information.
-> Exit code is initialized to default value. Must change in case of
normal exit, error or user interruption.
"""
super(Process, self).__init__()
self.type = process_type
self.name = None
self.config = configuration
self.target = target
self.device = device
self.program = program
if self.type == CLEAN:
self.command = self.generate_make_command(CLEAN_TARGET_KEY)
self.name = " - ".join([self.type.upper(),
self.config.name])
elif self.type == BUILD:
self.command = self.generate_make_command(BUILD_TARGET_KEY)
self.name = " - ".join([self.type.upper(), self.config.name,
self.target.name])
elif self.type == UPLOAD:
self.command = self.generate_make_command(UPLOAD_TARGET_KEY)
self.name = " - ".join([self.type.upper(), self.config.name,
self.target.name, self.device.name])
else:
self.command = self.generate_program_command()
self.name = " - ".join([self.type.upper(),
self.program.name])
self.subprocess = Core.QProcess()
self.subprocess.setProcessChannelMode(Core.QProcess.MergedChannels)
self.subprocess.setReadChannel(Core.QProcess.StandardOutput)
self.process_killed.connect(self.emergency_stop)
self.exit_code = DEFAULT_EXIT_CODE
self.flags = {cs.ERROR_FLAG: 0,
cs.WARNING_FLAG: 0,
cs.INFO_FLAG: 0}
def generate_make_command(self, target_key):
"""
:param target_key:
-> Generate a system command to compile files by a Makefile and
putting the right arguments if given.
"""
if self.config is not None:
aircraft_term = CONF_FLAG_NAME + "=" + self.config.name
if self.target is not None:
target_key = self.target.name + target_key
command_terms = ["make", "-C", env.PAPARAZZI_HOME, "-f",
AC_MAKEFILE_NAME,
aircraft_term, target_key]
if self.device is not None and self.device.variable[1]:
device_term = DEVICE_FLAG_NAME + "=" + self.device.variable[1]
command_terms.insert(-1, device_term)
return " ".join(command_terms)
def generate_program_command(self):
"""
-> Generate a system command to run a program and add its options
if it has some.
"""
if self.program is not None:
full_command = os.path.join(env.PAPARAZZI_HOME,
self.program.command)
for option in self.program.options:
if type(option) is tuple:
flag, value = option
if value == CONF_FLAG:
full_command += " " + flag + " " + self.config.name
elif value == TARGET_FLAG:
full_command += " " + flag + " " + self.target.name
elif value == CONF_ID_FLAG:
full_command += " " + flag + " " + self.config.id
else:
full_command += " " + flag + " " + value
else:
full_command += " " + option
return full_command
def check_before_start(self):
# TODO IF NECESSARY !!!
return self == self
def start(self):
"""
-> Start the thread => start the worker => call the run method.
"""
LOGGER.info("'%s' process running ... (command='%s')",
self.name, self.command)
self.subprocess.start(self.command)
self.subprocess.readyReadStandardOutput.connect(self.send_text)
self.subprocess.finished.connect(self.finish_process)
def send_text(self):
"""
-> Analyse an process output line to find a flag in it.
-> Send the item by the sending queue object.
-> Collect the flag found.
"""
q_byte_array = self.subprocess.readAllStandardOutput()
string = str(q_byte_array, encoding="utf-8").strip()
for line in string.split("\n"):
log, flag = cs.analyse_log_line(line)
log_type = cs.PROCESS_MESSAGE_TYPE
self.process_log_sent.emit(log, flag, log_type)
if flag != cs.DEFAULT_FLAG:
self.flags[flag] += 1
def finish_process(self):
"""
-> If the process finished, get the exit code.
-> Else, the process crashed...
"""
if self.subprocess.exitStatus() == Core.QProcess.NormalExit:
self.exit_code = self.subprocess.exitCode()
LOGGER.info("'%s' process finished with exit code %s.\n",
self.name, self.exit_code)
else:
self.exit_code = INTERRUPTED_EXIT_CODE
LOGGER.error("'%s' process crashed, probably stopped by user !\n",
self.name)
def emergency_stop(self):
"""
-> Kill the subprocess by getting its ProcessID.
"""
os.kill(self.subprocess.pid(), signal.SIGKILL)
+16
View File
@@ -0,0 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<header>
<img src="icons/penguin_icon.png" alt="Paparazzi UAV icon unreachable..."/>
<h1 align="center">Paparazzi Center</h1>
<p align="center"><i>(Python/Qt version)</i></p>
</header>
<p align="center">Copyright (C) 2007-2008 ENAC, Pascal Brisset</p>
<p align="center">License GPLv2</p>
<p align="center"><a href="http://paparazziuav.org">http://paparazziuav.org</a></p>
</body>
</html>
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<header>
<b>/!\ WARNING :</b>
</header>
<p>Values have been modified locally but not into the original XML files...</p>
<p>Do you want to save or ignore them ?</p>
</body>
</html>
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg7698" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs7700">
<linearGradient id="linearGradient3140" y2="31.211" gradientUnits="userSpaceOnUse" x2="23.576" gradientTransform="matrix(.41578 -.41749 .51898 .51462 -15.747 2.6504)" y1="25.357" x1="23.576">
<stop id="stop2541" style="stop-color:#181818" offset="0"/>
<stop id="stop2543" style="stop-color:#dbdbdb" offset=".13483"/>
<stop id="stop2545" style="stop-color:#a4a4a4" offset=".20224"/>
<stop id="stop2547" style="stop-color:#fff" offset=".26966"/>
<stop id="stop2549" style="stop-color:#8d8d8d" offset=".44650"/>
<stop id="stop2551" style="stop-color:#959595" offset=".57114"/>
<stop id="stop2553" style="stop-color:#cecece" offset=".72038"/>
<stop id="stop2555" style="stop-color:#181818" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3142" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.868 .69303)" y1="24.99" x1="30.038">
<stop id="stop2559" style="stop-color:#565656" offset="0"/>
<stop id="stop2561" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2563" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3144" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.983 .80921)" y1="24.99" x1="30.038">
<stop id="stop2567" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2569" style="stop-color:#fff" offset=".5"/>
<stop id="stop2571" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3146" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.466 .28929)" y1="24.99" x1="30.038">
<stop id="stop2575" style="stop-color:#565656" offset="0"/>
<stop id="stop2577" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2579" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3148" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.581 .40547)" y1="24.99" x1="30.038">
<stop id="stop2583" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2585" style="stop-color:#fff" offset=".5"/>
<stop id="stop2587" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3150" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.062 -.11641)" y1="24.99" x1="30.038">
<stop id="stop2591" style="stop-color:#565656" offset="0"/>
<stop id="stop2593" style="stop-color:#9a9a9a" offset=".5"/>
<stop id="stop2595" style="stop-color:#545454" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3152" y2="30" gradientUnits="userSpaceOnUse" x2="30.038" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.177 -.00021970)" y1="24.99" x1="30.038">
<stop id="stop2599" style="stop-color:#b1b1b1" offset="0"/>
<stop id="stop2601" style="stop-color:#fff" offset=".5"/>
<stop id="stop2603" style="stop-color:#8f8f8f" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3154" y2="26.03" gradientUnits="userSpaceOnUse" x2="9" gradientTransform="matrix(.40402 -.40569 .60738 .60227 -17.637 .46249)" y1="29.057" x1="9">
<stop id="stop2607" style="stop-color:#ece5a5" offset="0"/>
<stop id="stop2609" style="stop-color:#fcfbf2" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3156" y2="41.392" gradientUnits="userSpaceOnUse" x2="9.5221" gradientTransform="matrix(.37638 .036153 0.0367 .37487 -2.2183 -1.1331)" y1="37.372" x1="5.5179">
<stop id="stop2613" style="stop-color:#dbce48" offset="0"/>
<stop id="stop2615" style="stop-color:#c5b625" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3735" y2="2.001" gradientUnits="userSpaceOnUse" x2="2" y1="18.001" x1="2">
<stop id="stop3106-1" style="stop-color:#969696" offset="0"/>
<stop id="stop3108-2" style="stop-color:#bebebe" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3737" y2="17.001" gradientUnits="userSpaceOnUse" x2="6" y1="4.001" x1="6">
<stop id="stop3602-9" style="stop-color:#fff" offset="0"/>
<stop id="stop3604-4" style="stop-color:#e6e6e6" offset="1"/>
</linearGradient>
</defs>
<g id="g3433">
<g id="layer1-3" transform="translate(0 -2.001)">
<path id="path2855" style="stroke-linejoin:round;stroke:url(#linearGradient3735);stroke-linecap:round;fill:url(#linearGradient3737)" d="m0.54277 2.501 12.957 0.01 0.042 14.99h-12.999l-1e-8 -15z"/>
<g id="g4198" style="fill:#999" transform="matrix(1.0195 0 0 1 29.21 6.7744)">
<path id="path6035" style="opacity:.7;fill:#686868" d="m-25.666-1.7733h1.1241v1h-1.1241v-1z"/>
<path id="path6033" style="opacity:.7;fill:#686868" d="m-24.388-1.7733h1.0606v1h-1.0606v-1z"/>
<path id="path6031" style="opacity:.7;fill:#686868" d="m-23.175-1.7733h0.93368v1h-0.93368v-1z"/>
<path id="path6029" style="opacity:.7;fill:#686868" d="m-22.088-1.7733h0.41011v1h-0.41011v-1z"/>
<path id="path6027" style="opacity:.7;fill:#686868" d="m-21.525-1.7733h0.91782v1h-0.91782v-1z"/>
<path id="path6025" style="opacity:.7;fill:#686868" d="m-20.454-1.7733h2.3775v1h-2.3775v-1z"/>
<path id="path6017" style="opacity:.7;fill:#686868" d="m-25.666 4.2267h1.1241v1h-1.1241v-1z"/>
<path id="path6015" style="opacity:.7;fill:#686868" d="m-24.388 4.2267h1.0606v1h-1.0606v-1z"/>
<path id="path6013" style="opacity:.7;fill:#686868" d="m-23.175 4.2267h0.93368v1h-0.93368v-1z"/>
<path id="path6011" style="opacity:.7;fill:#686868" d="m-22.088 4.2267h0.41011v1h-0.41011v-1z"/>
<path id="path6009" style="opacity:.7;fill:#686868" d="m-21.525 4.2267h0.91781v1h-0.91781v-1z"/>
<path id="path5999" style="opacity:.7;fill:#686868" d="m-25.666 0.22666h1.7428v1h-1.7428v-1z"/>
<path id="path5997" style="opacity:.7;fill:#686868" d="m-23.764 0.22666h0.83849v1h-0.83849v-1z"/>
<path id="path5995" style="opacity:.7;fill:#686868" d="m-22.766 0.22666h0.39424v1h-0.39424v-1z"/>
<path id="path5993" style="opacity:.7;fill:#686868" d="m-22.213 0.22666h0.75916v1h-0.75916v-1z"/>
<path id="path5991" style="opacity:.7;fill:#686868" d="m-21.295 0.22666h0.75916v1h-0.75916v-1z"/>
<path id="path5989" style="opacity:.7;fill:#686868" d="m-20.376 0.22666h1.2193v1h-1.2193v-1z"/>
<path id="path5981" style="opacity:.7;fill:#686868" d="m-25.666 2.2267h1.9967v1h-1.9967v-1z"/>
<path id="path5979" style="opacity:.7;fill:#686868" d="m-23.512 2.2267h2.1395v1h-2.1395v-1z"/>
<path id="path5977" style="opacity:.7;fill:#686868" d="m-21.216 2.2267h0.85436v1h-0.85436v-1z"/>
<path id="path5975" style="opacity:.7;fill:#686868" d="m-20.205 2.2267h2.0125v1h-2.0125v-1z"/>
<path id="path2916" style="opacity:.7;fill:#686868" d="m-25.666 6.2267h1.1241v1h-1.1241v-1z"/>
<path id="path2918" style="opacity:.7;fill:#686868" d="m-24.388 6.2267h1.0606v1h-1.0606v-1z"/>
<path id="path2920" style="opacity:.7;fill:#686868" d="m-23.175 6.2267h0.93368v1h-0.93368v-1z"/>
</g>
<path id="path2422" style="opacity:.15;fill:#0c0c0c;fill-rule:evenodd" d="m13.297 7.7055c-0.08415-0.04997-0.14927-0.03697-0.19229-0.0092l-5.7296 3.6801-1.0545 0.67922-0.03247 0.01374-1.2485 2.8377 3.0941 0.094 0.02569-0.01734 1.0613-0.67562 5.7281-3.7118c0.171-0.111-0.101-0.848-0.611-1.656-0.383-0.606-0.789-1.0846-1.041-1.2345z"/>
</g>
<g id="g8626" transform="matrix(.70258 0 0 .70426 5.0317 1.6629)">
<path id="path3041" style="stroke-linejoin:round;stroke:#0c0c0c;stroke-width:.60798;fill:url(#linearGradient3140)" d="m2.0488 11.037c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.0007708 0.0011 0.01977 0.01774 0.01898 0.01882l10.138-10.18c0.258-0.2581-0.213-1.1432-1.051-1.9744-0.838-0.8311-1.728-1.295-1.986-1.0366l-10.138 10.18z"/>
<path id="path3043" style="opacity:.8;stroke-linejoin:round;stroke:#e28ccd;stroke-width:.60798;fill:#ffb6ed" d="m10.565 2.4841c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000769 0.0011 0.01977 0.017738 0.01898 0.018821l1.552-1.5571c0.409-0.4086-0.029-1.0928-0.981-2.0447-0.813-0.8055-1.674-1.2696-1.96-1.0619l-0.02525 0.025356-1.6218 1.6271z"/>
<path id="path3045" style="opacity:.6;fill:#0c0c0c" d="m2.0488 11.037c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.0007714 0.0011 0.01977 0.01774 0.01898 0.01882l6.982-7.0109 0.02525-0.025356c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2885-0.247-1.1262-1.058-1.9298-0.812-0.8056-1.6734-1.2697-1.9599-1.062l-0.025251 0.025355-6.982 7.0109z"/>
<path id="path3047" style="fill:url(#linearGradient3142)" d="m9.1785 3.8767c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017736 0.01898 0.01882l0.12626-0.12678c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2892-0.246-1.1269-1.057-1.9305-0.812-0.8056-1.6737-1.2697-1.9602-1.062l-0.12626 0.12678z"/>
<path id="path3049" style="fill:url(#linearGradient3144)" d="m9.0628 3.9929c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017738 0.01898 0.018822l0.126-0.1268c0.00079-0.00108-0.01975-0.017721-0.01898-0.018821 0.203-0.2892-0.247-1.1269-1.058-1.9305-0.812-0.8056-1.6734-1.2697-1.9599-1.062l-0.1263 0.1268z"/>
<path id="path3051" style="fill:url(#linearGradient3146)" d="m9.5806 3.473c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.000773 0.0011 0.01977 0.017737 0.01898 0.01882l0.12626-0.12678c0.000791-0.00108-0.01975-0.017721-0.01898-0.01882 0.202-0.2892-0.247-1.1269-1.058-1.9306-0.812-0.8055-1.6736-1.2696-1.9601-1.0619l-0.1263 0.1268z"/>
<path id="path3053" style="fill:url(#linearGradient3148)" d="m9.4649 3.5891c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.000769 0.0011 0.01977 0.017737 0.01898 0.018821l0.12626-0.12678c0.00079-0.00108-0.01975-0.01772-0.01898-0.01882 0.203-0.2892-0.247-1.1269-1.057-1.9305-0.813-0.8055-1.6743-1.2696-1.9608-1.0619l-0.1263 0.1267z"/>
<path id="path3055" style="fill:url(#linearGradient3150)" d="m9.9846 3.0673c0.2864-0.2077 1.1484 0.2564 1.9604 1.0619 0.81045 0.80363 1.2602 1.6413 1.0576 1.9306-0.00077 0.0011 0.01977 0.017738 0.01898 0.018821l0.126-0.1268c0.000792-0.00108-0.01975-0.017721-0.01898-0.018821 0.202-0.2892-0.247-1.1269-1.058-1.9306-0.812-0.8055-1.674-1.2696-1.96-1.0619l-0.1264 0.1268z"/>
<path id="path3057" style="fill:url(#linearGradient3152)" d="m9.8689 3.1835c0.28654-0.20771 1.148 0.25639 1.9603 1.0619 0.81044 0.80363 1.2602 1.6413 1.0576 1.9306-0.000771 0.0011 0.01977 0.017737 0.01898 0.018821l0.12626-0.12678c0.000789-0.00108-0.01975-0.017722-0.01898-0.018821 0.203-0.2892-0.247-1.1269-1.057-1.9306-0.813-0.8055-1.674-1.2696-1.9608-1.0619l-0.1263 0.1268z"/>
<path id="path3059" style="fill-rule:evenodd;stroke:url(#linearGradient3156);stroke-width:.60798;fill:url(#linearGradient3154)" d="m0.25981 15.794 4.7719-1.7255 0.039308-0.03926c0.2026-0.289-0.2524-1.127-1.0629-1.93-0.8124-0.806-1.6727-1.268-1.9592-1.06l-1.7891 4.755z"/>
<path id="path3061" style="fill-rule:evenodd;stroke:#0c0c0c;stroke-width:.60798;fill:#0c0c0c" d="m0.74443 14.506-0.48521 1.283 1.3014-0.473c-0.1137-0.134-0.2193-0.268-0.3544-0.402-0.1555-0.154-0.30705-0.281-0.46177-0.408z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2395" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2397">
<linearGradient id="linearGradient2427" y2="31.138" gradientUnits="userSpaceOnUse" x2="-93.088" gradientTransform="matrix(.42104 -.10139 .10080 .42350 44.055 -5.0894)" y1="2.0691" x1="-86.129">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2431" y2="39.78" gradientUnits="userSpaceOnUse" x2="20.494" gradientTransform="matrix(.41388 0 0 .41629 -1.7222 -1.7776)" y1="7.044" x1="20.494">
<stop id="stop3402" style="stop-color:#fff" offset="0"/>
<stop id="stop3404" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path1542" style="stroke-linejoin:round;stroke:#699536;stroke-linecap:round;stroke-width:1.0028;fill:url(#linearGradient2427)" d="m12.262 0.50446c-0.232-0.02365-0.462 0.09048-0.581 0.30958l-5.0718 9.333-3.2606-2.6075c-0.2904-0.1597-0.6528-0.057-0.8115 0.2352l-1.4622 1.8882c-0.1587 0.29213-0.051938 0.6565 0.2385 0.81613 0 0 5.9534 4.9457 5.9608 4.9493 0.068071 0.03741 0.13926 0.05624 0.21162 0.06544 0.23638 0.03004 0.47828-0.08166 0.59979-0.30532l6.8394-12.586c0.1587-0.29213 0.05194-0.6565-0.2385-0.81613l-2.194-1.2118c-0.073-0.03986-0.153-0.06176-0.23-0.06964z"/>
<path id="path2429" style="opacity:.4;stroke:url(#linearGradient2431);stroke-linecap:round;stroke-width:1.0028;fill:none" d="m12.312 1.6562-5.312 9.8128a0.15035 0.15035 0 0 1 0 0.031 0.15035 0.15035 0 0 1 -0.03125 0.03125 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 0.03125 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 0 0.15035 0.15035 0 0 1 -0.03125 -0.03125 0.15035 0.15035 0 0 1 -0.03125 0l-3.6562-2.906c-0.32388 0.40246-0.60092 0.77792-0.96875 1.25 0.1123 0.093077 1.303 1.09 2.625 2.1875 0.6912 0.57379 1.3815 1.1568 1.9062 1.5938 0.26235 0.21848 0.4994 0.39983 0.65625 0.53125 0.050142 0.04201 0.088455 0.06296 0.125 0.09375 0.052555-0.09355 0.10901-0.18055 0.25-0.4375 0.19196-0.34986 0.43971-0.83698 0.75-1.4062 0.62059-1.1385 1.4445-2.6103 2.25-4.0938 0.80552-1.4834 1.5812-2.9751 2.1875-4.0938 0.30316-0.55933 0.56868-1.0087 0.75-1.3438 0.14198-0.26236 0.21072-0.36449 0.25-0.4375-0.055-0.0314-0.1-0.0615-0.218-0.125-0.172-0.0919-0.379-0.1999-0.594-0.3126-0.215-0.1126-0.432-0.2271-0.594-0.3124-0.067-0.0354-0.141-0.0375-0.188-0.0626z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3251" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3253">
<linearGradient id="linearGradient2406" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2411" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2409" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
</radialGradient>
</defs>
<g id="layer1">
<g id="g3275">
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2411);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2409)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2463" style="opacity:.4;stroke:url(#linearGradient2406);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
</g>
<path id="path3360" style="opacity:.2" d="m3 8h10v-2h-10v2z"/>
<path id="path3249" style="fill:#fff" d="m3 9h10v-2h-10v2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg7384" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata90">
<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>Gnome Symbolic Icon Theme</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<title id="title9167">Gnome Symbolic Icon Theme</title>
<g id="layer9" transform="translate(-321,-257)">
<path id="path18112" style="color:#bebebe;enable-background:new;fill:#bebebe" d="m328.92 257.09c-0.5255-0.0286-1.0382 0.28305-1.4375 0.96875l-6.25 11.594c-0.53 0.97 0.05 2.35 1.1 2.35h13.156c0.98172 0 1.9031-1.1594 1.2188-2.3438l-6.32-11.54c-0.39872-0.64617-0.94325-1.0026-1.4688-1.0312zm-0.0313 3.9375c0.54448-0.0172 1.0485 0.48677 1.0312 1.0312v3.9375c0.007 0.52831-0.47163 1.0142-1 1.0142-0.52836 0-1.0075-0.48593-1-1.0142v-3.9375c-0.008-0.4666 0.3541-0.91253 0.8125-1 0.0511-0.0145 0.10345-0.025 0.15625-0.0313zm-0.9687 6.9688h2v2h-2v-2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4002" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs4004">
<linearGradient id="linearGradient3645" y2="15" xlink:href="#linearGradient3587-6-5-3" gradientUnits="userSpaceOnUse" x2="7.9995" gradientTransform="translate(-.99952 1)" y1="1" x1="7.9995"/>
<linearGradient id="linearGradient3653" y2="12" xlink:href="#linearGradient3587-6-5-3" gradientUnits="userSpaceOnUse" x2="8.9995" gradientTransform="translate(1.0005 1)" y1="3" x1="8.9995"/>
<linearGradient id="linearGradient3587-6-5-3">
<stop id="stop3589-9-2-2" offset="0"/>
<stop id="stop3591-7-4-73" style="stop-color:#363636" offset="1"/>
</linearGradient>
</defs>
<path id="path3655" style="opacity:.6;block-progression:tb;text-indent:0;color:#000000;text-transform:none;fill:#fff" d="m4.2192 5.0003-0.03125 0.03125c-0.13929 0.056469-0.26082 0.1559-0.34375 0.28125l-3 4.25c-0.18164 0.25295-0.18164 0.62205 0 0.875l3 4.25c0.082937 0.12535 0.20446 0.22478 0.34375 0.28125l0.03125 0.03125h0.125 0.15625c0.020821 0.000868 0.041679 0.000868 0.0625 0h9.9375 0.5v-0.5-9-0.5h-0.5-9.875-0.0625c-0.020821-0.0008682-0.041679-0.0008682-0.0625 0h-0.1875-0.09375zm0.9375 1h8.8438v8h-8.8125c-0.031927-0.06831-0.074226-0.13176-0.125-0.1875l-2.6875-3.8125 2.6875-3.8125c0.039807-0.057709 0.071467-0.12103 0.09375-0.1875z"/>
<path id="path3657" style="opacity:.6;block-progression:tb;text-indent:0;color:#bebebe;enable-background:new;text-transform:none;fill:#fff" d="m7.0036 7.0006h1c0.01037-0.00012 0.02079-0.00046 0.03125 0 0.25495 0.0112 0.50987 0.12858 0.6875 0.3125l1.2812 1.2812 1.3125-1.2812c0.26562-0.2305 0.44667-0.3055 0.6875-0.3125h1v1c0 0.28647-0.03434 0.55065-0.25 0.75l-1.2812 1.2813 1.25 1.25c0.18819 0.18817 0.28124 0.45345 0.28125 0.71875v1h-1c-0.2653-0.00001-0.53059-0.0931-0.71875-0.28125l-1.2812-1.2812-1.2812 1.2812c-0.18816 0.18819-0.45346 0.28125-0.71875 0.28125h-1v-1c-0.000003-0.26529 0.09306-0.53058 0.28125-0.71875l1.2812-1.25-1.2812-1.2813c-0.21074-0.19463-0.30316-0.46925-0.28125-0.75v-1z"/>
<path id="path2836" style="opacity:.7;block-progression:tb;text-indent:0;color:#000000;text-transform:none;fill:url(#linearGradient3645)" d="m4.2192 4-0.03125 0.03125c-0.1393 0.0565-0.2608 0.1559-0.3438 0.2813l-2.7002 4.25c-0.18164 0.25295-0.18164 0.62205 0 0.875l2.7002 4.25c0.082937 0.12535 0.20446 0.22478 0.34375 0.28125l0.0312 0.031h0.125 0.15625c0.020821 0.000868 0.041679 0.000868 0.0625 0h9.9375 0.5v-0.5-9-0.5h-0.5-9.875-0.0625c-0.020821-0.0008682-0.041679-0.0008682-0.0625 0h-0.1875-0.09375zm0.9375 1h8.8438v8h-8.8125c-0.031927-0.06831-0.074226-0.13176-0.125-0.1875l-2.687-3.812 2.6875-3.8125c0.0398-0.0577 0.0714-0.121 0.0937-0.1875z"/>
<path id="path10839" style="opacity:.7;block-progression:tb;text-indent:0;color:#bebebe;enable-background:new;text-transform:none;fill:url(#linearGradient3653)" d="m7.0036 6.0002h1c0.01037-0.00012 0.02079-0.00046 0.03125 0 0.25495 0.0112 0.50987 0.12858 0.6875 0.3125l1.2812 1.2812 1.3125-1.2812c0.26562-0.2305 0.44667-0.3055 0.6875-0.3125h1v1c0 0.28647-0.03434 0.55065-0.25 0.75l-1.2812 1.2812 1.25 1.25c0.18819 0.18817 0.28124 0.45345 0.28125 0.71875v1h-1c-0.2653-0.00001-0.53059-0.0931-0.71875-0.28125l-1.2812-1.2812-1.2813 1.2812c-0.18816 0.18819-0.45346 0.28125-0.71875 0.28125h-1v-1c-0.000003-0.26529 0.09306-0.53058 0.28125-0.71875l1.2811-1.2495-1.2812-1.2813c-0.21074-0.19463-0.30316-0.46925-0.28125-0.75v-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3691" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3693">
<linearGradient id="linearGradient4884" y2="224.68" gradientUnits="userSpaceOnUse" x2="31.341" y1="235.03" x1="31.341">
<stop id="stop4024-2-8" style="stop-color:#555753" offset="0"/>
<stop id="stop4026-8-3" style="stop-color:#babdb6" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3655" y2="225" gradientUnits="userSpaceOnUse" x2="23.5" y1="225" x1="34.5">
<stop id="stop2605-6" style="stop-color:#bb2b12" offset="0"/>
<stop id="stop2607-3" style="stop-color:#cd7233" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3663" y2="229" gradientUnits="userSpaceOnUse" x2="35.5" y1="229" x1="24.5">
<stop id="stop2612-7" style="stop-color:#f0c178" offset="0"/>
<stop id="stop2614-5" style="stop-color:#e18941" offset=".5"/>
<stop id="stop2616-9" style="stop-color:#ec4f18" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<g id="g4946" style="enable-background:new" transform="matrix(0,1,1,0,-219,-21.5)">
<g id="g4873" style="stroke:url(#linearGradient4884)">
<path id="path2932-4" style="stroke-linejoin:round;stroke-width:4;stroke:url(#linearGradient3655);stroke-linecap:round;enable-background:new;fill:none" d="m32 221-5.5 5.5 5.5 5.5"/>
</g>
<path id="path2932" style="stroke-linejoin:round;stroke:url(#linearGradient3663);stroke-linecap:round;stroke-width:2;fill:none" d="m32 221-5.5 5.5 5.5 5.5"/>
<path id="path2932-0-9-9" style="opacity:.4;stroke:#fff;stroke-linecap:round;enable-background:new;fill:none" d="m31.4 232-5.5-5.5 5.5-5.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2461" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2463">
<linearGradient id="linearGradient2457" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2788" style="stop-color:#1f4b6a" offset="0"/>
<stop id="stop2790" style="stop-color:#4083c2" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2455" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop2778" style="stop-color:#8badea" offset="0"/>
<stop id="stop2780" style="stop-color:#6396cd" offset=".26238"/>
<stop id="stop2782" style="stop-color:#3b7caf" offset=".66094"/>
<stop id="stop2784" style="stop-color:#194c70" offset="1"/>
</radialGradient>
<linearGradient id="linearGradient2452" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2449" style="stroke-linejoin:round;stroke:url(#linearGradient2457);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2455)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2451" style="opacity:.4;stroke:url(#linearGradient2452);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
<path id="path3536" style="fill:#fff" d="m5.8809 7.6039c0.1112 0.2727 0.2329 0.4926 0.4614 0.176 0.291-0.1922 1.259-1.0222 1.1895-0.2449-0.2635 1.4439-0.5972 2.876-0.8384 4.323-0.2804 0.798 0.4546 1.481 1.1726 0.94 0.7716-0.361 1.4257-0.923 2.0961-1.441-0.1034-0.231-0.1794-0.565-0.4273-0.248-0.3352 0.171-1.0517 0.943-1.2144 0.337 0.2258-1.561 0.6984-3.0746 0.9775-4.6254 0.2848-0.7194-0.2609-1.5917-1.002-0.976-0.8996 0.4419-1.6391 1.1342-2.415 1.7593zm3.1923-5.3491c-0.936-0.0124-1.3641 1.536-0.46 1.9183 0.7319 0.2706 1.4868-0.5111 1.281-1.2531-0.07-0.3879-0.4276-0.6943-0.821-0.6652z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3247" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3249">
<linearGradient id="linearGradient2401" y2="34.225" gradientUnits="userSpaceOnUse" x2="24.104" gradientTransform="matrix(.70965 0 0 .70537 -8.945 -8.2363)" y1="15.181" x1="24.104">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3190" y2="16.004" gradientUnits="userSpaceOnUse" x2="8" x1="8">
<stop id="stop3182" style="stop-color:#fff" offset="0"/>
<stop id="stop3184" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2262" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#699536;fill:url(#linearGradient2401)" d="m5.5 5.5v-5h5v5h5v5h-5v5h-5v-5h-5v-5h5z"/>
<path id="path3188" style="opacity:.4;stroke:url(#linearGradient3190);fill:none" d="m6.5 1.5v4c-0.00481 0.55028-0.44972 0.99519-1 1h-4v3h4c0.55028 0.00481 0.99519 0.44972 1 1v4h3v-4c0.00481-0.55028 0.44972-0.99519 1-1h4v-3h-4c-0.5503-0.0048-0.9952-0.4497-1-1v-4h-3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg3247" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs3249">
<linearGradient id="linearGradient2401" y2="29.707" gradientUnits="userSpaceOnUse" x2="23.878" gradientTransform="matrix(.70965 0 0 .70537 -8.945 -8.2363)" y1="18.765" x1="23.878">
<stop id="stop3945" style="stop-color:#e35d4f" offset="0"/>
<stop id="stop3947" style="stop-color:#c6262e" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3190" y2="16.004" gradientUnits="userSpaceOnUse" x2="8" x1="8">
<stop id="stop3182" style="stop-color:#fff" offset="0"/>
<stop id="stop3184" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path2262" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#a53738;fill:url(#linearGradient2401)" d="m15.5 5.5v5h-15v-5h15z"/>
<path id="path3188" style="opacity:.4;stroke:url(#linearGradient3190);fill:none" d="m1.5 6.5v3h13v-3h-13z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2829" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2831">
<linearGradient id="linearGradient3615">
<stop id="stop3617" style="stop-color:#eeeeec" offset="0"/>
<stop id="stop3619" style="stop-color:#babdb6" offset=".69580"/>
<stop id="stop3621" style="stop-color:#a1a59b" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2782">
<stop id="stop2784" style="stop-color:#fff" offset="0"/>
<stop id="stop2786" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient3627" y2="45.849" xlink:href="#linearGradient3615" gradientUnits="userSpaceOnUse" x2="-11.448" gradientTransform="matrix(.36755 0 0 .36638 8.2056 -1.7938)" y1="10.344" x1="-11.448"/>
<linearGradient id="linearGradient3629" y2="52.94" xlink:href="#linearGradient2782" gradientUnits="userSpaceOnUse" x2="10.44" gradientTransform="matrix(.29583 0 0 .33661 8.2499 -1.1702)" y1="9.9657" x1="10.44"/>
<linearGradient id="linearGradient3635" y2="45.849" xlink:href="#linearGradient3615" gradientUnits="userSpaceOnUse" x2="-11.448" gradientTransform="matrix(.36755 0 0 .36638 16.206 -1.7938)" y1="10.344" x1="-11.448"/>
<linearGradient id="linearGradient3637" y2="52.94" xlink:href="#linearGradient2782" gradientUnits="userSpaceOnUse" x2="10.44" gradientTransform="matrix(.29583 0 0 .33661 16.25 -1.1702)" y1="9.9657" x1="10.44"/>
</defs>
<g id="layer1">
<path id="path3623" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#888a86;stroke-linecap:round;stroke-width:1.0007;fill:url(#linearGradient3627)" d="m1.5004 1.5004v12.999h4.9993v-12.999h-4.9993z"/>
<path id="path3625" style="opacity:0.41;stroke-opacity:.97255;stroke:url(#linearGradient3629);stroke-linecap:round;stroke-width:1.0013;fill:none" d="m2.5007 2.5007v10.999l2.9983-0.0154v-10.983h-2.9983z"/>
<path id="path3631" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#888a86;stroke-linecap:round;stroke-width:1.0007;fill:url(#linearGradient3635)" d="m9.5004 1.5004v12.999h4.9993v-12.999h-4.9993z"/>
<path id="path3633" style="opacity:0.41;stroke-opacity:.97255;stroke:url(#linearGradient3637);stroke-linecap:round;stroke-width:1.0013;fill:none" d="m10.501 2.5007v10.999l2.9983-0.0154v-10.983h-2.9983z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2397" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2399">
<linearGradient id="linearGradient2395" y2="43.878" gradientUnits="userSpaceOnUse" x2="18.037" gradientTransform="matrix(.42222 0 0 .38297 -3.1322 -1.1011)" y1="14.511" x1="18.037">
<stop id="stop2266" style="stop-color:#d7e866" offset="0"/>
<stop id="stop2268" style="stop-color:#8cab2a" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2392" y2="46.874" gradientUnits="userSpaceOnUse" x2="13.759" gradientTransform="matrix(.35126 0 0 .34884 -.99223 -.37226)" y1="14.66" x1="34.404">
<stop id="stop4224" style="stop-color:#fff" offset="0"/>
<stop id="stop4226" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
</defs>
<g id="layer1">
<path id="path3375" style="stroke-linejoin:round;fill-rule:evenodd;stroke:#548820;stroke-linecap:round;fill:url(#linearGradient2395)" d="m1.5 14.5v-13l13 6.5-13 6.5z"/>
<path id="path2294" style="opacity:0.41;stroke:url(#linearGradient2392);stroke-linecap:round;fill:none" d="m2.5 12.878v-9.778l9.841 4.9-9.841 4.878z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg2528" xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs id="defs2530">
<linearGradient id="linearGradient2406" y2="5.4676" gradientUnits="userSpaceOnUse" x2="63.397" gradientTransform="matrix(.74324 0 0 .74322 -38.23 10.609)" y1="-12.489" x1="63.397">
<stop id="stop4875" style="stop-color:#fff" offset="0"/>
<stop id="stop4877" style="stop-color:#fff;stop-opacity:0" offset="1"/>
</linearGradient>
<linearGradient id="linearGradient2411" y2="3.0816" gradientUnits="userSpaceOnUse" x2="18.379" gradientTransform="matrix(.36857 0 0 .36857 -.84577 -.84577)" y1="44.98" x1="18.379">
<stop id="stop2492" style="stop-color:#791235" offset="0"/>
<stop id="stop2494" style="stop-color:#dd3b27" offset="1"/>
</linearGradient>
<radialGradient id="radialGradient2409" gradientUnits="userSpaceOnUse" cy="3.99" cx="23.896" gradientTransform="matrix(0 .87966 -1.1611 0 12.633 -21.084)" r="20.397">
<stop id="stop3244" style="stop-color:#f8b17e" offset="0"/>
<stop id="stop3246" style="stop-color:#e35d4f" offset=".26238"/>
<stop id="stop3248" style="stop-color:#c6262e" offset=".66094"/>
<stop id="stop3250" style="stop-color:#690b54" offset="1"/>
</radialGradient>
</defs>
<g id="layer1">
<g id="g2552">
<path id="path2555" style="stroke-linejoin:round;stroke:url(#linearGradient2411);stroke-linecap:round;stroke-width:1.0037;fill:url(#radialGradient2409)" d="m8 0.50183c-4.1372 0-7.4982 3.361-7.4982 7.4982 0.00003 4.137 3.361 7.498 7.4982 7.498 4.137 0 7.498-3.361 7.498-7.498 0-4.1372-3.361-7.4982-7.498-7.4982z"/>
<path id="path2463" style="opacity:.4;stroke:url(#linearGradient2406);fill:none" d="m14.5 7.9998c0 3.5902-2.91 6.5002-6.4999 6.5002s-6.5001-2.91-6.5001-6.5002c0-3.5898 2.9102-6.4998 6.5001-6.4998s6.4999 2.91 6.4999 6.4998z"/>
</g>
<path id="path3243" style="opacity:.2;fill-rule:evenodd" d="m5.2625 3l-1.2625 1.2625 2.6047 2.5913c0.08 0.081 0.08 0.2114 0 0.2924l-2.6047 2.5913 1.2625 1.2625 2.5913-2.5914c0.081-0.08 0.2114-0.08 0.2924 0l2.5918 2.5914 1.262-1.2625-2.5914-2.5913c-0.08-0.081-0.08-0.2114 0-0.2924l2.5914-2.5913-1.262-1.2625-2.5918 2.5914c-0.081 0.08-0.2114 0.08-0.2924 0l-2.5913-2.5914z"/>
<path id="path3256" style="fill:#fff;fill-rule:evenodd" d="m5.2625 4l-1.2625 1.2625 2.6047 2.5913c0.08 0.081 0.08 0.2114 0 0.2924l-2.6047 2.5918 1.2625 1.262 2.5913-2.5914c0.081-0.08 0.2114-0.08 0.2924 0l2.5918 2.5914 1.262-1.262-2.5914-2.5918c-0.08-0.081-0.08-0.2114 0-0.2924l2.5914-2.5913-1.262-1.2625-2.5918 2.5914c-0.081 0.08-0.2114 0.08-0.2924 0l-2.5913-2.5914z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

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