def paintEvent(self,e): qp=QtGui.QPainter() qp.begin(self) qp.setRenderHints(QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) ####DRAW qp.setBrush(QtGui.QColor(40,40,40,200)) qp.drawRect(0,0,self.pos_x+self.SIZE/2,self.s_height) #qp.setBrush(QtGui.QColor(200,20,20)) pen = QtGui.QPen(QtGui.QColor(self.R,self.G,self.B), 8, QtCore.Qt.SolidLine) qp.setPen(pen) qp.drawLine(self.pos_x+self.SIZE/2-2,0,self.pos_x+self.SIZE/2-2,self.s_height) qp.setPen(QtGui.QPen(QtGui.QColor(self.R,self.G,self.B), 4, QtCore.Qt.SolidLine)) r_s=3 a=3 r = QtCore.QRectF(self.pos_x-self.SIZE/2-a,self.s_height/2,r_s,r_s) qp.drawEllipse(r) r = QtCore.QRectF(self.pos_x-self.SIZE/2-a,self.s_height/2-r_s*3,r_s,r_s) qp.drawEllipse(r) r = QtCore.QRectF(self.pos_x-self.SIZE/2-a,self.s_height/2+r_s*3,r_s,r_s) qp.drawEllipse(r) ## ### if self.current_state == "half_open": qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) qp.drawRect(0,0,self.pos_x+self.SIZE/2,self.OPEN_STATE_TOP) rect = QtCore.QRectF(50,0,150,50) qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 3, QtCore.Qt.SolidLine)) ####DRAW BUTTONS qp.setBrush(QtGui.QColor(250,250,250,100)) qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 2, QtCore.Qt.SolidLine)) ###Apps ICO_TOP=self.ICO_TOP icon = QtGui.QIcon("/usr/share/duck-launcher/icons/apps.svg") icon.paint(qp,7,ICO_TOP*0+5,ICO_TOP-5,ICO_TOP-5) #Files icon = QtGui.QIcon("/usr/share/duck-launcher/icons/file.svg") ##temp_file icon.paint(qp,7,ICO_TOP*1+5,ICO_TOP-5,ICO_TOP-5) #Settings icon = QtGui.QIcon("/usr/share/duck-launcher/icons/settings.svg") icon.paint(qp,7,ICO_TOP*2+5,ICO_TOP-5,ICO_TOP-5) #Star icon = QtGui.QIcon("/usr/share/duck-launcher/icons/star.svg") icon.paint(qp,7,ICO_TOP*3+5,ICO_TOP-5,ICO_TOP-5) ##### #Dock Apps try: ####OFF WE GOOO! for i,a in enumerate(self.dock_apps): ico = Apps.ico_from_name(str(a['icon'])) if ico!=None: ico.paint(qp,6,self.OPEN_STATE_TOP+ICO_TOP*i+10,ICO_TOP-5,ICO_TOP-5) except KeyError: print 'No Dock apps' #Open Windows Button icon = QtGui.QIcon("/usr/share/duck-launcher/icons/open-apps.svg") icon.paint(qp,10,self.s_height-ICO_TOP*2-10,ICO_TOP-10,ICO_TOP-10) rect = QtCore.QRectF(10,self.s_height-ICO_TOP*2-10,ICO_TOP-10,ICO_TOP-10) qp.setFont(QtGui.QFont('Hermeneus One',14)) qp.drawText(rect, QtCore.Qt.AlignCenter, str(len(self.open_windows))) #Quit Button icon = QtGui.QIcon("/usr/share/duck-launcher/icons/close.svg") icon.paint(qp,10,self.s_height-ICO_TOP,ICO_TOP-10,ICO_TOP-10) ## ## if self.current_state=="open": if self.activity=="apps": ###page_buttons #Current Text t_rect=QtCore.QRectF(10,10,self.s_width/8,30) if self.current_text=='': qp.drawText(t_rect, QtCore.Qt.AlignCenter, "Type to search..") else: qp.drawText(t_rect, QtCore.Qt.AlignCenter, "Searching: "+self.current_text) max_apps= math.trunc(len(Apps.info(self.current_text))/self.apps_per_page)+1 for i in range(0, max_apps): btn_size = 20 x_pos = self.s_width/6-btn_size+(btn_size*i) rect = QtCore.QRectF(x_pos,2,btn_size,btn_size) qp.drawRect(rect) qp.drawText(rect,QtCore.Qt.AlignCenter,str(i+1)) ###app_buttons for i, app in enumerate(Apps.info(self.current_text)): app_page = math.trunc(i/self.apps_per_page) if app_page==self.app_page_state: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) row_pos = math.trunc(i/self.apps_per_row) x_pos = self.ICON_SIZE*(i-(row_pos*self.apps_per_row))+30 y_pos = row_pos*self.ICON_SIZE+30-(app_page*(self.ICON_SIZE*self.apps_per_col)) try: da_icon=Apps.ico_from_name(app["icon"]) if da_icon!=None: da_icon.paint(qp,x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) r1 =QtCore.QRect(x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) except KeyError: i = QtGui.QImage('images/apps.png') rect= QtCore.QRectF(x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) qp.drawImage(rect,i) qp.setPen(QtGui.QColor(250,250,250)) text_rect = QtCore.QRectF(x_pos-5,y_pos+self.ICON_SIZE-20,self.ICON_SIZE,30) qp.setFont(QtGui.QFont('Hermeneus One',8)) qp.drawText(text_rect,QtCore.Qt.AlignCenter,self.tr(app["name"]).replace(u"Â", "")) ### if self.activity=="files": #Buttons b1_rect=QtCore.QRectF(10,10,30,30) qp.drawRect(b1_rect)#temporarily ico = QtGui.QIcon("/usr/share/duck-launcher/icons/back.svg") max_files= math.trunc(len(self.Files.all())/self.apps_per_page)+1 for i in range(0, max_files): btn_size = 20 x_pos = self.s_width/6-btn_size+(btn_size*i) rect = QtCore.QRectF(x_pos,2,btn_size,btn_size) qp.drawRect(rect) qp.drawText(rect,QtCore.Qt.AlignCenter,str(i+1)) ###app_buttons for i, f in enumerate(self.Files.all()): app_page = math.trunc(i/self.apps_per_page) if app_page==self.files_page_state: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) row_pos = math.trunc(i/self.apps_per_row) x_pos = self.ICON_SIZE*(i-(row_pos*self.apps_per_row))+30 y_pos = row_pos*self.ICON_SIZE+30-(app_page*(self.ICON_SIZE*self.apps_per_col)) print Files.getFileIcon(f["whole_path"]) try: if f["type"]=="directory": da_icon=QtGui.QIcon("/usr/share/duck-launcher/icons/folder.svg") da_icon.paint(qp,x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) if f["type"]=="file": da_icon=QtGui.QIcon("/usr/share/duck-launcher/icons/file.svg") da_icon.paint(qp,x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) except KeyError: i = QtGui.QImage('images/apps.png') rect= QtCore.QRectF(x_pos+10,y_pos+10,self.ICON_SIZE-30,self.ICON_SIZE-30) qp.drawImage(rect,i) qp.setPen(QtGui.QColor(250,250,250)) text_rect = QtCore.QRectF(x_pos-5,y_pos+self.ICON_SIZE-20,self.ICON_SIZE,30) qp.setFont(QtGui.QFont('Hermeneus One',8)) qp.drawText(text_rect,QtCore.Qt.AlignCenter,f["name"].replace(u"Â", "")) if self.activity=="star": qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 3, QtCore.Qt.SolidLine)) all_rows=0 for i,b in enumerate(self.conf['blocks']): all_stuff = Config.get_from_block(b) row_num = math.trunc(len(all_stuff)/self.apps_per_row)+1 h=self.ICON_SIZE*all_rows+20 all_rows+=row_num qp.setFont(QtGui.QFont('Hermeneus One',16)) qp.drawText(QtCore.QRectF(20, h+10,self.s_width/3,200),b['name']) qp.setFont(QtGui.QFont('Hermeneus One',10)) for j, thing in enumerate(all_stuff): #same thing as for the apps row_pos = math.trunc(j/self.apps_per_row) x_pos = self.ICON_SIZE*(j-(row_pos*self.apps_per_row))+40 y_pos = (row_pos*self.ICON_SIZE+20)+h if thing['type']=='app': icon = Apps.ico_from_app(thing['value']) to_write=thing['value'] elif thing['type']=='directory': icon = QtGui.QIcon('/usr/share/duck-launcher/icons/folder.svg') splitted = thing['value'].split('/') to_write = splitted[-1] elif thing['type']=='file': icon = QtGui.QIcon('/usr/share/duck-launcher/icons/file.svg') splitted = thing['value'].split('/') to_write = splitted[-1] icon.paint(qp, x_pos+15,y_pos+15, self.ICON_SIZE-50,self.ICON_SIZE-50) rect = QtCore.QRectF(x_pos+10, y_pos+self.ICON_SIZE-30, self.ICON_SIZE, 30) txt = qp.drawText(rect, to_write)
def paintEvent(self,e): qp=QtGui.QPainter() qp.begin(self) qp.setRenderHints(QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) ####DRAW qp.setBrush(QtGui.QColor(int(self.conf['r2']),int(self.conf['g2']),int(self.conf['b2']),int(self.conf["alpha"]))) qp.drawRect(0,0,self.pos_x+self.SIZE/2,self.s_height) pen = QtGui.QPen(QtGui.QColor(self.R,self.G,self.B), 6, QtCore.Qt.SolidLine) qp.setPen(pen) qp.drawLine(self.pos_x+self.SIZE/2-2,0,self.pos_x+self.SIZE/2-2,self.s_height) if self.current_state!="half_open": qp.setPen(QtGui.QPen(QtGui.QColor(self.R,self.G,self.B,100), 2, QtCore.Qt.SolidLine)) qp.drawLine(self.pos_x-self.SIZE,0,self.pos_x-self.SIZE,self.s_height) qp.setPen(QtGui.QPen(QtGui.QColor(self.R,self.G,self.B), 4, QtCore.Qt.SolidLine)) r_s=3 a=4 r = QtCore.QRectF(self.pos_x-self.SIZE/2,self.s_height/2,r_s,r_s) qp.drawEllipse(r) r = QtCore.QRectF(self.pos_x-self.SIZE/2,self.s_height/2-r_s*3,r_s,r_s) qp.drawEllipse(r) r = QtCore.QRectF(self.pos_x-self.SIZE/2,self.s_height/2+r_s*3,r_s,r_s) qp.drawEllipse(r) ## #Draw rect under clicked app if self.drawAppRect==True and self.appRect!=None: qp.setPen(QtGui.QColor(0,0,0,0)) qp.setBrush(QtGui.QColor(249,249,251,80)) qp.drawRect(self.appRect) ### if self.current_state == "half_open": qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) qp.drawRect(0,0,self.pos_x+self.SIZE/2,self.OPEN_STATE_TOP) rect = QtCore.QRectF(50,0,150,50) ####DRAW BUTTONS ###Apps ICO_TOP=self.ICO_TOP icon = QtGui.QIcon("/usr/share/duck-launcher/icons/apps.svg") icon.paint(qp,7,ICO_TOP*0+5,ICO_TOP-5,ICO_TOP-5) #Files icon = QtGui.QIcon("/usr/share/duck-launcher/icons/file.svg") ##temp_file icon.paint(qp,7,ICO_TOP*1+5,ICO_TOP-5,ICO_TOP-5) #Settings icon = QtGui.QIcon("/usr/share/duck-launcher/icons/settings.svg") icon.paint(qp,7,ICO_TOP*2+5,ICO_TOP-5,ICO_TOP-5) #Star icon = QtGui.QIcon("/usr/share/duck-launcher/icons/star.svg") icon.paint(qp,7,ICO_TOP*3+5,ICO_TOP-5,ICO_TOP-5) ##### #Dock Apps for i,a in enumerate(self.dock_apps): try: ####OFF WE GOOO! ico = Apps.ico_from_name(str(a['icon'])) if ico!=None: ico.paint(qp,6,self.OPEN_STATE_TOP+ICO_TOP*i+10,ICO_TOP-5,ICO_TOP-5) except KeyError: print("Error: Some apps could not be found ") #Open Windows Button qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 2, QtCore.Qt.SolidLine)) icon = QtGui.QIcon("/usr/share/duck-launcher/icons/open-apps.svg") icon.paint(qp,10,self.s_height-ICO_TOP*2-10,ICO_TOP-10,ICO_TOP-10) rect = QtCore.QRectF(10,self.s_height-ICO_TOP*2-10,ICO_TOP-10,ICO_TOP-10) qp.setFont(QtGui.QFont(self.conf["font"],self.HALF_OPEN_POS/3)) qp.drawText(rect, QtCore.Qt.AlignCenter, str(len(self.open_windows))) #System button icon = QtGui.QIcon("/usr/share/duck-launcher/icons/sys.svg") icon.paint(qp,10,self.s_height-ICO_TOP,ICO_TOP-10,ICO_TOP-10) ## ## if self.current_state=="open": close=QtGui.QIcon("/usr/share/duck-launcher/icons/close.svg") close.paint(qp,self.pos_x-13,self.s_height-13,13,13) if self.activity=="apps": ###page_buttons #Current Text qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 2, QtCore.Qt.SolidLine)) qp.setFont(QtGui.QFont(self.conf["font"],10)) t_rect=QtCore.QRectF(10,10,self.s_width/8,30) if self.current_text=='': qp.drawText(t_rect, QtCore.Qt.AlignCenter, "Type to search..") else: qp.drawText(t_rect, QtCore.Qt.AlignCenter, "Searching: "+self.current_text) max_apps= math.trunc((len(self.allApps)-1)/self.apps_per_page)+1 #Page for i in range(0, max_apps): btn_size = 20 x_pos = self.s_width/6-btn_size+(btn_size*i) rect = QtCore.QRectF(x_pos,2,btn_size,btn_size) if self.app_page_state==i: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) else: qp.setBrush(QtGui.QColor(100,100,100,60)) qp.setPen(QtGui.QPen(QtGui.QColor(self.R,self.G,self.B,100), 2, QtCore.Qt.SolidLine)) qp.drawRect(rect) qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 2, QtCore.Qt.SolidLine)) qp.drawText(rect,QtCore.Qt.AlignCenter,str(i+1)) ###app_buttons for i, app in enumerate(self.allApps): app_page = math.trunc(i/self.apps_per_page) if app_page==self.app_page_state: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) row_pos = math.trunc(i/self.apps_per_row) x_pos = self.ICON_SIZE*(i-(row_pos*self.apps_per_row))+30 y_pos = row_pos*self.ICON_SIZE+30-(app_page*(self.ICON_SIZE*self.apps_per_col)) try: ico=Apps.ico_from_name(app["icon"]) if ico!=None: Apps.ico_from_name(app["icon"]).paint(qp,x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) else: i = QtGui.QIcon('/usr/share/duck-launcher/icons/apps.svg') i.paint(qp,x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) except KeyError: i = QtGui.QIcon('/usr/share/duck-launcher/icons/apps.svg') i.paint(qp,x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) qp.setPen(QtGui.QColor(250,250,250)) text_rect = QtCore.QRectF(x_pos+5,y_pos+self.ICON_SIZE-10,self.ICON_SIZE-10,60) #qp.drawRect(text_rect) qp.setFont(QtGui.QFont(self.conf["font"],8)) qp.drawText(text_rect,QtCore.Qt.TextWordWrap |QtCore.Qt.AlignHCenter,self.tr(app["name"]).replace(u"Â", "")) ### if self.activity=="files": #Buttons b1_rect=QtCore.QRectF(10,10,30,30) ico = QtGui.QIcon("/usr/share/duck-launcher/icons/home.svg") ico.paint(qp,self.s_width/3-40-self.SIZE,10,25,25) ico2 = QtGui.QIcon("/usr/share/duck-launcher/icons/back.svg") ico2.paint(qp,self.s_width/3-80-self.SIZE,10,25,25) max_files= math.trunc(len(self.Files.all())/self.apps_per_page)+1 for i in range(0, max_files): btn_size = 20 x_pos = self.s_width/6-btn_size+(btn_size*i) rect = QtCore.QRectF(x_pos,2,btn_size,btn_size) if self.files_page_state==i: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) else: qp.setBrush(QtGui.QColor(100,100,100,100)) qp.setPen(QtGui.QPen(QtGui.QColor(self.R,self.G,self.B,100), 2, QtCore.Qt.SolidLine)) qp.drawRect(rect) qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 2, QtCore.Qt.SolidLine)) qp.setFont(QtGui.QFont(self.conf["font"],10)) qp.drawText(rect,QtCore.Qt.TextWordWrap |QtCore.Qt.AlignHCenter,str(i+1)) #Text t_rect=QtCore.QRectF(10,10,self.s_width/8,30) qp.drawText(t_rect,QtCore.Qt.AlignRight,self.Files.directory.replace(u"Â", "")) ###app_buttons for i, f in enumerate(self.Files.all()): app_page = math.trunc(i/self.apps_per_page) if app_page==self.files_page_state: qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) row_pos = math.trunc(i/self.apps_per_row) x_pos = self.ICON_SIZE*(i-(row_pos*self.apps_per_row))+30 y_pos = row_pos*self.ICON_SIZE+30-(app_page*(self.ICON_SIZE*self.apps_per_col)) try: if f["type"]=="directory": da_icon=QtGui.QIcon("/usr/share/duck-launcher/icons/folder.svg") da_icon.paint(qp,x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) if f["type"]=="file": da_icon=Files.getFileIcon(f["whole_path"]) da_icon.paint(qp,x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) except KeyError: i = QtGui.QImage('images/apps.png') rect= QtCore.QRectF(x_pos+20,y_pos+20,self.ICON_SIZE-40,self.ICON_SIZE-40) qp.drawImage(rect,i) qp.setPen(QtGui.QColor(250,250,250)) text_rect = QtCore.QRectF(x_pos-5,y_pos+self.ICON_SIZE-20,self.ICON_SIZE,30) qp.setFont(QtGui.QFont(self.conf["font"],8)) qp.drawText(text_rect,QtCore.Qt.AlignCenter,f["name"].replace(u"Â", "")) if self.activity=="star": qp.setPen(QtGui.QPen(QtGui.QColor(250,250,250), 3, QtCore.Qt.SolidLine)) all_rows=0 for i,b in enumerate(self.conf['blocks']): all_stuff = Config.get_from_block(b) if len(all_stuff)!=self.apps_per_row: row_num = math.trunc(len(all_stuff)/self.apps_per_row)+1 else: row_num = math.trunc(len(all_stuff)/self.apps_per_row) h=self.ICON_SIZE*all_rows+i*50 all_rows+=row_num qp.setFont(QtGui.QFont(self.conf["font"],8)) for j, thing in enumerate(all_stuff): #same thing as for the apps row_pos = math.trunc(j/self.apps_per_row) x_pos = self.ICON_SIZE*(j-(row_pos*self.apps_per_row))+40 y_pos = (row_pos*self.ICON_SIZE+20)+h+30 if thing['type']=='app': icon = Apps.ico_from_app(thing['value']) to_write=thing['value'] elif thing['type']=='directory': icon = QtGui.QIcon('/usr/share/duck-launcher/icons/folder.svg') splitted = thing['value'].split('/') to_write = splitted[-1] elif thing['type']=='file': icon = QtGui.QIcon('/usr/share/duck-launcher/icons/file.svg') splitted = thing['value'].split('/') to_write = splitted[-1] if icon!=None: icon.paint(qp, x_pos+15,y_pos+15, self.ICON_SIZE-50,self.ICON_SIZE-50) rect = QtCore.QRectF(x_pos-10, y_pos+self.ICON_SIZE-30, self.ICON_SIZE, 30) txt = qp.drawText(rect,QtCore.Qt.TextWordWrap |QtCore.Qt.AlignHCenter,to_write) #Title qp.setPen(QtGui.QColor(0,0,0,0)) qp.setBrush(QtGui.QColor(self.R,self.G,self.B)) qp.drawRect(18, h+40,self.s_width/6,2) qp.setPen(QtGui.QColor(250,250,250)) qp.setFont(QtGui.QFont(self.conf["font"],16)) qp.drawText(QtCore.QRectF(20, h+10,self.s_width/3,200),b['name'])