diff options
Diffstat (limited to 'src/frontEnd')
-rwxr-xr-x | src/frontEnd/Application.py | 25 | ||||
-rw-r--r-- | src/frontEnd/ProjectExplorer.py | 275 | ||||
-rw-r--r-- | src/frontEnd/ProjectExplorer.pyc | bin | 10311 -> 5058 bytes | |||
-rw-r--r-- | src/frontEnd/ViewManagement.pyc | bin | 2841 -> 2847 bytes | |||
-rw-r--r-- | src/frontEnd/Workspace.pyc | bin | 3526 -> 3533 bytes | |||
-rw-r--r-- | src/frontEnd/__init__.pyc | bin | 138 -> 139 bytes |
6 files changed, 15 insertions, 285 deletions
diff --git a/src/frontEnd/Application.py b/src/frontEnd/Application.py index a1560c9b..dd2e2264 100755 --- a/src/frontEnd/Application.py +++ b/src/frontEnd/Application.py @@ -29,9 +29,8 @@ import Workspace import sys import time import subprocess -from frontEnd import ProjectExplorer import DockArea - +from frontEnd import ProjectExplorer class Application(QtGui.QMainWindow): """ @@ -69,6 +68,7 @@ class Application(QtGui.QMainWindow): self.newproj = QtGui.QAction(QtGui.QIcon('../images/newProject.png'),'<b>New Project</b>',self) self.newproj.setShortcut('Ctrl+N') self.newproj.triggered.connect(self.new_project) + #self.newproj.connect(self.newproj,QtCore.SIGNAL('triggered()'),self,QtCore.SLOT(self.new_project())) self.openproj = QtGui.QAction(QtGui.QIcon('../images/openProject.png'),'<b>Open Project</b>',self) @@ -129,8 +129,10 @@ class Application(QtGui.QMainWindow): if ok: self.projname = (str(text)) self.project = NewProjectInfo() - self.project.createProject(self.projname) - #self.setCentralWidget(self.obj_Mainview) + directory, filelist =self.project.createProject(self.projname) + + self.obj_Mainview.obj_projectExplorer.addTreeNode(directory, filelist) + #self.setCentralWidget(self.obj_Mainview.obj_projectExplorer) else: print "No project created" @@ -141,8 +143,12 @@ class Application(QtGui.QMainWindow): """ print "Open Project called" self.project = OpenProjectInfo() - self.project.body() - print "init main view in open proj" + + try: + directory, filelist = self.project.body() + self.obj_Mainview.obj_projectExplorer.addTreeNode(directory, filelist) + except: + pass #self.setCentralWidget(self.obj_Mainview) @@ -167,7 +173,6 @@ class Application(QtGui.QMainWindow): self.obj_Mainview.obj_dockarea.createTestEditor() - def testing(self): print "Success hit kicad button" @@ -189,7 +194,7 @@ class MainView(QtGui.QWidget): self.noteArea = QtGui.QTextEdit() self.obj_dockarea = DockArea.DockArea() self.obj_projectExplorer = ProjectExplorer.ProjectExplorer() - self.projectExplorer = self.obj_projectExplorer.maketree() + #Adding content to vertical middle Split. self.middleSplit.setOrientation(QtCore.Qt.Vertical) @@ -201,9 +206,9 @@ class MainView(QtGui.QWidget): self.middleContainer.setLayout(self.middleContainerLayout) #Adding content of left split - self.leftSplit.addWidget(self.projectExplorer) + self.leftSplit.addWidget(self.obj_projectExplorer) self.leftSplit.addWidget(self.middleContainer) - + #Adding to main Layout self.mainLayout.addWidget(self.leftSplit) diff --git a/src/frontEnd/ProjectExplorer.py b/src/frontEnd/ProjectExplorer.py deleted file mode 100644 index 282133cb..00000000 --- a/src/frontEnd/ProjectExplorer.py +++ /dev/null @@ -1,275 +0,0 @@ -from PyQt4 import QtCore, QtGui -from configuration.Appconfig import Appconfig -import os -import json - -class Node(object): - - def __init__(self, name, parent=None): - - self._name = name - self._children = [] - self._parent = parent - - if parent is not None: - parent.addChild(self) - - def typeInfo(self): - return self._typeInfo - - def settypeInfo(self,typeInfo): - self._typeInfo = typeInfo - - def addChild(self, child): - self._children.append(child) - - def name(self): - return self._name - - def setName(self, name): - self._name = name - - def child(self, row): - return self._children[row] - - def childCount(self): - return len(self._children) - - def parent(self): - return self._parent - - def row(self): - if self._parent is not None: - return self._parent._children.index(self) - - -class SceneGraphModel(QtCore.QAbstractItemModel): - - """INPUTS: Node, QObject""" - def __init__(self, root, parent=None): - super(SceneGraphModel, self).__init__(parent) - self._rootNode = root - - """INPUTS: QModelIndex""" - """OUTPUT: int""" - def rowCount(self, parent): - if not parent.isValid(): - parentNode = self._rootNode - else: - parentNode = parent.internalPointer() - - return parentNode.childCount() - - """INPUTS: QModelIndex""" - """OUTPUT: int""" - def columnCount(self, parent): - return 1 - - """INPUTS: QModelIndex, int""" - """OUTPUT: QVariant, strings are cast to QString which is a QVariant""" - def data(self, index, role): - - if not index.isValid(): - return None - - node = index.internalPointer() - - if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole: - if index.column() == 0: - return node.name() - else: - return node.typeInfo() - - - - """INPUTS: QModelIndex, QVariant, int (flag)""" - def setData(self, index, value, role=QtCore.Qt.EditRole): - - if index.isValid(): - - if role == QtCore.Qt.EditRole: - - node = index.internalPointer() - node.setName(value) - - return True - return False - - - """INPUTS: int, Qt::Orientation, int""" - """OUTPUT: QVariant, strings are cast to QString which is a QVariant""" - def headerData(self, section, orientation, role): - if role == QtCore.Qt.DisplayRole: - if section == 0: - return "Project Explorer" - else: - return "FilePath" - - """INPUTS: QModelIndex""" - """OUTPUT: int (flag)""" - def flags(self, index): - return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable - - """INPUTS: QModelIndex""" - """OUTPUT: QModelIndex""" - """Should return the parent of the node with the given QModelIndex""" - def parent(self, index): - - node = self.getNode(index) - parentNode = node.parent() - - if parentNode == self._rootNode: - return QtCore.QModelIndex() - - return self.createIndex(parentNode.row(), 0, parentNode) - - """INPUTS: int, int, QModelIndex""" - """OUTPUT: QModelIndex""" - """Should return a QModelIndex that corresponds to the given row, column and parent node""" - def index(self, row, column, parent): - - parentNode = self.getNode(parent) - - childItem = parentNode.child(row) - - - if childItem: - return self.createIndex(row, column, childItem) - else: - return QtCore.QModelIndex() - - - """CUSTOM""" - """INPUTS: QModelIndex""" - def getNode(self, index): - if index.isValid(): - node = index.internalPointer() - if node: - return node - - return self._rootNode - - - -class ProjectExplorer(QtGui.QWidget): - def __init__(self,parent=None): - QtGui.QWidget.__init__(self) - - returnwidget = self.maketree() - returnwidget.setStyleSheet(""" - .QWidget { - border: 3px solid gray; - border-radius: 40px; - background-color:white; - } - """) - - def maketree(self): - self.obj_appconfig = Appconfig() - self.root = Node("Projects") - currentpath= self.obj_appconfig.current_project["ProjectName"] - if currentpath == None: - pass - else: - self.children =[] - for dirct, subdir, files in os.walk(currentpath): - dirlist = dirct.split(os.sep) - self.parentof = dirlist[-1] - self.obj_appconfig.project_explorer[dirct]= files - json.dump(self.obj_appconfig.project_explorer, open(self.obj_appconfig.dictPath,'w')) - - for item, value in self.obj_appconfig.project_explorer.items(): - os.path.join(item) - pathlist= item.split(os.sep) - parentnode = Node(pathlist[-1], self.root) - parentnode.settypeInfo(item) - for projFiles in value: - childnode = Node(projFiles, parentnode) - childnode.settypeInfo (item+ '/' + projFiles) - - self.model = SceneGraphModel(self.root) - - self.treeView = QtGui.QTreeView() - self.treeView.doubleClicked.connect(self.openProject) - - self.treeView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) - self.treeView.customContextMenuRequested.connect(self.openMenu) - self.treeView.show() - - self.treeView.setModel(self.model) - self.treeView.setStyleSheet(""" - .QWidget { - border: 3px solid gray; - border-radius: 40px; - background-color:white; - } - """) - return self.treeView - - def openMenu(self, position): - - indexes = self.treeView.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) - elif level == 1: - openfile = menu.addAction(self.tr("Open")) - openfile.triggered.connect(self.openProject) - - menu.exec_(self.treeView.viewport().mapToGlobal(position)) - - def openProject(self): - self.indexItem =self.treeView.currentIndex() - filename= self.indexItem.data().toString() - self.filePath= self.indexItem.sibling(self.indexItem.row(), 1).data().toString() - - self.textwindow = QtGui.QWidget() - self.textwindow.setMinimumSize(600, 500) - self.textwindow.setWindowTitle(filename) - self.text = QtGui.QTextEdit() - #self.text.setMaximumSize(580, 450) - self.save = QtGui.QPushButton('Save and Exit') - self.save.setDisabled(True) - self.windowgrid = QtGui.QGridLayout() - if (os.path.isfile(str(self.filePath)))== True: - self.fopen = open(str(self.filePath), 'r') - lines = self.fopen.readlines() - for line in lines: - self.text.append(line) - - 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.textwindow.show() - else: - pass - - def enable_save(self): - self.save.setEnabled(True) - - def save_data(self): - self.fopen=open(self.filePath, 'w') - self.fopen.write(self.text.toPlainText()) - self.fopen.close() - self.textwindow.close() - - def removeProject(self): - self.indexItem =self.treeView.currentIndex() - filename= self.indexItem.data().toString() - self.filePath= self.indexItem.sibling(self.indexItem.row(), 1).data().toString() - del self.obj_appconfig.project_explorer[str(self.filePath)] - json.dump(self.obj_appconfig.project_explorer, open(self.obj_appconfig.dictPath,'w')) diff --git a/src/frontEnd/ProjectExplorer.pyc b/src/frontEnd/ProjectExplorer.pyc Binary files differindex da647370..7906f8b0 100644 --- a/src/frontEnd/ProjectExplorer.pyc +++ b/src/frontEnd/ProjectExplorer.pyc diff --git a/src/frontEnd/ViewManagement.pyc b/src/frontEnd/ViewManagement.pyc Binary files differindex 3a562d99..eeef23a3 100644 --- a/src/frontEnd/ViewManagement.pyc +++ b/src/frontEnd/ViewManagement.pyc diff --git a/src/frontEnd/Workspace.pyc b/src/frontEnd/Workspace.pyc Binary files differindex 935ed8d5..7a5776b8 100644 --- a/src/frontEnd/Workspace.pyc +++ b/src/frontEnd/Workspace.pyc diff --git a/src/frontEnd/__init__.pyc b/src/frontEnd/__init__.pyc Binary files differindex 107c0b45..5ea864ab 100644 --- a/src/frontEnd/__init__.pyc +++ b/src/frontEnd/__init__.pyc |