summaryrefslogtreecommitdiff
path: root/src/frontEnd/ProjectExplorer.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontEnd/ProjectExplorer.py')
-rw-r--r--src/frontEnd/ProjectExplorer.py180
1 files changed, 111 insertions, 69 deletions
diff --git a/src/frontEnd/ProjectExplorer.py b/src/frontEnd/ProjectExplorer.py
index d14a8da9..77b3f124 100644
--- a/src/frontEnd/ProjectExplorer.py
+++ b/src/frontEnd/ProjectExplorer.py
@@ -1,4 +1,4 @@
-from PyQt4 import QtGui,QtCore
+from PyQt4 import QtGui, QtCore
import os
import json
from configuration.Appconfig import Appconfig
@@ -9,139 +9,181 @@ class ProjectExplorer(QtGui.QWidget):
QtGui.QWidget.__init__(self)
self.obj_appconfig = Appconfig()
self.treewidget = QtGui.QTreeWidget()
- self.window= QtGui.QVBoxLayout()
- header = QtGui.QTreeWidgetItem(["Projects","path"])
+ self.window = QtGui.QVBoxLayout()
+ header = QtGui.QTreeWidgetItem(["Projects", "path"])
self.treewidget.setHeaderItem(header)
- self.treewidget.setColumnHidden(1,True)
-
- #CSS
+ self.treewidget.setColumnHidden(1, True)
+
+ # CSS
self.treewidget.setStyleSheet(" \
- QTreeView { border-radius: 15px; border: 1px solid gray; padding: 5px; width: 200px; height: 150px; } \
- QTreeView::branch:has-siblings:!adjoins-item { border-image: url(../../images/vline.png) 0; } \
- QTreeView::branch:has-siblings:adjoins-item { border-image: url(../../images/branch-more.png) 0; } \
- QTreeView::branch:!has-children:!has-siblings:adjoins-item { border-image: url(../../images/branch-end.png) 0; } \
+ QTreeView { border-radius: 15px; border: 1px solid gray; padding: \
+ 5px; width: 200px; height: 150px; } \
+ QTreeView::branch:has-siblings:!adjoins-item { border-image:\
+ url(../../images/vline.png) 0; } \
+ QTreeView::branch:has-siblings:adjoins-item { border-image:\
+ url(../../images/branch-more.png) 0; } \
+ QTreeView::branch:!has-children:!has-siblings:\
+ adjoins-item { border-image: url(../../images/branch-end.png) 0; } \
QTreeView::branch:has-children:!has-siblings:closed, \
- QTreeView::branch:closed:has-children:has-siblings { border-image: none; image: url(../../images/branch-closed.png); } \
+ QTreeView::branch:closed:has-children:has-siblings { border-image:\
+ none; image: url(../../images/branch-closed.png); } \
QTreeView::branch:open:has-children:!has-siblings, \
- QTreeView::branch:open:has-children:has-siblings { border-image: none; image: url(../../images/branch-open.png); } \
+ QTreeView::branch:open:has-children:has-siblings { border-image: \
+ none; image: url(../../images/branch-open.png); } \
")
-
- for parents, children in self.obj_appconfig.project_explorer.items():
+
+ for parents, children in list(
+ self.obj_appconfig.project_explorer.items()):
os.path.join(parents)
if os.path.exists(parents):
- pathlist= parents.split(os.sep)
- parentnode = QtGui.QTreeWidgetItem(self.treewidget, [pathlist[-1],parents])
+ pathlist = parents.split(os.sep)
+ parentnode = QtGui.QTreeWidgetItem(
+ self.treewidget, [pathlist[-1], parents])
for files in children:
- childnode = QtGui.QTreeWidgetItem(parentnode, [files, os.path.join(parents,files)])
+ QtGui.QTreeWidgetItem(
+ parentnode, [files, os.path.join(parents, files)])
self.window.addWidget(self.treewidget)
-
+
self.treewidget.doubleClicked.connect(self.openProject)
self.treewidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.treewidget.customContextMenuRequested.connect(self.openMenu)
self.setLayout(self.window)
self.show()
-
+
def addTreeNode(self, parents, children):
os.path.join(parents)
- pathlist= parents.split(os.sep)
- parentnode = QtGui.QTreeWidgetItem(self.treewidget, [pathlist[-1], parents])
+ pathlist = parents.split(os.sep)
+ parentnode = QtGui.QTreeWidgetItem(
+ self.treewidget, [pathlist[-1], parents])
for files in children:
- childnode = QtGui.QTreeWidgetItem(parentnode, [files, os.path.join(parents,files)])
- self.obj_appconfig.proc_dict[self.obj_appconfig.current_project['ProjectName']] = []
- self.obj_appconfig.dock_dict[self.obj_appconfig.current_project['ProjectName']] = []
-
+ QtGui.QTreeWidgetItem(
+ parentnode, [files, os.path.join(parents, files)]
+ )
+
+ (
+ self.obj_appconfig.
+ proc_dict[self.obj_appconfig.current_project['ProjectName']]
+ ) = []
+ (
+ self.obj_appconfig.
+ dock_dict[self.obj_appconfig.current_project['ProjectName']]
+ ) = []
+
def openMenu(self, position):
-
+
indexes = self.treewidget.selectedIndexes()
if len(indexes) > 0:
-
+
level = 0
index = indexes[0]
while index.parent().isValid():
index = index.parent()
level += 1
-
+
menu = QtGui.QMenu()
if level == 0:
deleteproject = menu.addAction(self.tr("Remove Project"))
deleteproject.triggered.connect(self.removeProject)
- refreshproject= menu.addAction(self.tr("Refresh"))
+ refreshproject = menu.addAction(self.tr("Refresh"))
refreshproject.triggered.connect(self.refreshProject)
elif level == 1:
openfile = menu.addAction(self.tr("Open"))
openfile.triggered.connect(self.openProject)
-
- menu.exec_(self.treewidget.viewport().mapToGlobal(position))
-
+
+ menu.exec_(self.treewidget.viewport().mapToGlobal(position))
+
def openProject(self):
- self.indexItem =self.treewidget.currentIndex()
- filename= self.indexItem.data().toString()
- self.filePath= self.indexItem.sibling(self.indexItem.row(), 1).data().toString()
- self.obj_appconfig.print_info('The current project is ' + self.filePath)
-
+ self.indexItem = self.treewidget.currentIndex()
+ filename = str(self.indexItem.data())
+ self.filePath = str(
+ self.indexItem.sibling(
+ self.indexItem.row(),
+ 1).data())
+ self.obj_appconfig.print_info(
+ 'The current project is ' + self.filePath)
+
self.textwindow = QtGui.QWidget()
self.textwindow.setMinimumSize(600, 500)
- self.textwindow.setGeometry(QtCore.QRect(400,150,400,400))
+ self.textwindow.setGeometry(QtCore.QRect(400, 150, 400, 400))
self.textwindow.setWindowTitle(filename)
-
+
self.text = QtGui.QTextEdit()
self.save = QtGui.QPushButton('Save and Exit')
self.save.setDisabled(True)
self.windowgrid = QtGui.QGridLayout()
- if (os.path.isfile(str(self.filePath)))== True:
+ # if (os.path.isfile(str(self.filePath))) == True:
+ if (os.path.isfile(str(self.filePath))):
self.fopen = open(str(self.filePath), 'r')
lines = self.fopen.read()
self.text.setText(lines)
-
- QtCore.QObject.connect(self.text,QtCore.SIGNAL("textChanged()"), self.enable_save)
-
+
+ QtCore.QObject.connect(
+ self.text,
+ QtCore.SIGNAL("textChanged()"),
+ self.enable_save)
+
vbox_main = QtGui.QVBoxLayout(self.textwindow)
vbox_main.addWidget(self.text)
vbox_main.addWidget(self.save)
self.save.clicked.connect(self.save_data)
- #self.connect(exit,QtCore.SIGNAL('close()'), self.onQuit)
-
+ # self.connect(exit,QtCore.SIGNAL('close()'), self.onQuit)
+
self.textwindow.show()
else:
- self.obj_appconfig.current_project["ProjectName"]= str(self.filePath)
- self.obj_appconfig.proc_dict[self.obj_appconfig.current_project['ProjectName']] = []
- if self.obj_appconfig.current_project['ProjectName'] not in self.obj_appconfig.dock_dict:
- self.obj_appconfig.dock_dict[self.obj_appconfig.current_project['ProjectName']] = []
-
+ self.obj_appconfig.current_project["ProjectName"] = str(
+ self.filePath)
+ self.obj_appconfig.proc_dict
+ [self.obj_appconfig.current_project['ProjectName']] = [
+ ]
+ if self.obj_appconfig.current_project['ProjectName'] \
+ not in self.obj_appconfig.dock_dict:
+ self.obj_appconfig.dock_dict
+ [self.obj_appconfig.current_project['ProjectName']] = [
+ ]
+
def enable_save(self):
self.save.setEnabled(True)
-
+
def save_data(self):
- self.fopen=open(self.filePath, 'w')
+ self.fopen = open(self.filePath, 'w')
self.fopen.write(self.text.toPlainText())
self.fopen.close()
self.textwindow.close()
-
+
def removeProject(self):
- self.indexItem =self.treewidget.currentIndex()
- filename= self.indexItem.data().toString()
- self.filePath= self.indexItem.sibling(self.indexItem.row(), 1).data().toString()
+ self.indexItem = self.treewidget.currentIndex()
+ self.filePath = str(
+ self.indexItem.sibling(
+ self.indexItem.row(),
+ 1).data())
self.int = self.indexItem.row()
self.treewidget.takeTopLevelItem(self.int)
-
+
if self.obj_appconfig.current_project["ProjectName"] == self.filePath:
- self.obj_appconfig.current_project["ProjectName"] = None
-
+ self.obj_appconfig.current_project["ProjectName"] = None
+
del self.obj_appconfig.project_explorer[str(self.filePath)]
- json.dump(self.obj_appconfig.project_explorer, open(self.obj_appconfig.dictPath,'w'))
-
+ json.dump(self.obj_appconfig.project_explorer,
+ open(self.obj_appconfig.dictPath, 'w'))
+
def refreshProject(self):
- self.indexItem =self.treewidget.currentIndex()
- filename= self.indexItem.data().toString()
- self.filePath= str(self.indexItem.sibling(self.indexItem.row(), 1).data().toString())
- filelistnew= os.listdir(os.path.join(self.filePath))
+ self.indexItem = self.treewidget.currentIndex()
+ self.filePath = str(
+ self.indexItem.sibling(
+ self.indexItem.row(),
+ 1).data())
+ filelistnew = os.listdir(os.path.join(self.filePath))
parentnode = self.treewidget.currentItem()
count = parentnode.childCount()
for i in range(count):
for items in self.treewidget.selectedItems():
items.removeChild(items.child(0))
for files in filelistnew:
- childnode= QtGui.QTreeWidgetItem(parentnode, [files, os.path.join(self.filePath,files)])
-
- self.obj_appconfig.project_explorer[self.filePath]= filelistnew
- json.dump(self.obj_appconfig.project_explorer, open(self.obj_appconfig.dictPath,'w'))
+ QtGui.QTreeWidgetItem(
+ parentnode, [
+ files, os.path.join(
+ self.filePath, files)])
+
+ self.obj_appconfig.project_explorer[self.filePath] = filelistnew
+ json.dump(self.obj_appconfig.project_explorer,
+ open(self.obj_appconfig.dictPath, 'w'))