From 88d836ac062ee054c2edf80364f86d3e7d2fc720 Mon Sep 17 00:00:00 2001 From: Maxim Stewart Date: Fri, 8 May 2020 21:02:13 -0500 Subject: [PATCH] Changed load setup, added logger class, +more --- bin/pytop-0-0-1-x64.deb | Bin 49640 -> 32448 bytes src/Pytop/PyTop.sh | 12 -- src/Pytop/{PyTop.py => __init__.py} | 4 +- src/Pytop/__main__.py | 35 ++++ .../{PyTop.glade => Main_Window.glade} | 162 ++++++++++-------- src/Pytop/signal_classes/CrossClassSignals.py | 6 +- src/Pytop/signal_classes/DrawSignals.py | 2 +- src/Pytop/signal_classes/TaskbarSignals.py | 13 +- src/Pytop/utils/Logger.py | 55 ++++++ src/Pytop/utils/Settings.py | 13 +- src/Pytop/utils/__init__.py | 3 +- src/Pytop/widgets/Grid.py | 14 +- src/Pytop/widgets/Icon.py | 12 +- src/Pytop_exec_bin.cpp | 2 +- 14 files changed, 221 insertions(+), 112 deletions(-) delete mode 100644 src/Pytop/PyTop.sh rename src/Pytop/{PyTop.py => __init__.py} (97%) mode change 100644 => 100755 create mode 100644 src/Pytop/__main__.py rename src/Pytop/resources/{PyTop.glade => Main_Window.glade} (88%) mode change 100644 => 100755 src/Pytop/signal_classes/DrawSignals.py create mode 100644 src/Pytop/utils/Logger.py diff --git a/bin/pytop-0-0-1-x64.deb b/bin/pytop-0-0-1-x64.deb index e1fe45e6a5565876cb25a3ccf3531cc002669d8b..90874b2b52807960d3f1deee6e8e2883f23d3ead 100644 GIT binary patch delta 31920 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 wv!xDoalURbau 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
ayx1$ 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 X0)Vg%VqJj_vBYQl0ssI200dcDM5wOg diff --git a/src/Pytop/PyTop.sh b/src/Pytop/PyTop.sh deleted file mode 100644 index 6cf9f3f..0000000 --- a/src/Pytop/PyTop.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# set -o xtrace ## To debug scripts -# set -o errexit ## To exit on error -# set -o errunset ## To exit if a variable is referenced but not set - - -function main() { - # GTK_DEBUG=interactive python3 ./PyTop.py - python3 ./PyTop.py -} -main $@; diff --git a/src/Pytop/PyTop.py b/src/Pytop/__init__.py old mode 100644 new mode 100755 similarity index 97% rename from src/Pytop/PyTop.py rename to src/Pytop/__init__.py index 0bf676f..787e0a9 --- a/src/Pytop/PyTop.py +++ b/src/Pytop/__init__.py @@ -19,7 +19,7 @@ from signal_classes import CrossClassSignals, GridSignals, TaskbarSignals, DrawS class Main: - def __init__(self): + def __init__(self, args): setproctitle('Pytop') GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, gtk.main_quit) faulthandler.enable() # For better debug info @@ -74,4 +74,4 @@ if __name__ == "__main__": main = Main() gtk.main() except Exception as e: - print(e) + print( repr(e) ) diff --git a/src/Pytop/__main__.py b/src/Pytop/__main__.py new file mode 100644 index 0000000..06514d9 --- /dev/null +++ b/src/Pytop/__main__.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + + +# Python imports +import argparse +import pdb # For trace debugging +from setproctitle import setproctitle + +# Gtk imports +import gi, faulthandler, signal +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk as gtk +from gi.repository import GLib + +# Application imports +from __init__ import Main + + + +if __name__ == "__main__": + try: + # pdb.set_trace() + setproctitle('Pytop') + GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, gtk.main_quit) + faulthandler.enable() # For better debug info + parser = argparse.ArgumentParser() + # Add long and short arguments + parser.add_argument("--file", "-f", default="default", help="JUST SOME FILE ARG.") + + # Read arguments (If any...) + args = parser.parse_args() + main = Main(args) + gtk.main() + except Exception as e: + print( repr(e) ) diff --git a/src/Pytop/resources/PyTop.glade b/src/Pytop/resources/Main_Window.glade similarity index 88% rename from src/Pytop/resources/PyTop.glade rename to src/Pytop/resources/Main_Window.glade index 46b1731..2a958f2 100644 --- a/src/Pytop/resources/PyTop.glade +++ b/src/Pytop/resources/Main_Window.glade @@ -7,14 +7,6 @@ inode/directory - - 1 - 100 - 1 - 1 - 10 - - False 800 @@ -42,6 +34,26 @@ + + True + False + start + + + + + + + + + + False + True + end + 3 + + + True False @@ -50,26 +62,11 @@ Directory Chooser - - False - True - 1 - - - - - True - False - start - - - - False True end - 0 + 2 @@ -108,58 +105,6 @@ 0 - - - True - False - - - True - True - True - True - rgb(138,226,52) - - - - False - True - 1 - - - - - 60 - True - False - - - - - True - True - 2 - - - - - True - True - brushSizeProp - - - False - True - 2 - - - - - False - True - 2 - - True @@ -265,6 +210,9 @@ 126 True False + 10 + 10 + center False @@ -304,6 +252,68 @@ + + 1 + 100 + 1 + 1 + 10 + + + + 500 + 0 + False + taskBarWorkspacesVer + bottom + + + True + False + + + True + True + True + True + rgb(138,226,52) + + + + False + True + 1 + + + + + 60 + True + False + + + + + True + True + 2 + + + + + True + True + brushSizeProp + + + False + True + 2 + + + + + True False diff --git a/src/Pytop/signal_classes/CrossClassSignals.py b/src/Pytop/signal_classes/CrossClassSignals.py index 9876233..d1d6007 100644 --- a/src/Pytop/signal_classes/CrossClassSignals.py +++ b/src/Pytop/signal_classes/CrossClassSignals.py @@ -18,8 +18,10 @@ class CrossClassSignals: # Displays Timer def displayclock(self): - now = datetime.now() - timeStr = now.strftime("%I:%M %p %m/%d/%Y") + now = datetime.now() + hms = now.strftime("%I:%M %p") + mdy = now.strftime("%m/%d/%Y") + timeStr = hms + "\n" + mdy self.timeLabel.set_label(timeStr) return True diff --git a/src/Pytop/signal_classes/DrawSignals.py b/src/Pytop/signal_classes/DrawSignals.py old mode 100644 new mode 100755 index 8b2296c..b47ee2b --- a/src/Pytop/signal_classes/DrawSignals.py +++ b/src/Pytop/signal_classes/DrawSignals.py @@ -111,7 +111,7 @@ class DrawSignals: ah = area.get_allocated_height() self.aw = aw self.ah = ah - self.xStep = aw / 200 # For x-axis 60 * 2 per 1 sec steps + self.xStep = aw / 200 # For x-axis self.yStep = ah / 100 # For y-axis %s self.surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, aw, ah) self.brush = cairo.Context(self.surface) diff --git a/src/Pytop/signal_classes/TaskbarSignals.py b/src/Pytop/signal_classes/TaskbarSignals.py index 5a90075..cff148b 100644 --- a/src/Pytop/signal_classes/TaskbarSignals.py +++ b/src/Pytop/signal_classes/TaskbarSignals.py @@ -16,6 +16,13 @@ from gi.repository import GLib # Application imports + +class MouseButton: + LEFT_BUTTON = 1 + MIDDLE_BUTTON = 2 + RIGHT_BUTTON = 3 + + class TaskbarSignals: def __init__(self, settings): self.settings = settings @@ -32,7 +39,7 @@ class TaskbarSignals: now = datetime.now() timeStr = now.strftime("%m/%d/%Y") parts = timeStr.split("/") - month = int(parts[0]) + month = int(parts[0]) - 1 day = int(parts[1]) year = int(parts[2]) calendarWid.select_day(day) @@ -42,6 +49,10 @@ class TaskbarSignals: calendarPopup.popdown() + def showSystemStats(self, widget, eve): + if eve.type == gdk.EventType.BUTTON_RELEASE and eve.button == MouseButton.RIGHT_BUTTON: + self.builder.get_object('systemStats').popup() + def setPagerWidget(self): pager = wnck.Pager() diff --git a/src/Pytop/utils/Logger.py b/src/Pytop/utils/Logger.py new file mode 100644 index 0000000..c8dc0db --- /dev/null +++ b/src/Pytop/utils/Logger.py @@ -0,0 +1,55 @@ +# Python imports +import os, logging + +# Application imports + + +class Logger: + def __init__(self): + self.USER_HOME = os.path.expanduser("~") + + def get_logger(self, loggerName = "NO_LOGGER_NAME_PASSED", createFile = True): + """ + Create a new logging object and return it. + :note: + NOSET # Don't know the actual log level of this... (defaulting or literally none?) + Log Levels (From least to most) + Type Value + CRITICAL 50 + ERROR 40 + WARNING 30 + INFO 20 + DEBUG 10 + :param loggerName: Sets the name of the logger object. (Used in log lines) + :param createFile: Whether we create a log file or just pump to terminal + + :return: the logging object we created + """ + + globalLogLvl = logging.DEBUG # Keep this at highest so that handlers can filter to their desired levels + chLogLevel = logging.CRITICAL # Prety musch the only one we change ever + fhLogLevel = logging.DEBUG + log = logging.getLogger(loggerName) + + # Set our log output styles + fFormatter = logging.Formatter('[%(asctime)s] %(pathname)s:%(lineno)d %(levelname)s - %(message)s', '%m-%d %H:%M:%S') + cFormatter = logging.Formatter('%(pathname)s:%(lineno)d] %(levelname)s - %(message)s') + + ch = logging.StreamHandler() + ch.setLevel(level=chLogLevel) + ch.setFormatter(cFormatter) + log.addHandler(ch) + + if createFile: + folder = self.USER_HOME + ".config/pytop/logs" + file = folder + "/application.log" + + if not os.path.exists(folder): + os.mkdir(folder) + + fh = logging.FileHandler(file) + fh.setLevel(level=fhLogLevel) + fh.setFormatter(fFormatter) + log.addHandler(fh) + + return log diff --git a/src/Pytop/utils/Settings.py b/src/Pytop/utils/Settings.py index 1afaecc..c9c4174 100644 --- a/src/Pytop/utils/Settings.py +++ b/src/Pytop/utils/Settings.py @@ -15,6 +15,7 @@ import os, json class Settings: def __init__(self, monIndex = 0): self.builder = None + self.SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__)) + "/" # 'Filters' self.office = ('.doc', '.docx', '.xls', '.xlsx', '.xlt', '.xltx', '.xlm', @@ -76,7 +77,7 @@ class Settings: def attachBuilder(self, builder): self.builder = builder - self.builder.add_from_file("resources/PyTop.glade") + self.builder.add_from_file(self.SCRIPT_PTH + "../resources/Main_Window.glade") def createWindow(self): # Get window and connect signals @@ -93,7 +94,7 @@ class Settings: # bind css file cssProvider = gtk.CssProvider() - cssProvider.load_from_path('resources/stylesheet.css') + cssProvider.load_from_path(self.SCRIPT_PTH + '../resources/stylesheet.css') screen = gdk.Screen.get_default() styleContext = gtk.StyleContext() styleContext.add_provider_for_screen(screen, cssProvider, gtk.STYLE_PROVIDER_PRIORITY_USER) @@ -113,6 +114,10 @@ class Settings: return monitors + def returnMonitorsInfo(self): + return self.monitors + + def saveSettings(self, startPath): data = {} data['pytop_settings'] = [] @@ -125,10 +130,6 @@ class Settings: json.dump(data, outfile) - - def returnMonitorsInfo(self): - return self.monitors - def returnSettings(self): returnData = [] diff --git a/src/Pytop/utils/__init__.py b/src/Pytop/utils/__init__.py index 590b2ca..548f6d4 100644 --- a/src/Pytop/utils/__init__.py +++ b/src/Pytop/utils/__init__.py @@ -1,3 +1,4 @@ from utils.Dragging import Dragging -from utils.Settings import Settings +from .Logger import Logger from utils.FileHandler import FileHandler +from utils.Settings import Settings diff --git a/src/Pytop/widgets/Grid.py b/src/Pytop/widgets/Grid.py index 3154bd9..f8363f5 100644 --- a/src/Pytop/widgets/Grid.py +++ b/src/Pytop/widgets/Grid.py @@ -48,7 +48,6 @@ class Grid: self.grid.connect("button_release_event", self.iconSingleClick, (self.grid,)) def setNewDirectory(self, path): - self.store.clear() self.currentPath = path dirPaths = ['.', '..'] vids = [] @@ -109,9 +108,15 @@ class Grid: @threaded def updateGrid(self, model, dirPath, file, i): - image = self.iconFactory.createThumbnail(dirPath, file).get_pixbuf() - iter = model.get_iter_from_string(str(i)) - glib.idle_add(self.replaceInGrid, (iter, image,)) + # Sinking errors b/c too lazy to find why we get some invalid tree paths when starting.. + # I really should take time to figure it out...buuuutttt....it's non-fatal. (For now.) + # Images don't seem to always load which is curious... + try: + image = self.iconFactory.createThumbnail(dirPath, file).get_pixbuf() + iter = model.get_iter_from_string(str(i)) + glib.idle_add(self.replaceInGrid, (iter, image,)) + except Exception as e: + print("widgets/Grid.py sinking errors on updateGrid method...") def addToGrid(self, dataSet): self.store.append([dataSet[0], dataSet[1]]) @@ -127,6 +132,7 @@ class Grid: fileName = model[item][1] dir = self.currentPath file = dir + "/" + fileName + self.store.clear() if fileName == ".": self.setNewDirectory(dir) diff --git a/src/Pytop/widgets/Icon.py b/src/Pytop/widgets/Icon.py index 7b97926..3cb5acf 100644 --- a/src/Pytop/widgets/Icon.py +++ b/src/Pytop/widgets/Icon.py @@ -58,7 +58,7 @@ class Icon: return thumbnl except Exception as e: print("Thumbnail generation issue:") - print(e) + print( repr(e) ) return gtk.Image.new_from_file(self.SCRIPT_PTH + "../resources/icons/video.png") @@ -85,7 +85,7 @@ class Icon: return thumbnl except Exception as e: print("Icon generation issue:") - print(e) + print( repr(e) ) return gtk.Image.new_from_file(self.INTERNAL_ICON_PTH) @@ -141,7 +141,7 @@ class Icon: return self.createScaledImage(altIconPath, self.systemIconImageWH) except Exception as e: print(".desktop icon generation issue:") - print(e) + print( repr(e) ) return None @@ -162,7 +162,7 @@ class Icon: return None except Exception as e: print("system icon generation issue:") - print(e) + print( repr(e) ) return None @@ -173,7 +173,7 @@ class Icon: return gtk.Image.new_from_pixbuf(scaledPixBuf) except Exception as e: print("Image Scaling Issue:") - print(e) + print( repr(e) ) return None def generateVideoThumbnail(self, fullPath, hashImgPth): @@ -209,4 +209,4 @@ class Icon: proc.wait() except Exception as e: print("Video thumbnail generation issue in thread:") - print(e) + print( repr(e) ) diff --git a/src/Pytop_exec_bin.cpp b/src/Pytop_exec_bin.cpp index 93af3d7..cc6c27f 100644 --- a/src/Pytop_exec_bin.cpp +++ b/src/Pytop_exec_bin.cpp @@ -5,6 +5,6 @@ using namespace std; int main() { chdir("/opt/Pytop/"); - system("python3 PyTop.py"); + system("python3 ."); return 0; }