Added early stages of icon toggle

This commit is contained in:
Maxim Stewart 2020-07-05 21:10:55 -05:00
parent 233111bf38
commit a668bf991b
5 changed files with 91 additions and 50 deletions

Binary file not shown.

View File

@ -46,9 +46,8 @@ class Main:
win.set_default_size(mon.width, mon.height)
win.set_size_request(mon.width, mon.height)
win.set_resizable(False)
win.move(mon.x, mon.y)
win.show()
i += 1

View File

@ -76,12 +76,13 @@ class Signals(CPUDrawMixin, MainMenuMixin, TaskbarMixin, GridMixin):
# Program Menu Parts
self.menuWindow = self.builder.get_object("menuWindow")
self.menuWindow.set_keep_above(True);
self.showIcons = False
self.iconFactory = Icon(self.settings)
self.grpDefault = "Accessories"
self.progGroup = self.grpDefault
HOME_APPS = os.path.expanduser('~') + "/.local/share/applications/"
paths = ["/usr/share/applications/", HOME_APPS]
paths = ["/opt/", "/usr/share/applications/", HOME_APPS]
self.menuData = self.getDesktopFilesInfo(paths)
self.desktopObjs = []
self.getSubgroup()

View File

@ -71,8 +71,11 @@ class MainMenuMixin:
for obj in self.desktopObjs:
title = obj[0]
dirPath = obj[1]
if self.showIcons:
image = self.iconFactory.parseDesktopFiles(dirPath) # .get_pixbuf()
self.addToProgramListView(widget, title, image)
else:
self.addToProgramListViewAsText(widget, title)
@threaded
@ -95,9 +98,26 @@ class MainMenuMixin:
button.show_all()
glib.idle_add(widget.add, (button))
@threaded
def addToProgramListViewAsText(self, widget, title):
button = gtk.Button(label=title)
button.connect("clicked", self.executeProgram)
children = button.get_children()
label = children[0]
label.set_halign(1)
label.set_line_wrap(True)
label.set_max_width_chars(38)
label.set_size_request(640, 64)
button.show_all()
glib.idle_add(widget.add, (button))
def executeProgram(self, widget):
"""
# TODO:
Need to refactor and pull out the sub loop that is used in both cases...
"""
entry = widget.get_label().strip()
@ -176,10 +196,22 @@ class MainMenuMixin:
}
for path in paths:
if not "/opt/" in path:
self.listAndUpdateDesktopFiles(path, menuObjs);
else:
for folder in listdir(path):
try:
fPath = path + folder + "/"
self.listAndUpdateDesktopFiles(fPath, menuObjs);
except Exception as e:
print( repr(e) )
return menuObjs
def listAndUpdateDesktopFiles(self, path, menuObjs):
for f in listdir(path):
fPath = path + f
flags = ["mimeinfo.cache", "defaults.list"]
if not f in flags and isfile(fPath):
if isfile(fPath) and f.endswith(".desktop"):
xdgObj = DesktopEntry(fPath)
title = xdgObj.getName()
@ -218,8 +250,6 @@ class MainMenuMixin:
"tryExec": tryExec, "fileName": f,
"filePath": fPath, "icon": icon})
return menuObjs
def getSubgroup(self, query = ""):
"""

View File

@ -90,7 +90,6 @@ class Icon:
print( repr(e) )
return gtk.Image.new_from_file(self.INTERNAL_ICON_PTH)
def parseDesktopFiles(self, fullPath):
try:
xdgObj = DesktopEntry(fullPath)
@ -117,12 +116,12 @@ class Icon:
proc = subprocess.Popen(["wget", "-O", hashImgPth, imageLink])
proc.wait()
# Use video sizes since headers are bigger
# Use video thumbnail sizes since headers are bigger
return self.createScaledImage(hashImgPth, self.viIconWH)
elif os.path.exists(icon):
return self.createScaledImage(icon, self.systemIconImageWH)
else:
iconsDirs = ["/usr/share/pixmaps", self.usrHome + "/.icons", "/usr/share/icons" ,]
iconsDirs = ["/usr/share/pixmaps", "/usr/share/icons", self.usrHome + "/.icons" ,]
altIconPath = ""
for iconsDir in iconsDirs:
@ -181,6 +180,18 @@ class Icon:
print( repr(e) )
return None
def createFromFile(self, path):
try:
return gtk.Image.new_from_file(path)
except Exception as e:
print("Image from file Issue:")
print( repr(e) )
return None
def returnGenericIcon(self):
return gtk.Image.new_from_file(self.INTERNAL_ICON_PTH)
def generateVideoThumbnail(self, fullPath, hashImgPth):
proc = None
try: