interpolate OpenSCAD surface elements (heightmaps) to BSplineSurface ignore render statement #21 handle difference object with only one child #46 fix sign of import origin in prototype fixed syntax of minkowski statement Added Icon for AddOpenSCADElement #50 and fixed typo in OpenSCAD module ignore OpenSCAD Modifiers #31 handle fuse with a single child remove redefinition of python list make OpenSCAD importCSG avavailable in command line mode add modifier characters to the label of the top affected object started translation remove ColorCodeShapes command from toolbar and menu Added toolbar with Part tools to OpenSCAD WB remove OpenSCAD prototype importer from build
146 lines
5.0 KiB
Python
146 lines
5.0 KiB
Python
#! python
|
|
# -*- coding: utf-8 -*-
|
|
# (c) 2010 Werner Mayer LGPL
|
|
|
|
#***************************************************************************
|
|
#* *
|
|
#* Copyright (c) 2010 Werner Mayer <wmayer@users.sourceforge.net> *
|
|
#* *
|
|
#* This program is free software; you can redistribute it and/or modify *
|
|
#* it under the terms of the GNU Library General Public License (LGPL) *
|
|
#* as published by the Free Software Foundation; either version 2 of *
|
|
#* the License, or (at your option) any later version. *
|
|
#* for detail see the LICENCE text file. *
|
|
#* *
|
|
#* This program is distributed in the hope that it will be useful, *
|
|
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
#* GNU Library General Public License for more details. *
|
|
#* *
|
|
#* You should have received a copy of the GNU Library General Public *
|
|
#* License along with this program; if not, write to the Free Software *
|
|
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
|
#* USA *
|
|
#* *
|
|
#***************************************************************************
|
|
|
|
|
|
Usage = """updatets - update all .ts files found in the source directories
|
|
|
|
Usage:
|
|
updatets
|
|
|
|
Autor:
|
|
(c) 2010 Werner Mayer
|
|
Licence: GPL
|
|
|
|
Version:
|
|
0.1
|
|
"""
|
|
|
|
import os, re
|
|
|
|
# folders that should not be treated by standard Qt tools
|
|
DirFilter = ["^Attic$",
|
|
"^CVS$",
|
|
"^\\.svn$",
|
|
"^\\.deps$",
|
|
"^\\.libs$",
|
|
"src/Mod/Cam",
|
|
"src/Mod/Import",
|
|
"src/Mod/JtReader",
|
|
"src/Mod/Sandbox",
|
|
"src/Mod/TemplatePyMod",
|
|
"src/Mod/Draft",
|
|
"src/Mod/Arch",
|
|
"src/Mod/OpenSCAD",
|
|
"src/Mod/Start"]
|
|
|
|
# folders that need a special pylupdate command
|
|
PyCommands = [["src/Mod/Draft",
|
|
"pylupdate *.py draftlibs/*.py Resources/ui/*.ui -ts Resources/translations/Draft.ts"],
|
|
["src/Mod/Arch",
|
|
"pylupdate *.py Resources/ui/*.ui -ts Resources/translations/Arch.ts"],
|
|
["src/Mod/OpenSCAD",
|
|
"pylupdate *.py Resources/ui/*.ui -ts Resources/translations/OpenSCAD.ts"],
|
|
["src/Mod/Start",
|
|
"pylupdate StartPage/*.py -ts Gui/Resources/translations/StartPage.ts"]]
|
|
|
|
QMAKE = ""
|
|
LUPDATE = ""
|
|
PYLUPDATE = ""
|
|
|
|
def find_tools():
|
|
global QMAKE, LUPDATE, PYLUPDATE
|
|
if (os.system("qmake-qt4 -version") == 0):
|
|
QMAKE = "qmake-qt4"
|
|
elif (os.system("qmake -version") == 0):
|
|
QMAKE = "qmake"
|
|
else:
|
|
raise Exception("Cannot find qmake")
|
|
if (os.system("lupdate-qt4 -version") == 0):
|
|
LUPDATE = "lupdate-qt4"
|
|
elif (os.system("lupdate -version") == 0):
|
|
LUPDATE = "lupdate"
|
|
else:
|
|
raise Exception("Cannot find lupdate")
|
|
if (os.system("pylupdate -version") == 0):
|
|
PYLUPDATE = "pylupdate"
|
|
elif (os.system("pylupdate4 -version") == 0):
|
|
PYLUPDATE = "pylupdate4"
|
|
else:
|
|
raise Exception("Cannot find pylupdate")
|
|
print "Qt tools:", QMAKE, LUPDATE, PYLUPDATE
|
|
|
|
def filter_dirs(item):
|
|
global DirFilter
|
|
if not os.path.isdir(item):
|
|
return False
|
|
for regexp in DirFilter:
|
|
a = re.compile(regexp)
|
|
if (re.match(a, item)):
|
|
return False
|
|
return True
|
|
|
|
def update_translation(path):
|
|
global QMAKE, LUPDATE
|
|
cur = os.getcwd()
|
|
os.chdir(path)
|
|
filename = os.path.basename(path) + ".pro"
|
|
os.system(QMAKE + " -project")
|
|
os.system(LUPDATE + " " + filename)
|
|
os.remove(filename)
|
|
os.chdir(cur)
|
|
|
|
def update_python_translation(item):
|
|
global PYLUPDATE
|
|
cur = os.getcwd()
|
|
os.chdir(item[0])
|
|
execline = item[1].replace("pylupdate",PYLUPDATE)
|
|
print "Executing special command in ",item[0],": ",execline
|
|
os.system(execline)
|
|
os.chdir(cur)
|
|
|
|
def main():
|
|
find_tools()
|
|
path = os.path.realpath(__file__)
|
|
path = os.path.dirname(path)
|
|
os.chdir(path)
|
|
os.chdir("..")
|
|
os.chdir("..")
|
|
dirs=os.listdir("src/Mod")
|
|
for i in range(len(dirs)):
|
|
dirs[i] = "src/Mod/" + dirs[i]
|
|
dirs.append("src/Base")
|
|
dirs.append("src/App")
|
|
dirs.append("src/Gui")
|
|
dirs = filter(filter_dirs, dirs)
|
|
for i in dirs:
|
|
update_translation(i)
|
|
for j in PyCommands:
|
|
update_python_translation(j)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|