From d0d316bb879c4fe53ddb13f4a5546c782769a383 Mon Sep 17 00:00:00 2001 From: Maxim Stewart Date: Sun, 7 Jul 2019 15:03:44 -0500 Subject: [PATCH] Changed out certain variable names for more generic approach --- bin/pytop-0-0-1-x64.deb | Bin 22364 -> 22376 bytes src/pytop-0.0.1/Pytop/resources/PyTop.glade | 4 +- .../Pytop/signal_classes/GridSignals.py | 55 +++++++++--------- src/pytop-0.0.1/Pytop/widgets/Grid.py | 39 +++++++------ 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/bin/pytop-0-0-1-x64.deb b/bin/pytop-0-0-1-x64.deb index 0e7d59a59dfb2a6b6b03e62aea1783895dd50fc8..1fd06cfd1ce988caf315f2e0cb2a506410b937fc 100644 GIT binary patch delta 20345 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 delta 20333 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 Q46(##`vL#}000D8S}Hth$^ZZW diff --git a/src/pytop-0.0.1/Pytop/resources/PyTop.glade b/src/pytop-0.0.1/Pytop/resources/PyTop.glade index 785772d..2396a89 100644 --- a/src/pytop-0.0.1/Pytop/resources/PyTop.glade +++ b/src/pytop-0.0.1/Pytop/resources/PyTop.glade @@ -31,13 +31,13 @@ - + True False select-folder Folders Directory Chooser - + False diff --git a/src/pytop-0.0.1/Pytop/signal_classes/GridSignals.py b/src/pytop-0.0.1/Pytop/signal_classes/GridSignals.py index 1ac73d9..74034d1 100644 --- a/src/pytop-0.0.1/Pytop/signal_classes/GridSignals.py +++ b/src/pytop-0.0.1/Pytop/signal_classes/GridSignals.py @@ -10,59 +10,58 @@ from utils import FileHandler class GridSignals: def __init__(self, settings): - self.settings = settings - self.filehandler = FileHandler(settings) + self.settings = settings + self.filehandler = FileHandler(settings) - self.builder = self.settings.returnBuilder() - self.desktop = self.builder.get_object("Desktop") - selectedDirDialog = self.builder.get_object("selectedDirDialog") - filefilter = self.builder.get_object("Folders") + self.builder = self.settings.returnBuilder() + self.gridObj = self.builder.get_object("Desktop") + selectDirDialog = self.builder.get_object("selectDirDialog") + filefilter = self.builder.get_object("Folders") - self.desktopPath = self.settings.returnDesktopPath() + self.currentPath = self.settings.returnDesktopPath() self.copyCutArry = [] self.selectedFiles = [] - self.grid = None - self.currentPath = "" + self.gridClss = None self.pasteType = 1 # copy == 1 and cut == 2 # Add filter to allow only folders to be selected - selectedDirDialog.add_filter(filefilter) - selectedDirDialog.set_filename(self.desktopPath) - self.setIconViewDir(selectedDirDialog) + selectDirDialog.add_filter(filefilter) + selectDirDialog.set_filename(self.currentPath) + self.setNewDirectory(selectDirDialog) - def setIconViewDir(self, widget, data=None): - newPath = widget.get_filename() - self.grid = Grid(self.desktop, self.settings) - self.grid.setIconViewDir(newPath) + def setNewDirectory(self, widget, data=None): + newPath = widget.get_filename() + self.gridClss = Grid(self.gridObj, self.settings) + self.gridClss.setNewDirectory(newPath) # File control events def create(self, wdget): - self.currentPath = self.grid.returnCurrentPath() + self.currentPath = self.gridClss.returnCurrentPath() fileName = self.builder.get_object("filenameInput").get_text().strip() type = self.builder.get_object("createSwitch").get_state() if fileName != "": fileName = self.currentPath + "/" + fileName - status = self.filehandler.create(fileName, type) + status = self.filehandler.create(fileName, type) if status == 0: - self.grid.setIconViewDir(self.currentPath) + self.gridClss.setNewDirectory(self.currentPath) def copy(self, widget): self.pasteType = 1 - self.copyCutArry = self.grid.returnSelectedFiles() + self.copyCutArry = self.gridClss.returnSelectedFiles() def cut(self, widget): self.pasteType = 2 - self.copyCutArry = self.grid.returnSelectedFiles() + self.copyCutArry = self.gridClss.returnSelectedFiles() def paste(self, widget): - self.currentPath = self.grid.returnCurrentPath() + self.currentPath = self.gridClss.returnCurrentPath() status = self.filehandler.paste(self.copyCutArry, self.currentPath, self.pasteType) if status == 0: - self.grid.setIconViewDir(self.currentPath) + self.gridClss.setNewDirectory(self.currentPath) if self.pasteType == 2: # cut == 2 self.copyCutArry = [] @@ -72,7 +71,7 @@ class GridSignals: if status == 0: self.selectedFiles = [] - self.grid.setIconViewDir(self.currentPath) + self.gridClss.setNewDirectory(self.currentPath) def trash(self, widget): self.getGridInfo() @@ -80,7 +79,7 @@ class GridSignals: if status == 0: self.selectedFiles = [] - self.grid.setIconViewDir(self.currentPath) + self.gridClss.setNewDirectory(self.currentPath) def rename(self, widget, data): if data.keyval == 65293: # Enter key press @@ -94,8 +93,8 @@ class GridSignals: status = self.filehandler.rename(self.selectedFiles[0], newName.strip()) if status == 0: self.selectedFiles = [newName] - self.grid.setIconViewDir(self.currentPath) + self.gridClss.setNewDirectory(self.currentPath) def getGridInfo(self): - self.selectedFiles = self.grid.returnSelectedFiles() - self.currentPath = self.grid.returnCurrentPath() + self.selectedFiles = self.gridClss.returnSelectedFiles() + self.currentPath = self.gridClss.returnCurrentPath() diff --git a/src/pytop-0.0.1/Pytop/widgets/Grid.py b/src/pytop-0.0.1/Pytop/widgets/Grid.py index 35e44fb..bfb52f9 100644 --- a/src/pytop-0.0.1/Pytop/widgets/Grid.py +++ b/src/pytop-0.0.1/Pytop/widgets/Grid.py @@ -24,8 +24,8 @@ def threaded(fn): return wrapper class Grid: - def __init__(self, desktop, settings): - self.desktop = desktop + def __init__(self, grid, settings): + self.grid = grid self.settings = settings self.fileHandler = FileHandler(self.settings) @@ -33,8 +33,9 @@ class Grid: self.usrHome = settings.returnUserHome() self.builder = settings.returnBuilder() self.ColumnSize = settings.returnColumnSize() - self.vidsList = settings.returnVidsFilter() - self.imagesList = settings.returnImagesFilter() + self.vidsFilter = settings.returnVidsFilter() + self.imagesFilter = settings.returnImagesFilter() + self.iconFactory = Icon(settings) self.gtkLock = False # Thread checks for gtkLock self.threadLock = False # Gtk checks for thread lock self.helperThread = None # Helper thread object @@ -42,14 +43,14 @@ class Grid: self.selectedFiles = [] self.currentPath = "" - self.desktop.set_model(self.store) - self.desktop.set_pixbuf_column(0) - self.desktop.set_text_column(1) - self.desktop.connect("item-activated", self.iconDblLeftClick) - self.desktop.connect("button_release_event", self.iconSingleClick, (self.desktop,)) + self.grid.set_model(self.store) + self.grid.set_pixbuf_column(0) + self.grid.set_text_column(1) + self.grid.connect("item-activated", self.iconDblLeftClick) + self.grid.connect("button_release_event", self.iconSingleClick, (self.grid,)) - def setIconViewDir(self, path): + def setNewDirectory(self, path): self.store.clear() self.currentPath = path @@ -65,9 +66,9 @@ class Grid: if f.startswith('.'): continue if isfile(file): - if file.lower().endswith(self.vidsList): + if file.lower().endswith(self.vidsFilter): vids.append(f) - elif file.lower().endswith(self.imagesList): + elif file.lower().endswith(self.imagesFilter): images.append(f) elif file.lower().endswith((".desktop",)): desktop.append(f) @@ -89,19 +90,19 @@ class Grid: # Run helper thread... self.threadLock = True - self.helperThread = threading.Thread(target=self.generateDirectoryGridIcon, args=(path, files)).start() - glib.idle_add(self.addToGrid, (file,)) # This must stay in the main thread b/c + self.helperThread = threading.Thread(target=self.generateGridIcon, args=(path, files)).start() + glib.idle_add(self.addToGrid, (file,)) # NOTE: This must stay in the main thread b/c # gtk isn't thread safe/aware So, we # make a sad lil thread hot potato 'game' # out of this process. # @threaded - def generateDirectoryGridIcon(self, dirPath, files): + def generateGridIcon(self, dirPath, files): # NOTE: We'll be passing pixbuf after retreval to keep Icon.py file more # universaly usable. We can just remove get_pixbuf to get a gtk.Image type for file in files: - image = Icon(self.settings).createIcon(dirPath, file) + image = self.iconFactory.createIcon(dirPath, file) self.toWorkPool.append([image.get_pixbuf(), file]) self.threadLock = False self.gtkLock = True @@ -138,14 +139,14 @@ class Grid: file = dir + "/" + fileName if fileName == ".": - self.setIconViewDir(dir) + self.setNewDirectory(dir) elif fileName == "..": parentDir = os.path.abspath(os.path.join(dir, os.pardir)) self.currentPath = parentDir - self.setIconViewDir(parentDir) + self.setNewDirectory(parentDir) elif isdir(file): self.currentPath = file - self.setIconViewDir(self.currentPath) + self.setNewDirectory(self.currentPath) elif isfile(file): self.fileHandler.openFile(file) except Exception as e: