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, ...).
@@ -23,6 +23,8 @@
|
||||
|
||||
*.gdb_history
|
||||
|
||||
.cache.xml
|
||||
|
||||
# Eclipse IDE project files
|
||||
*.cproject
|
||||
*.project
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env /bin/sh
|
||||
cd $PAPARAZZI_SRC/sw/supervision/python
|
||||
./main.py
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
@@ -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.
|
||||
@@ -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)
|
||||
@@ -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 |
|
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 |
@@ -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 |
|
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 |
|
After Width: | Height: | Size: 290 B |
|
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 |
@@ -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
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
@@ -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)
|
||||
@@ -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 |
|
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 |
@@ -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 |
|
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 |
|
After Width: | Height: | Size: 290 B |
|
After Width: | Height: | Size: 308 B |