Pytop/src/Pytop/signal_classes/GridSignals.py

102 lines
3.5 KiB
Python

# Gtk imports
# Python imports
# Application imports
from widgets import Grid
from utils import Dragging
from utils import FileHandler
class GridSignals:
def __init__(self, settings):
self.settings = settings
self.filehandler = FileHandler(settings)
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.currentPath = self.settings.returnSettings()[0]
self.copyCutArry = []
self.selectedFiles = []
self.gridClss = None
self.pasteType = 1 # copy == 1 and cut == 2
# Add filter to allow only folders to be selected
selectDirDialog.add_filter(filefilter)
selectDirDialog.set_filename(self.currentPath)
self.setNewDirectory(selectDirDialog)
def setNewDirectory(self, widget, data=None):
newPath = widget.get_filename()
self.gridClss = Grid(self.gridObj, self.settings)
self.gridClss.setNewDirectory(newPath)
self.settings.saveSettings(newPath)
# File control events
def create(self, wdget):
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)
if status == 0:
self.gridClss.setNewDirectory(self.currentPath)
def copy(self, widget):
self.pasteType = 1
self.copyCutArry = self.gridClss.returnSelectedFiles()
def cut(self, widget):
self.pasteType = 2
self.copyCutArry = self.gridClss.returnSelectedFiles()
def paste(self, widget):
self.currentPath = self.gridClss.returnCurrentPath()
status = self.filehandler.paste(self.copyCutArry, self.currentPath, self.pasteType)
if status == 0:
self.gridClss.setNewDirectory(self.currentPath)
if self.pasteType == 2: # cut == 2
self.copyCutArry = []
def delete(self, widget):
self.getGridInfo()
status = self.filehandler.delete(self.selectedFiles)
if status == 0:
self.selectedFiles = []
self.gridClss.setNewDirectory(self.currentPath)
def trash(self, widget):
self.getGridInfo()
status = self.filehandler.trash(self.selectedFiles)
if status == 0:
self.selectedFiles = []
self.gridClss.setNewDirectory(self.currentPath)
def rename(self, widget, data):
if data.keyval == 65293: # Enter key press
self.getGridInfo()
file = widget.get_text();
if len(self.selectedFiles) == 1:
newName = self.currentPath + "/" + file
print("Old Name: " + self.selectedFiles[0])
print("New Name: " + newName.strip())
status = self.filehandler.rename(self.selectedFiles[0], newName.strip())
if status == 0:
self.selectedFiles = [newName]
self.gridClss.setNewDirectory(self.currentPath)
def getGridInfo(self):
self.selectedFiles = self.gridClss.returnSelectedFiles()
self.currentPath = self.gridClss.returnCurrentPath()