Advertisement
Guest User

Averrin

a guest
Dec 14th, 2009
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.46 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf8 -*-
  3. import os, sys, re
  4. import cui
  5. from PyQt4 import QtCore, QtGui, uic
  6. from PyQt4.QtGui import *
  7. from PyQt4.QtCore import *
  8.  
  9. class ncui(QtGui.QMainWindow, cui.Ui_MainWindow):
  10.     def __init__(self, parent=None):
  11.         QtGui.QWidget.__init__(self, parent)
  12.         self.setupUi(self)
  13.  
  14.         QtCore.QObject.connect(self.search, QtCore.SIGNAL("textChanged(QString)"), self.newchar)
  15.         QtCore.QObject.connect(self.listColors, QtCore.SIGNAL("itemClicked(QListWidgetItem*)"), self.cl)
  16.         QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL("activated()"), self.close)
  17.         QtCore.QObject.connect(self.actionReread_file, QtCore.SIGNAL("activated()"), self.reread)
  18.  
  19.         QtCore.QObject.connect(self.actionCopy_FG_HEX, QtCore.SIGNAL("activated()"), self.fg_hex)
  20.         QtCore.QObject.connect(self.actionCopy_FG_Name, QtCore.SIGNAL("activated()"), self.fg_name)
  21.         QtCore.QObject.connect(self.actionCopy_BG_HEX, QtCore.SIGNAL("activated()"), self.bg_hex)
  22.         QtCore.QObject.connect(self.actionCopy_BG_Name, QtCore.SIGNAL("activated()"), self.bg_name)
  23.  
  24.         QtCore.QObject.connect(self.bgcheck, QtCore.SIGNAL("toggled(bool)"), self.tg)
  25.         QtCore.QObject.connect(self.radioButton_2, QtCore.SIGNAL("toggled(bool)"), self.tg)
  26.  
  27.         #QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.dcl)
  28.         self.textBrowser.setText('<b>Lorem ipsum dolor sit amet</b>, consectetur adipiscing elit. Curabitur sit amet orci non nibh sollicitudin scelerisque ut id diam. Cras dignissim ipsum eu nunc blandit ac sodales est gravida. Proin vehicula nisi ut elit adipiscing ut aliquet elit suscipit. Praesent odio massa, tempus in accumsan quis, elementum non orci. Proin elementum lorem quis nunc venenatis sodales. Nullam tincidunt massa sed ante euismod et <u>volutpat leo adipiscing</u>. Integer ante lorem, tincidunt ut cursus vel, scelerisque id elit. In vehicula dui eget ante pharetra lacinia. <s>Pellentesque et libero mi, sagittis imperdiet lorem</s>. Proin ac sapien nibh, id ullamcorper justo. Mauris vitae congue diam. <i>Aenean nulla justo, laoreet id dignissim vitae</i>, auctor ut lectus. Fusce ac congue purus. Etiam quis sapien eget lectus mollis suscipit. Duis convallis felis quis massa pellentesque viverra. Donec ut mauris et nibh mollis condimentum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.<br><br><b>Aliquam imperdiet vestibulum consequat. Duis aliquam purus id nisl sagittis lacinia eu sit amet elit. Pellentesque non dolor arcu, vitae venenatis diam. Cras massa nisl, molestie id malesuada nec, rhoncus eget ante. Praesent dui mauris, volutpat id pulvinar egestas, convallis ac lacus. Aenean sed nisl id mauris viverra congue quis ac mi. Suspendisse vitae augue at massa mollis tristique. Cras diam orci, ornare sit amet rhoncus a, aliquam vel magna. Vivamus tortor nibh, pellentesque sit amet bibendum ac, consectetur et magna. Vestibulum eleifend semper arcu, ut semper eros elementum in. Cras auctor convallis hendrerit. Sed dictum, sapien ac varius consequat, nulla orci iaculis ipsum, in aliquet lorem purus vel neque. Praesent in vestibulum ipsum. Integer commodo nibh vel mauris porta lobortis.</b>')
  29.         self.tb=self.textBrowser
  30.         self.bg='#eeeeee'
  31.         self.fg='#111111'
  32.         self.applySS(self.tb,self.fg,self.bg)
  33.         self.read()
  34.         self.fill(self.colors)
  35.         self.radioButton_2.setChecked(True)
  36.         #self.setWindowOpacity(0.9)
  37.  
  38.     def tg(self,arg):
  39.         QtCore.QObject.disconnect(self.bgcheck, QtCore.SIGNAL("toggled(bool)"), self.tg)
  40.         QtCore.QObject.disconnect(self.radioButton_2, QtCore.SIGNAL("toggled(bool)"), self.tg)
  41.         if self.bgcheck.isChecked():
  42.             self.bgcheck.setChecked(False)
  43.             self.radioButton_2.setChecked(True)
  44.         else:
  45.             self.radioButton_2.setChecked(False)
  46.             self.bgcheck.setChecked(True)
  47.         QtCore.QObject.connect(self.bgcheck, QtCore.SIGNAL("toggled(bool)"), self.tg)
  48.         QtCore.QObject.connect(self.radioButton_2, QtCore.SIGNAL("toggled(bool)"), self.tg)
  49.  
  50.     def read(self):
  51.         lines=[]
  52.         colors=[]
  53.         f=open("col.txt")
  54.         for line in f:
  55.             l=len(line)
  56.             lines.append(line)
  57.             if line[0]=='#':
  58.                 pair=line[:-1].split('=',1)
  59.                 colors.append({'hex':pair[0],'name':pair[1].rstrip()})
  60.         self.colors=colors
  61.  
  62.     def getFC(self,color):
  63.         fc = QtGui.QColor('#202020')
  64.         if color.black()>100:
  65.             fc = QtGui.QColor('#eeeeee')
  66.         return fc
  67.  
  68.     def fill(self,colors):
  69.         for color in colors:
  70.             it=QtGui.QListWidgetItem('  '+color['hex']+'\t\t'+color['name'])
  71.             bc = QtGui.QColor(color['hex'])
  72.             fc=self.getFC(QtGui.QColor(color['hex']))
  73.             it.setBackground(QtGui.QBrush(bc))
  74.             it.setForeground(QtGui.QBrush(fc))
  75.             font=QtGui.QFont('Sans')
  76.             font.setBold(True)
  77.             it.setFont(font)
  78.             self.listColors.addItem(it)
  79.  
  80.     def reread(self):
  81.         self.read()
  82.         self.fill(self.colors)
  83.  
  84.     def getSelectedColor(self):
  85.         it=self.listColors.currentItem()
  86.         color=re.findall("\#[0-9A-F]*",str(it.text()))
  87.         return color[0]
  88.  
  89.     def applySS(self,obj,fg,bg,decor='none'):
  90.         fg=QtGui.QColor(fg)
  91.         bg=QtGui.QColor(bg)
  92.         obj.setStyleSheet("QWidget { background-color: %s; color: %s; font: %s;}" % (bg.name(),fg.name(),decor))
  93.  
  94.     def cl(self):
  95.         state=self.bgcheck.isChecked()
  96.         color=self.getSelectedColor()
  97.         if state:
  98.             self.bg=color
  99.             self.linebg.setText(color)
  100.             self.applySS(self.linebg,self.getFC(QtGui.QColor(color)),color,decor='bold')
  101.             self.linebg_2.setText(self.name(color))
  102.             self.applySS(self.linebg_2,self.getFC(QtGui.QColor(color)),color,decor='bold')
  103.         else:
  104.             self.fg=color
  105.             self.linefg.setText(color)
  106.             self.applySS(self.linefg,self.getFC(QtGui.QColor(color)),color,decor='bold')
  107.             self.linefg_2.setText(self.name(color))
  108.             self.applySS(self.linefg_2,self.getFC(QtGui.QColor(color)),color,decor='bold')
  109.         self.applySS(self.tb,self.fg,self.bg)
  110.  
  111.     def newchar(self):
  112.         inp=self.search.text()
  113.         result=[]
  114.         for color in self.colors:
  115.             if color['name'].rfind(inp)!=-1:
  116.                 result.append(color)
  117.         self.listColors.clear()
  118.         self.fill(result)
  119.  
  120.     def name(self,chex):
  121.         for color in self.colors:
  122.             if color['hex']==chex:
  123.                 return color['name']
  124.  
  125.     def fg_hex(self):
  126.         self.clip(self.linefg.text())
  127.  
  128.     def bg_hex(self):
  129.         self.clip(self.linebg.text())
  130.  
  131.     def fg_name(self):
  132.         self.clip(self.name(self.linefg.text()))
  133.  
  134.     def bg_name(self):
  135.         self.clip(self.name(self.linebg.text()))
  136.  
  137.     def clip(self,arg):
  138.         clipboard = QApplication.clipboard()
  139.         QClipboard.setText(clipboard,arg)
  140.         #print QClipboard.text(clipboard)
  141.  
  142. app = QtGui.QApplication(sys.argv)
  143. w=ncui()
  144. w.show()
  145. sys.exit(app.exec_())
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement