Spreadsheet: Added a spreadsheet controller object
This commit is contained in:
parent
9357683aef
commit
8e928dc265
|
@ -54,7 +54,7 @@ class SpreadsheetWorkbench(Workbench):
|
|||
def Initialize(self):
|
||||
import Spreadsheet,Spreadsheet_rc
|
||||
from DraftTools import translate
|
||||
commands = ["Spreadsheet_Create"]
|
||||
commands = ["Spreadsheet_Create","Spreadsheet_Controller"]
|
||||
self.appendToolbar(str(translate("Spreadsheet","Spreadsheet tools")),commands)
|
||||
self.appendMenu(str(translate("Spreadsheet","&Spreadsheet")),commands)
|
||||
FreeCADGui.addIconPath(":/icons")
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file>icons/Spreadsheet.svg</file>
|
||||
<file>icons/SpreadsheetController.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
163
src/Mod/Spreadsheet/Resources/icons/SpreadsheetController.svg
Normal file
163
src/Mod/Spreadsheet/Resources/icons/SpreadsheetController.svg
Normal file
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2860"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="Spreadsheet.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2862">
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377"
|
||||
id="radialGradient3692"
|
||||
cx="45.883327"
|
||||
cy="28.869568"
|
||||
fx="45.883327"
|
||||
fy="28.869568"
|
||||
r="19.467436"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377"
|
||||
id="radialGradient3703"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="135.38333"
|
||||
cy="97.369568"
|
||||
fx="135.38333"
|
||||
fy="97.369568"
|
||||
r="19.467436"
|
||||
gradientTransform="matrix(0.97435,0.2250379,-0.4623105,2.0016728,48.487554,-127.99883)" />
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
id="stop3379"
|
||||
offset="0"
|
||||
style="stop-color:#faff2b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381"
|
||||
offset="1"
|
||||
style="stop-color:#ffaa00;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377"
|
||||
id="radialGradient3705"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="148.88333"
|
||||
cy="81.869568"
|
||||
fx="148.88333"
|
||||
fy="81.869568"
|
||||
r="19.467436"
|
||||
gradientTransform="matrix(1.3852588,-0.05136783,0.03705629,0.9993132,-60.392403,7.7040438)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2868" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.5"
|
||||
inkscape:cx="41.681621"
|
||||
inkscape:cy="31.877347"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1053"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata2865">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3002"
|
||||
width="56.18182"
|
||||
height="46.545456"
|
||||
x="4"
|
||||
y="9.272728" />
|
||||
<rect
|
||||
style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3002-9"
|
||||
width="56.18182"
|
||||
height="46.545456"
|
||||
x="4"
|
||||
y="9.272728" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 4,20.545455 55.636364,0"
|
||||
id="path3790"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 20.909091,9.6363636 20.909091,56"
|
||||
id="path3792"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 2.6293007,32.429811 17.3343733,0"
|
||||
id="path3794"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ff0000;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;fill-opacity:0.41145834"
|
||||
id="rect3771"
|
||||
width="39.090908"
|
||||
height="23.90909"
|
||||
x="21"
|
||||
y="20.636364" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4,44.483064 55.636364,0"
|
||||
id="path3796"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#d00000;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round"
|
||||
id="rect3773"
|
||||
width="39.545456"
|
||||
height="24"
|
||||
x="20.727272"
|
||||
y="20.363636" />
|
||||
<path
|
||||
style="fill:none;stroke:#d00000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 22.010949,32.429811 37.710917,0"
|
||||
id="path3794-0"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.1 KiB |
|
@ -194,7 +194,7 @@ class MathParser:
|
|||
|
||||
return float(strValue)
|
||||
|
||||
class Spreadsheet(object):
|
||||
class Spreadsheet:
|
||||
"""An object representing a spreadsheet. Can be used as a
|
||||
FreeCAD object or as a standalone python object.
|
||||
Cells of the spreadsheet can be got/set as arguments, as:
|
||||
|
@ -203,14 +203,13 @@ class Spreadsheet(object):
|
|||
print(myspreadsheet.a1)
|
||||
myspreadsheet.a2 = "My text"
|
||||
myspreadsheet.b1 = "=a1*3"
|
||||
print(myspreadsheet.a3)
|
||||
|
||||
Functions usable in formulae are limited to the contents of
|
||||
the math module."""
|
||||
print(myspreadsheet.b1)
|
||||
"""
|
||||
|
||||
def __init__(self,obj=None):
|
||||
if obj:
|
||||
obj.Proxy = self
|
||||
obj.addProperty("App::PropertyLinkList","Controllers","Base","Cell controllers of this object")
|
||||
self._cells = {} # this stores cell contents
|
||||
self._relations = {} # this stores relations - currently not used
|
||||
self.cols = [] # this stores filled columns
|
||||
|
@ -221,7 +220,7 @@ class Spreadsheet(object):
|
|||
return "Spreadsheet object containing " + str(len(self._cells)) + " cells"
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
if self.isKey(key.lower()):
|
||||
if self.isKey(key):
|
||||
key = key.lower()
|
||||
if DEBUG: print "Setting key ",key," to value ",value
|
||||
if (value == "") or (value == None):
|
||||
|
@ -258,14 +257,19 @@ class Spreadsheet(object):
|
|||
else:
|
||||
return self._cells[key]
|
||||
else:
|
||||
return None
|
||||
return self.__dict__.__getitem__(key)
|
||||
|
||||
def __getstate__(self):
|
||||
self._cells["Type"] = self.Type
|
||||
return self._cells
|
||||
|
||||
def __setstate__(self,state):
|
||||
if state:
|
||||
self._cells = state
|
||||
# extracting Type
|
||||
if "Type" in self._cells.keys():
|
||||
self.Type = self._cells["Type"]
|
||||
del self._cells["Type"]
|
||||
# updating relation tables
|
||||
self.rows = []
|
||||
self.cols = []
|
||||
|
@ -296,8 +300,8 @@ class Spreadsheet(object):
|
|||
else:
|
||||
self._relations[a] = [key]
|
||||
|
||||
def execute(self,obj=None):
|
||||
pass
|
||||
def execute(self,obj):
|
||||
self.setControlledCells(obj)
|
||||
|
||||
def isFunction(self,key):
|
||||
"isFunction(cell): returns True if the given cell or value is a function"
|
||||
|
@ -396,7 +400,7 @@ class Spreadsheet(object):
|
|||
result += str(self._cells[e])
|
||||
else:
|
||||
result += e
|
||||
print "Evaluating ",result
|
||||
if DEBUG: print "Evaluating ",result
|
||||
try:
|
||||
p = MathParser(result)
|
||||
result = p.getValue()
|
||||
|
@ -404,6 +408,21 @@ class Spreadsheet(object):
|
|||
msg = ex.message
|
||||
raise Exception(msg)
|
||||
return result
|
||||
|
||||
def setControlledCells(self,obj):
|
||||
"Fills the cells that are controlled by a controller"
|
||||
if obj:
|
||||
if hasattr(obj,"Controllers"):
|
||||
for co in obj.Controllers:
|
||||
co.Proxy.setCells(co,obj)
|
||||
|
||||
def getControlledCells(self,obj):
|
||||
"returns a list of cells managed by controllers"
|
||||
cells = []
|
||||
if hasattr(obj,"Controllers"):
|
||||
for c in obj.Controllers:
|
||||
cells.extend(c.Proxy.getCells(c,obj))
|
||||
return cells
|
||||
|
||||
|
||||
class ViewProviderSpreadsheet(object):
|
||||
|
@ -412,7 +431,10 @@ class ViewProviderSpreadsheet(object):
|
|||
|
||||
def getIcon(self):
|
||||
import Spreadsheet_rc
|
||||
return ":/icons/Spreadsheet.svg"
|
||||
return ":/icons/Spreadsheet.svg"
|
||||
|
||||
def attach(self,vobj):
|
||||
self.Object = vobj.Object
|
||||
|
||||
def setEdit(self,vobj,mode):
|
||||
if hasattr(self,"editor"):
|
||||
|
@ -424,6 +446,93 @@ class ViewProviderSpreadsheet(object):
|
|||
|
||||
def unsetEdit(self,vobj,mode):
|
||||
return False
|
||||
|
||||
def claimChildren(self):
|
||||
if hasattr(self,"Object"):
|
||||
if hasattr(self.Object,"Controllers"):
|
||||
return self.Object.Controllers
|
||||
|
||||
def __getstate__(self):
|
||||
return None
|
||||
|
||||
def __setstate__(self,state):
|
||||
return None
|
||||
|
||||
|
||||
class SpreadsheetController:
|
||||
"A spreadsheet cell controller object"
|
||||
def __init__(self,obj):
|
||||
obj.Proxy = self
|
||||
self.Type = "SpreadsheetController"
|
||||
obj.addProperty("App::PropertyLinkList","Objects","Base","The objects that are considered by this controller")
|
||||
obj.addProperty("App::PropertyString","Prop","Base","The property to extract from each object")
|
||||
obj.addProperty("App::PropertyString","BaseCell","Base","The starting cell of this controller")
|
||||
obj.addProperty("App::PropertyEnumeration","Direction","Base","The cells direction of this controller")
|
||||
obj.Direction = ["Horizontal","Vertical"]
|
||||
|
||||
def execute(self,obj):
|
||||
pass
|
||||
|
||||
def __getstate__(self):
|
||||
return self.Type
|
||||
|
||||
def __setstate__(self,state):
|
||||
if state:
|
||||
self.Type = state
|
||||
|
||||
def getCells(self,obj,spreadsheet):
|
||||
"returns a list of cells controlled by this controller"
|
||||
cells = []
|
||||
if obj.Objects and obj.Prop and obj.BaseCell:
|
||||
for i in range(len(obj.Objects)):
|
||||
# get the correct cell key
|
||||
c,r = spreadsheet.Proxy.splitKey(obj.BaseCell)
|
||||
if obj.Direction == "Horizontal":
|
||||
c = "abcdefghijklmnopqrstuvwxyz".index(c)
|
||||
c += i
|
||||
c = "abcdefghijklmnopqrstuvwxyz"[c]
|
||||
else:
|
||||
r = int(r) + i
|
||||
cells.append(c+str(r))
|
||||
return cells
|
||||
|
||||
|
||||
def setCells(self,obj,spreadsheet):
|
||||
"Fills the controlled cells of the given spreadsheet"
|
||||
if obj.Objects and obj.Prop and obj.BaseCell:
|
||||
for i in range(len(obj.Objects)):
|
||||
# get the correct cell key
|
||||
c,r = spreadsheet.Proxy.splitKey(obj.BaseCell)
|
||||
if obj.Direction == "Horizontal":
|
||||
c = "abcdefghijklmnopqrstuvwxyz".index(c)
|
||||
c += i
|
||||
c = "abcdefghijklmnopqrstuvwxyz"[c]
|
||||
else:
|
||||
r = int(r) + i
|
||||
cell = c+str(r)
|
||||
if DEBUG: print "auto setting cell ",cell
|
||||
if spreadsheet.Proxy.isKey(cell):
|
||||
# get the contents
|
||||
args = obj.Prop.split(".")
|
||||
value = obj.Objects[i]
|
||||
for arg in args:
|
||||
if hasattr(value,arg):
|
||||
value = getattr(value,arg)
|
||||
try:
|
||||
setattr(spreadsheet.Proxy,cell,value)
|
||||
if DEBUG: print "setting cell ",cell," to value ",value
|
||||
except:
|
||||
print "Error retrieving property "+obj.Prop+" from object "+obj.Objects[i].Name
|
||||
|
||||
|
||||
class ViewProviderSpreadsheetController:
|
||||
"A view provider for the spreadsheet cell controller"
|
||||
def __init__(self,vobj):
|
||||
vobj.Proxy = self
|
||||
|
||||
def getIcon(self):
|
||||
import Spreadsheet_rc
|
||||
return ":/icons/SpreadsheetController.svg"
|
||||
|
||||
|
||||
class SpreadsheetView(QtGui.QWidget):
|
||||
|
@ -471,11 +580,14 @@ class SpreadsheetView(QtGui.QWidget):
|
|||
if self.spreadsheet.ViewObject:
|
||||
if hasattr(self.spreadsheet.ViewObject.Proxy,"editor"):
|
||||
del self.spreadsheet.ViewObject.Proxy.editor
|
||||
FreeCADGui.ActiveDocument.resetEdit()
|
||||
if FreeCADGui:
|
||||
if FreeCADGui.ActiveDocument:
|
||||
FreeCADGui.ActiveDocument.resetEdit()
|
||||
|
||||
def update(self):
|
||||
"updates the cells with the contents of the spreadsheet"
|
||||
if self.spreadsheet:
|
||||
controlled = self.spreadsheet.Proxy.getControlledCells(self.spreadsheet)
|
||||
for cell in self.spreadsheet.Proxy._cells.keys():
|
||||
c,r = self.spreadsheet.Proxy.splitKey(cell)
|
||||
c = "abcdefghijklmnopqrstuvwxyz".index(c)
|
||||
|
@ -490,6 +602,10 @@ class SpreadsheetView(QtGui.QWidget):
|
|||
self.table.item(r,c).setText(str(content))
|
||||
else:
|
||||
self.table.setItem(r,c,QtGui.QTableWidgetItem(str(content)))
|
||||
if cell in controlled:
|
||||
brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
|
||||
brush.setStyle(QtCore.Qt.Dense6Pattern)
|
||||
self.table.item(r,c).setBackground(brush)
|
||||
|
||||
def changeCell(self,r,c,value=None):
|
||||
"changes the contens of a cell"
|
||||
|
@ -550,13 +666,38 @@ class _Command_Spreadsheet_Create:
|
|||
|
||||
def Activated(self):
|
||||
from DraftTools import translate
|
||||
FreeCAD.ActiveDocument.openTransaction(str(translate("Arch","Create Spreadsheet")))
|
||||
FreeCAD.ActiveDocument.openTransaction(str(translate("Spreadsheet","Create Spreadsheet")))
|
||||
FreeCADGui.doCommand("import Spreadsheet")
|
||||
FreeCADGui.doCommand("Spreadsheet.makeSpreadsheet()")
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
class _Command_Spreadsheet_Controller:
|
||||
"the Spreadsheet_Controller FreeCAD command"
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'SpreadsheetController',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Spreadsheet_Controller","Add controller"),
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Spreadsheet_Controller","Adds a cell controller to a selected spreadsheet")}
|
||||
|
||||
def IsActive(self):
|
||||
if FreeCADGui.Selection.getSelection():
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def Activated(self):
|
||||
import Draft
|
||||
if Draft.getType(FreeCADGui.Selection.getSelection()[0]) == "Spreadsheet":
|
||||
from DraftTools import translate
|
||||
n = FreeCADGui.Selection.getSelection()[0].Name
|
||||
FreeCAD.ActiveDocument.openTransaction(str(translate("Spreadsheet","Add controller")))
|
||||
FreeCADGui.doCommand("import Spreadsheet")
|
||||
FreeCADGui.doCommand("Spreadsheet.makeSpreadsheetController(FreeCAD.ActiveDocument."+n+")")
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
|
||||
def makeSpreadsheet():
|
||||
"makeSpreadsheet(): adds a spreadsheet object to the active document"
|
||||
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","Spreadsheet")
|
||||
|
@ -566,6 +707,29 @@ def makeSpreadsheet():
|
|||
return obj
|
||||
|
||||
|
||||
def makeSpreadsheetController(spreadsheet,cell=None,objects=None,prop=None,direction=None):
|
||||
"""makeSpreadsheetController(spreadsheet,[cell,objects,prop,direction]): adds a
|
||||
controller to the given spreadsheet. Call can be a starting cell such as "A5",
|
||||
objects can be a list of objects, prop can be a property such as "Shape.Volume",
|
||||
and direction can be "Horizontal" or "Vertical"."""
|
||||
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","CellController")
|
||||
SpreadsheetController(obj)
|
||||
if FreeCAD.GuiUp:
|
||||
ViewProviderSpreadsheetController(obj.ViewObject)
|
||||
conts = spreadsheet.Controllers
|
||||
conts.append(obj)
|
||||
spreadsheet.Controllers = conts
|
||||
if objects:
|
||||
obj.Objects = objects
|
||||
if cell:
|
||||
obj.BaseCell = cell
|
||||
if prop:
|
||||
obj.Prop = prop
|
||||
if direction:
|
||||
obj.Direction = direction
|
||||
return obj
|
||||
|
||||
|
||||
def addSpreadsheetView(view):
|
||||
"addSpreadsheetView(view): adds the given spreadsheet view to the FreeCAD MDI area"
|
||||
if FreeCAD.GuiUp:
|
||||
|
@ -579,3 +743,4 @@ def addSpreadsheetView(view):
|
|||
|
||||
|
||||
FreeCADGui.addCommand('Spreadsheet_Create',_Command_Spreadsheet_Create())
|
||||
FreeCADGui.addCommand('Spreadsheet_Controller',_Command_Spreadsheet_Controller())
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Resource object code
|
||||
#
|
||||
# Created: Fri Aug 2 17:09:28 2013
|
||||
# Created: Tue Aug 6 17:48:51 2013
|
||||
# by: The Resource Compiler for PyQt (Qt v4.8.4)
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
@ -10,6 +10,111 @@
|
|||
from PyQt4 import QtCore
|
||||
|
||||
qt_resource_data = "\
|
||||
\x00\x00\x06\x62\
|
||||
\x00\
|
||||
\x00\x18\x53\x78\x9c\xe5\x57\xdb\x6e\xdb\x46\x10\x7d\xf7\x57\xb0\
|
||||
\xcc\x4b\x82\x8a\xe4\x5e\x78\xb7\xa4\x3c\x34\x48\x11\xa0\x45\x81\
|
||||
\x26\x41\x1f\x83\x15\xb9\x94\x58\x53\x24\xb1\x5c\x59\x92\xbf\xbe\
|
||||
\xb3\xbc\x53\xa2\x13\x3b\x45\x90\x06\x95\x60\x8b\x3b\x33\x7b\x99\
|
||||
\x33\x67\x66\x96\xcb\xd7\xa7\x7d\xa6\xdd\x73\x51\xa5\x45\xbe\xd2\
|
||||
\xb1\x89\x74\x8d\xe7\x51\x11\xa7\xf9\x76\xa5\x7f\xfc\xf0\xd6\xf0\
|
||||
\x75\xad\x92\x2c\x8f\x59\x56\xe4\x7c\xa5\xe7\x85\xfe\x7a\x7d\xb3\
|
||||
\xfc\xc9\x30\xb4\x5f\x04\x67\x92\xc7\xda\x31\x95\x3b\xed\x5d\x7e\
|
||||
\x57\x45\xac\xe4\xda\xcb\x9d\x94\x65\x68\x59\xc7\xe3\xd1\x4c\x5b\
|
||||
\xa1\x59\x88\xad\xf5\x4a\x33\x8c\xf5\xcd\xcd\xb2\xba\xdf\xde\x68\
|
||||
\x9a\x06\xfb\xe6\x55\x18\x47\x2b\xbd\x9d\x50\x1e\x44\x56\x1b\xc6\
|
||||
\x91\xc5\x33\xbe\xe7\xb9\xac\x2c\x6c\x62\x4b\x1f\xcc\xa3\xc1\x3c\
|
||||
\x52\xbb\xa7\xf7\x3c\x2a\xf6\xfb\x22\xaf\xea\x99\x79\xf5\x62\x64\
|
||||
\x2c\xe2\xa4\xb7\x56\xa7\x39\xd2\xda\x08\x07\x41\x60\x21\x62\x11\
|
||||
\x62\x80\x85\x51\x9d\x73\xc9\x4e\xc6\x74\x2a\x9c\x71\x6e\x2a\x41\
|
||||
\x08\x59\xa0\x1b\x2c\x9f\x66\x15\x9e\x32\x80\xe2\xd1\xc3\xd4\xda\
|
||||
\xf1\xee\x00\x7f\x09\x7f\xfd\x84\x4e\x60\x56\xc5\x41\x44\x3c\x81\
|
||||
\x99\xdc\xcc\xb9\xb4\xde\x7c\x78\xd3\x2b\x0d\x64\xc6\x32\x1e\x2d\
|
||||
\xd3\xa1\x3f\xd9\x77\x12\x92\x9c\xed\x79\x55\xb2\x88\x57\x56\x27\
|
||||
\xaf\xe7\x1f\xd3\x58\xee\x56\xba\x6b\x97\xa7\x7a\xbc\xe3\xe9\x76\
|
||||
\x27\x47\x82\x34\x5e\xe9\xe0\x21\xf1\x5d\x54\x8f\xbb\x33\x84\x3d\
|
||||
\x93\x90\x49\x49\x63\xda\x2e\x3c\x56\xd9\xbe\x69\x6b\x22\x08\x68\
|
||||
\x30\x9d\x1d\x17\x91\x3a\xd2\x4a\x7f\x5f\x42\x74\xe3\x6a\xc7\xb9\
|
||||
\x34\x3b\x24\xfb\x85\x8a\x83\x2c\x0f\xf2\x13\x3f\x49\x9e\x37\x2b\
|
||||
\x82\x2f\x23\xc7\x6a\xb5\x9a\x66\x4e\x9c\x1a\x91\x1c\xeb\x6b\x90\
|
||||
\x2c\x63\x9e\x54\x4a\xd3\xf8\xa3\x46\xe0\x10\xa9\x75\xa0\x15\x2c\
|
||||
\x4e\x59\xf6\xab\xfa\x01\x2a\x36\x76\xa3\x53\x44\x45\x96\xf1\x08\
|
||||
\x40\x61\xd9\x91\x9d\x2b\xbd\x33\xa8\x83\x19\xee\x04\x07\xf2\xbd\
|
||||
\x80\x67\xce\x44\xb7\x06\xa5\x9e\xd7\xdb\xa9\x2d\xa7\x5b\x50\x37\
|
||||
\x20\xbd\x3a\x3a\xad\x74\xdb\x31\x7d\x9f\x52\x32\x4c\x8a\xce\x2b\
|
||||
\x9d\xf8\xa6\xef\x06\x8e\xeb\xf7\xd2\x64\xd6\x36\x99\xb5\x15\xe0\
|
||||
\x7f\x60\xda\xae\x67\x53\xb7\x17\x6e\xdb\x13\x7c\xcc\x53\x09\x94\
|
||||
\x3e\x54\x5c\xbc\x57\xb4\xf8\x23\xff\x58\x71\x5d\xb3\xbe\x1b\x22\
|
||||
\x1e\xa2\x4f\x3c\xe4\x18\x37\x4c\x1d\x93\x02\x18\x74\x82\x5b\xe0\
|
||||
\x99\xf4\x1a\xb7\x6b\xdb\x64\xd6\xf6\xb3\xb8\x7d\x10\x2c\xaf\x20\
|
||||
\x2b\xf7\x2b\x7d\xcf\xa4\x48\x4f\x2f\x91\x19\x80\xa5\xb3\x40\x26\
|
||||
\x21\x0e\xa2\x5e\xb0\x80\xf4\xb4\x5d\x42\x31\x72\x16\xc4\x44\x08\
|
||||
\xbb\x1e\xf1\x17\x2a\x11\x7c\xcf\x71\xec\x85\x81\x89\x67\x06\x01\
|
||||
\xc4\xf0\xd5\x00\xf8\x14\xac\x31\x4e\x33\x30\xae\x5b\xfd\xb2\x92\
|
||||
\x45\xd9\xd9\xb6\xa9\x0a\x12\xb0\x09\xf4\x41\x5c\x24\x49\xc5\x21\
|
||||
\x56\x68\x24\xab\xe4\x39\xe3\x8d\xb5\x01\xc1\x2c\x44\xf8\x22\x61\
|
||||
\x49\x42\x36\xb7\xb5\xa8\x00\xb4\x53\x79\x0e\xf1\x6d\x7f\xc2\xcf\
|
||||
\xec\xe6\xe3\x99\xdd\xf0\x17\x76\x4b\x18\x43\xe8\xd1\xdd\x96\xd6\
|
||||
\xd4\xed\xef\x48\x4b\xe7\x6b\x68\x09\xd1\xf6\xaf\x68\xe9\xe3\xb9\
|
||||
\x74\xbe\xb6\x4d\x66\x6d\x9f\x49\x4b\x0c\x5c\x77\x88\xe3\xfb\x8a\
|
||||
\x8e\xc8\xc1\xd4\xf5\x7c\x0a\x24\x45\xca\x25\x97\x04\xf0\x08\x0d\
|
||||
\x89\x62\x4a\x16\x86\x0b\x25\x3c\x20\x36\xa2\x0b\xcf\xf4\x90\x8d\
|
||||
\x6c\xea\x8f\xa8\xd9\xc3\x5b\x42\x59\x2d\x01\x5f\x68\xc5\xdd\xfe\
|
||||
\x7d\x3d\x97\x67\xd5\x7d\xa6\xa6\x34\xd6\xaf\x42\x74\x5f\x7e\x02\
|
||||
\x9f\x91\x16\x6a\x94\xc0\x3f\x3c\x6b\x71\x6e\x2c\x30\x74\x57\xf8\
|
||||
\x41\xb3\x36\x0f\xaa\x47\x7d\x66\x99\xf6\x04\x46\x21\xd2\x6d\x0a\
|
||||
\xad\xa0\xb6\x23\x80\x4a\xfd\x99\xce\x81\xb0\x8f\x7c\x83\xce\xe0\
|
||||
\xb7\xde\x2f\x2d\xd5\x2a\xea\xa7\xde\x53\xd5\xb6\xe2\xfb\x94\x1f\
|
||||
\x87\x7e\xb2\x61\x7d\xfc\x4b\xb6\xe5\x35\xc5\x81\x69\x49\xfd\x69\
|
||||
\x15\x9b\x42\xc4\x5c\x74\x2a\xb7\xfe\x4c\x54\x6d\x16\x34\x37\xb3\
|
||||
\x9b\x0b\x67\x60\xd5\x5e\x8f\xe6\xf5\xd5\x8e\xc5\xc5\x11\x1a\xc1\
|
||||
\xa5\xf2\xa1\x28\x80\x16\x8e\xe9\x5c\x2a\xea\xc6\x83\x4d\xd7\xc7\
|
||||
\x2e\xc1\x57\x4a\xd8\x89\x02\x09\x3d\x8f\xda\xde\x95\xf2\x20\x04\
|
||||
\xb0\xce\xc8\xd8\x99\x83\x3b\xf5\x4f\xb7\x42\xb5\x2b\x8e\x5b\xa1\
|
||||
\x60\x91\xe2\xc0\x2f\x67\x42\xdf\x3f\xa8\xfb\x9e\x71\x68\x92\xa8\
|
||||
\xbd\x65\x8c\x2c\xd4\x5c\x63\xb3\x29\x4e\xf3\x0b\x1c\xd3\x1c\xdc\
|
||||
\x34\xda\x7b\x0b\x0e\xc8\x15\x18\xad\x45\x77\x93\x81\x32\x4c\x1f\
|
||||
\x31\x39\x0d\x45\xf1\x52\x75\x7e\x5c\xb5\x67\xa7\x74\x9f\x3e\xf0\
|
||||
\x58\x15\xb9\x96\x27\x7b\x2e\x59\xcc\x24\x1b\x38\xd1\x49\x80\x4d\
|
||||
\x4e\x7f\xcf\x88\x93\xf0\xcf\x37\x6f\xfb\x82\x1a\x45\xe1\x5f\x85\
|
||||
\xb8\x1b\x0a\xa5\x32\x60\x1b\xb8\xd6\xac\xf4\xbe\xc8\xab\xdb\x4b\
|
||||
\x14\xaa\xdc\x66\x72\x9d\xee\x21\xd2\xea\xc6\xf9\x33\x5c\xfc\x80\
|
||||
\x9d\xbd\x62\x62\xac\x92\x71\x58\xb4\x59\x56\xf0\xe6\x46\x39\x7b\
|
||||
\x09\x8f\xa3\x7d\xaa\x26\x59\xef\x65\x9a\x65\xef\xd4\x26\xa3\xc2\
|
||||
\xdf\x2e\x9a\xca\x8c\xaf\xeb\x3d\x9b\xc7\xce\x0b\xab\x75\xa3\xab\
|
||||
\xdc\x23\x2f\x97\x56\x07\x43\x3d\xda\x0e\xf0\x4c\x28\xd3\x23\x9c\
|
||||
\xb1\x0d\xcf\x56\xfa\x6f\x4a\xa9\x5d\x69\xb7\xa2\x38\x94\xfb\x22\
|
||||
\xe6\xed\xf4\x1e\x56\xc8\xdb\xbe\x20\x35\xad\xa6\xed\x32\xa8\xfe\
|
||||
\xdc\x26\xe0\x54\xd8\xa6\x63\x3d\x18\xb5\x9c\x7a\x28\x0e\x19\x0f\
|
||||
\xf3\x22\x7f\x80\x34\x84\x9e\x24\x8a\xbb\x7a\xc8\xdb\xe7\x86\x6d\
|
||||
\xa1\xdd\x0d\x55\x0b\x81\x13\x85\x9b\x83\x94\x63\xd9\xdf\x45\x9a\
|
||||
\x87\x70\xc8\x3c\xee\xa4\x00\x2b\x17\x19\xd0\x45\x0e\xb3\x87\xbd\
|
||||
\x5b\x41\xcc\x20\x77\x85\x60\xe7\xc9\x9e\x4a\xda\x34\xd3\x10\xdd\
|
||||
\xee\x99\xb8\xe3\xa2\xd1\xdf\xa7\x55\xba\x49\x33\xb5\x44\xfd\x98\
|
||||
\xf1\xdb\x38\xad\x4a\x80\x04\xde\x03\xd4\x31\x6e\x0b\xb8\x00\x27\
|
||||
\x59\x71\xec\xf5\x3c\x67\xf0\x63\x6c\x58\x74\xb7\xad\xcf\x17\xb2\
|
||||
\x08\xf2\xf0\x90\xc1\x5b\xdd\xb4\xfb\x01\x94\x14\xa1\xe1\x72\xda\
|
||||
\xe6\x99\xe3\x9a\xd8\xc7\xfe\x20\xef\xb2\xcb\x76\x4d\xc7\x86\xef\
|
||||
\xd0\x92\x54\x51\xe9\x07\xea\x82\x65\x12\x0f\xbe\xfe\xe8\x72\xf9\
|
||||
\xa4\x78\xd5\xbe\x3e\x35\x58\xdd\xcc\xff\x6b\xbc\x8c\xe0\x9b\x46\
|
||||
\xac\x64\x72\x77\x11\xb1\x21\x46\xff\x3e\x04\x35\xea\x8f\xc2\x3d\
|
||||
\x17\x93\x69\x08\xfa\xc3\xab\xba\xab\xd9\x0b\x82\x1a\x17\x1d\xcd\
|
||||
\x71\x4c\x97\xc2\xd7\x5e\xa0\x69\xbb\x07\x87\xe0\x96\x3c\x73\xb5\
|
||||
\x88\x8a\x1c\x4e\x2a\x0b\x61\x40\x93\xbb\x67\xf2\x20\xb8\x6a\x05\
|
||||
\x3f\x22\x14\xbf\x6b\x00\x44\x80\xe0\x8b\x17\x41\x83\x03\x75\x47\
|
||||
\xb2\x11\x05\x46\x98\x90\xff\x36\x26\x5f\x91\xa1\x53\x7a\x10\x13\
|
||||
\x6e\xbf\x90\x33\xde\x82\x12\xd3\x26\x81\x8f\xb1\x86\xe1\x25\x90\
|
||||
\xda\xd4\xa3\x74\x9e\x27\xf6\xf3\x31\x79\x72\x53\x1a\xa1\x32\xdb\
|
||||
\x73\xbe\x61\x29\x99\x96\x57\x78\x6b\xc5\xd8\x76\x7c\x6a\x5f\x97\
|
||||
\x18\xcf\xc3\x97\x05\x86\x06\xa6\xa2\x11\xf2\xaf\x2a\x0c\xa1\x0d\
|
||||
\xc3\xc6\x05\x86\xe0\x71\x85\x01\x0e\x36\x69\xf9\x83\x72\xc8\x5e\
|
||||
\xd8\x36\xbc\xce\x53\x04\xaf\x20\x5f\x28\x31\xee\xb7\xa2\xce\xf3\
|
||||
\xfa\x63\x3c\x83\x9c\xfb\x4d\xb9\xf5\xf5\x35\x6c\xbe\x45\xcf\x91\
|
||||
\x92\xce\x90\xf2\xa2\xb9\xf5\xa4\xb4\x27\x74\x44\xa6\x57\x37\xb9\
|
||||
\x0b\x56\x36\x35\xf2\x99\xac\x9c\xc3\xf6\xbb\x54\x36\x62\x22\x8c\
|
||||
\x02\x3b\x18\x55\x36\x0a\x6f\xf4\x20\xc3\xde\x23\x85\xcd\x78\x6e\
|
||||
\x0b\x5c\x5a\xdb\xf5\xcd\x52\xbd\x82\xac\x6f\xfe\x01\x67\xd0\x48\
|
||||
\x57\
|
||||
\x00\x00\x05\xda\
|
||||
\x00\
|
||||
\x00\x14\x77\x78\x9c\xe5\x57\x59\x8f\xdb\x36\x10\x7e\xdf\x5f\xa1\
|
||||
|
@ -113,6 +218,11 @@ qt_resource_name = "\
|
|||
\x00\x6f\xa6\x53\
|
||||
\x00\x69\
|
||||
\x00\x63\x00\x6f\x00\x6e\x00\x73\
|
||||
\x00\x19\
|
||||
\x02\x18\xed\xa7\
|
||||
\x00\x53\
|
||||
\x00\x70\x00\x72\x00\x65\x00\x61\x00\x64\x00\x73\x00\x68\x00\x65\x00\x65\x00\x74\x00\x43\x00\x6f\x00\x6e\x00\x74\x00\x72\x00\x6f\
|
||||
\x00\x6c\x00\x6c\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
|
||||
\x00\x0f\
|
||||
\x0a\xa9\x40\xe7\
|
||||
\x00\x53\
|
||||
|
@ -121,8 +231,9 @@ qt_resource_name = "\
|
|||
|
||||
qt_resource_struct = "\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
|
||||
\x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x48\x00\x01\x00\x00\x00\x01\x00\x00\x06\x66\
|
||||
"
|
||||
|
||||
def qInitResources():
|
||||
|
|
Loading…
Reference in New Issue
Block a user