[PyKDE] kdepyuic in the KDE CVS?
achiestdragon at gmail.com
achiestdragon at gmail.com
Sat Feb 26 12:48:05 GMT 2005
On Saturday 26 February 2005 11:15 am, Joachim Werner wrote:
> Hi!
>
> Is kdepyuic missing in the PyKDE that comes with KDE or do I just not find
> it?
>
> Cheers
>
> Joachim
had the same problem , its not in any of the related rpms at http://sourceforge.net/project/showfiles.php?group_id=61057
although i found this the most complete location for the rest of the rpms needed
and not in the KDE cvs
i was given a copy of kdepyuic from someone , i can ether send you a copy
i will ask him when i speak to him again where he sourced it form
as it is only 4.5KB and written in python i run the risk of posting it here :-
Dave
KDEPyUic follows ...
----------------------------------------------------------------------------
#!/usr/bin/env python
#Terms and Conditions
#Copyright (c) 2002 Jim Bublitz (jbublitz at 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 at urpla.net>
import sys, getopt, os, os.path, string
#---------- globals ----------
FALSE = 0
TRUE = not FALSE
addApp = TRUE
addImport = TRUE
pyuicPath = "pyuic"
filename = ""
# --------- support functions ----------
def getOptions ():
global filename
opterr = 0
shortOptions = "aip:"
longOptions = "noapp noimport pyuic="
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
"""
return FALSE
filename = args[0]
return checkOptions (optlist)
def checkOptions (optlist):
global addApp, addImport, pyuicPath
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]
# --------- operations ----------
def addimport (n):
if addApp:
n.write ('from kdecore import KCmdLineArgs, KApplication\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'
if addApp:
opts = ' -x -o '
else:
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 ()
More information about the PyQt
mailing list