Advertisement
Guest User

moox-qt4

a guest
Mar 18th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import os, sys
  5. from PyQt4 import QtCore, QtGui
  6.  
  7. BOFFS = 101 # offset id bottoni
  8.  
  9. def getmoodirs():
  10.     global homedir, moodir
  11.  
  12.     homedir = os.path.abspath(os.path.dirname(sys.argv[0]))
  13.     moodir = os.path.join(homedir, 'moo')
  14.  
  15. def makemoo():
  16.     global moodir, objlst
  17.  
  18.     nostart = ['.', 'no-list']
  19.  
  20.     objlst = sorted(os.listdir(moodir), key = str.lower)
  21.     if len(objlst) == 0:
  22.         return False
  23.  
  24.     oklist =[] # start
  25.     for ele in objlst:
  26.         no = False
  27.         for c in nostart:
  28.             no = ele[:len(c)] == c
  29.             if no: break
  30.         if not no:
  31.             oklist.append(ele)
  32.     if len(oklist) == 0:
  33.         return False
  34.  
  35.     if len(objlst) > 20:
  36.         objlst = objlst[:20]
  37.     return True
  38.  
  39. class mooWidget(QtGui.QWidget):
  40.     def __init__(self, parent=None):
  41.         QtGui.QWidget.__init__(self, parent)
  42.  
  43.         global homedir, moodir
  44.         global objlst
  45.  
  46.         tit = os.path.basename(homedir)
  47.         self.setWindowTitle(tit)
  48.         self.setWindowIcon(QtGui.QIcon('moo.png'))
  49.         self.setWindowFlags(QtCore.Qt.CustomizeWindowHint |
  50.                             QtCore.Qt.WindowSystemMenuHint |
  51.                             QtCore.Qt.WindowMinimizeButtonHint |
  52.                             QtCore.Qt.WindowCloseButtonHint)
  53.  
  54.         self.btnGroup = QtGui.QButtonGroup()
  55.         self.btnGroup.buttonClicked[int].connect(self.OnClick)
  56.  
  57.         for c in range(len(objlst)):
  58.             txt = objlst[c]
  59.             if len(txt) > 32:
  60.                 txt = txt[:31]
  61.             self.btn = QtGui.QPushButton(txt, self)
  62.             self.btn.setGeometry(0, 40 * c, 240, 50)
  63.             self.btnGroup.addButton(self.btn)
  64.             self.btnGroup.setId(self.btn, BOFFS + c)
  65.  
  66.         h = 10 + len(objlst) * 40
  67.         self.setFixedSize(240, h)
  68.  
  69.     def OnClick(self, bid):
  70.         global objlst, moodir
  71.  
  72.         w = objlst[bid - BOFFS]
  73.         wp = os.path.join(moodir, w)
  74.         if os.path.isdir(wp):
  75.             os.system('totem "%s" &' % wp)
  76.  
  77. # main
  78. getmoodirs()
  79. if not makemoo():
  80.     sys.exit(2)
  81.  
  82. app = QtGui.QApplication(sys.argv)
  83. widget = mooWidget()
  84. widget.show()
  85. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement