2019-06-23 03:23:17 +00:00
|
|
|
# Gtk imports
|
2019-06-11 03:18:30 +00:00
|
|
|
|
2019-06-09 21:03:38 +00:00
|
|
|
# Python imports
|
2019-06-23 03:23:17 +00:00
|
|
|
|
|
|
|
# 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
|
|
|
|
2019-07-05 06:44:16 +00:00
|
|
|
class GridSignals:
|
2019-06-09 21:33:47 +00:00
|
|
|
def __init__(self, settings):
|
2019-07-07 20:03:44 +00:00
|
|
|
self.settings = settings
|
|
|
|
self.filehandler = FileHandler(settings)
|
2019-07-05 06:44:16 +00:00
|
|
|
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
|
|
|
2019-07-07 20:03:44 +00:00
|
|
|
self.currentPath = self.settings.returnDesktopPath()
|
2019-07-05 19:34:15 +00:00
|
|
|
self.copyCutArry = []
|
|
|
|
self.selectedFiles = []
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
|
|
|
2019-07-07 20:03:44 +00:00
|
|
|
def setNewDirectory(self, widget, data=None):
|
|
|
|
newPath = widget.get_filename()
|
|
|
|
self.gridClss = Grid(self.gridObj, self.settings)
|
|
|
|
self.gridClss.setNewDirectory(newPath)
|
2019-06-09 21:03:38 +00:00
|
|
|
|
2019-07-05 06:08:18 +00:00
|
|
|
|
2019-06-11 03:18:30 +00:00
|
|
|
# File control events
|
2019-07-07 00:08:25 +00:00
|
|
|
def create(self, wdget):
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
2019-07-07 20:03:44 +00:00
|
|
|
status = self.filehandler.create(fileName, type)
|
2019-07-07 00:08:25 +00:00
|
|
|
if status == 0:
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
2019-07-07 20:03:44 +00:00
|
|
|
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
|
2019-07-07 20:03:44 +00:00
|
|
|
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):
|
2019-07-07 20:03:44 +00:00
|
|
|
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:
|
2019-07-07 20:03:44 +00:00
|
|
|
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 = []
|
2019-07-07 20:03:44 +00:00
|
|
|
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 = []
|
2019-07-07 20:03:44 +00:00
|
|
|
self.gridClss.setNewDirectory(self.currentPath)
|
2019-06-11 03:18:30 +00:00
|
|
|
|
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-06-11 03:18:30 +00:00
|
|
|
|
2019-07-07 00:08:25 +00:00
|
|
|
status = self.filehandler.rename(self.selectedFiles[0], newName.strip())
|
|
|
|
if status == 0:
|
|
|
|
self.selectedFiles = [newName]
|
2019-07-07 20:03:44 +00:00
|
|
|
self.gridClss.setNewDirectory(self.currentPath)
|
2019-06-11 03:18:30 +00:00
|
|
|
|
2019-07-05 19:34:15 +00:00
|
|
|
def getGridInfo(self):
|
2019-07-07 20:03:44 +00:00
|
|
|
self.selectedFiles = self.gridClss.returnSelectedFiles()
|
|
|
|
self.currentPath = self.gridClss.returnCurrentPath()
|