diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-08-16 09:06:37 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-08-16 09:06:37 +0000 |
commit | 39d98386f72c65826e162e3e8fd36752ec469252 (patch) | |
tree | 5cec746207c4c892d064beafca1de94568a3aeb9 /contrib | |
download | pytde-39d98386f72c65826e162e3e8fd36752ec469252.tar.gz pytde-39d98386f72c65826e162e3e8fd36752ec469252.zip |
Move python-kde3 to the more correct python-trinity
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/libraries/python-trinity@1247483 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/kdepyuic | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/contrib/kdepyuic b/contrib/kdepyuic new file mode 100755 index 0000000..9110421 --- /dev/null +++ b/contrib/kdepyuic @@ -0,0 +1,163 @@ +#!/usr/bin/env python + +#Terms and Conditions + +#Copyright (c) 2002 Jim Bublitz (jbublitz@nwinternet.com) + +#Permission is hereby granted, free of charge, to any person obtaining a copy of +#this software and associated documentation files (the "Software"), to deal in +#the Software without restriction, including without limitation the rights to +#use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +#of the Software, and to permit persons to whom the Software is furnished to do +#so, subject to the following conditions: + +#The above copyright notice and this permission notice shall be included in all +#copies or substantial portions of the Software. + +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +#IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#Except as contained in this notice, the names of the copyright holders shall not +#be used in advertising or otherwise to promote the sale, use or other dealings +#in this Software without prior written authorization from the copyright holders. + +# 2003/04/19: some minor bits from Hans-Peter Jansen, <hpj@urpla.net> + +import sys, getopt, os, os.path, string + +#---------- globals ---------- + +FALSE = 0 +TRUE = not FALSE +addApp = TRUE +addImport = TRUE +pyuicPath = "pyuic" +filename = "" +i18nFunc = FALSE + + +# --------- support functions ---------- + +def getOptions (): + global filename + + opterr = 0 + shortOptions = 'aip:' + longOptions = ['noapp', 'noimport', 'pyuic=', 'usekdei18n'] + + try: + optlist, args = getopt.getopt (sys.argv [1:], shortOptions, longOptions) + except getopt.GetoptError: + opterr = 1 + optlist = [] + args = [] + + if opterr or (len (args) != 1): + print """\nUsage: + + kdepyuic [options] filename.ui + + Options: + -a, --noapp Don't add KApplication code + -i, --noimport Don't add kdecore, kdeui import statements + -p, --pyuic Path to pyuic program + --usekdei18n Adds KDEs default i18n functions to your Python KDE ui file + """ + return FALSE + + filename = args[0] + return checkOptions (optlist) + +def checkOptions (optlist): + global addApp, addImport, pyuicPath, i18nFunc + + for pair in optlist: + if (pair [0] == '--noapp') or (pair [0] == '-a'): + addApp = FALSE + + elif (pair [0] == '--noimport') or (pair [0] == '-i'): + addImport = FALSE + + elif (pair [0] == '--pyuic') or (pair [0] == '-p'): + pyuicPath = pair [1] + + if (pair [0] == '--usekdei18n'): + i18nFunc=TRUE + else: + i18nFunc=FALSE + + +# --------- operations ---------- + +def addimport (n): + if addApp: + n.write ('from kdecore import KCmdLineArgs, KApplication\n') + if i18nFunc: + n.write ('from kdecore import i18n\n') + n.write ('from kdeui import *\n\n') + + +def addapp (indent, n): + n.write (indent + 'appname = ""\n') + n.write (indent + 'description = ""\n') + n.write (indent + 'version = ""\n') + n.write ('\n') + n.write (indent + 'KCmdLineArgs.init (sys.argv, appname, description, version)\n') + n.write (indent + 'a = KApplication ()\n\n') + +def doPyuic (): + + fn = os.path.splitext (os.path.basename(filename)) [0] + '.py' + opts = "" + + if i18nFunc: + opts = opts + ' -tr i18n ' + + if addApp: + opts = opts + ' -x ' + + opts = opts + ' -o ' + + + if os.system (pyuicPath + opts + fn + ' ' + filename) != 0: + print pyuicPath + opts + fn + ' ' + filename + " failed" + sys.exit (-1) + + if addApp or addImport: + m = open (fn, 'r') + n = open (fn + '.tmp', 'w') + + buff = m.readlines () + + for line in buff: + if addImport and (string.strip (line) == 'from qt import *'): + n.write (line) + addimport (n) + elif addApp and (string.strip (line) == 'a = QApplication(sys.argv)'): + indent = 0 + while line [indent] in string.whitespace: + indent = indent + 1 + addapp (line[:indent], n) + elif string.find(line, " = KDatePicker(") != -1: + o = string.find(line, ",") + n.write (line[:o] + ",QDate.currentDate()" + line[o:]) + else: + n.write (line) + + m.close () + n.close () + + os.unlink (fn) + os.rename (fn + '.tmp', fn) + + print fn + ' written' + + +# --------- main ---------- + +getOptions () +doPyuic () |