summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-08-16 09:06:37 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-08-16 09:06:37 +0000
commit39d98386f72c65826e162e3e8fd36752ec469252 (patch)
tree5cec746207c4c892d064beafca1de94568a3aeb9 /contrib
downloadpytde-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-xcontrib/kdepyuic163
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 ()