Pytop/src/Pytop/signal_classes/GridSignals.py

102 lines
3.5 KiB
Python
Raw Normal View History

# Gtk imports
2019-06-09 21:03:38 +00:00
# Python imports
# Application imports
2019-06-23 00:21:18 +00:00
from widgets import Grid
from utils import Dragging
2019-07-05 06:08:18 +00:00
from utils import FileHandler
2019-06-23 00:21:18 +00:00
2019-06-09 21:03:38 +00:00
class GridSignals:
2019-06-09 21:33:47 +00:00
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")
2019-06-09 21:03:38 +00:00
self.currentPath = self.settings.returnSettings()[0]
2019-07-05 19:34:15 +00:00
self.copyCutArry = []
self.selectedFiles = []
self.gridClss = None
2019-07-07 00:08:25 +00:00
self.pasteType = 1 # copy == 1 and cut == 2
2019-06-09 21:03:38 +00:00
# Add filter to allow only folders to be selected
selectDirDialog.add_filter(filefilter)
selectDirDialog.set_filename(self.currentPath)
self.setNewDirectory(selectDirDialog)
2019-06-09 21:03:38 +00:00
2019-07-05 19:34:15 +00:00
def setNewDirectory(self, widget, data=None):
newPath = widget.get_filename()
self.gridClss = Grid(self.gridObj, self.settings)
self.gridClss.setNewDirectory(newPath)
2020-03-30 00:07:06 +00:00
self.settings.saveSettings(newPath)
2019-07-05 06:08:18 +00:00
# File control events
2019-07-07 00:08:25 +00:00
def create(self, wdget):
self.currentPath = self.gridClss.returnCurrentPath()
2019-07-07 00:08:25 +00:00
fileName = self.builder.get_object("filenameInput").get_text().strip()
type = self.builder.get_object("createSwitch").get_state()
2019-06-11 03:44:15 +00:00
2019-07-07 00:08:25 +00:00
if fileName != "":
fileName = self.currentPath + "/" + fileName
status = self.filehandler.create(fileName, type)
2019-07-07 00:08:25 +00:00
if status == 0:
self.gridClss.setNewDirectory(self.currentPath)
2019-07-05 06:08:18 +00:00
2019-07-07 00:08:25 +00:00
def copy(self, widget):
self.pasteType = 1
self.copyCutArry = self.gridClss.returnSelectedFiles()
2019-07-05 06:08:18 +00:00
2019-07-07 00:08:25 +00:00
def cut(self, widget):
self.pasteType = 2
self.copyCutArry = self.gridClss.returnSelectedFiles()
2019-07-05 06:08:18 +00:00
2019-07-07 00:08:25 +00:00
def paste(self, widget):
self.currentPath = self.gridClss.returnCurrentPath()
2019-07-07 02:18:32 +00:00
status = self.filehandler.paste(self.copyCutArry, self.currentPath, self.pasteType)
2019-07-07 00:08:25 +00:00
if status == 0:
self.gridClss.setNewDirectory(self.currentPath)
2019-07-07 00:08:25 +00:00
if self.pasteType == 2: # cut == 2
self.copyCutArry = []
def delete(self, widget):
2019-07-05 21:24:00 +00:00
self.getGridInfo()
2019-07-07 00:08:25 +00:00
status = self.filehandler.delete(self.selectedFiles)
2019-07-05 21:24:00 +00:00
if status == 0:
self.selectedFiles = []
self.gridClss.setNewDirectory(self.currentPath)
2019-07-05 21:24:00 +00:00
2019-07-07 00:08:25 +00:00
def trash(self, widget):
2019-07-05 19:34:15 +00:00
self.getGridInfo()
2019-07-07 00:08:25 +00:00
status = self.filehandler.trash(self.selectedFiles)
2019-07-05 06:08:18 +00:00
2019-07-05 19:34:15 +00:00
if status == 0:
self.selectedFiles = []
self.gridClss.setNewDirectory(self.currentPath)
2019-07-07 00:08:25 +00:00
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())
2019-07-07 00:08:25 +00:00
status = self.filehandler.rename(self.selectedFiles[0], newName.strip())
if status == 0:
self.selectedFiles = [newName]
self.gridClss.setNewDirectory(self.currentPath)
2019-07-05 19:34:15 +00:00
def getGridInfo(self):
self.selectedFiles = self.gridClss.returnSelectedFiles()
self.currentPath = self.gridClss.returnCurrentPath()