From 756ad7fcfe3e9cb7f1c90e0c773cfb46243a2496 Mon Sep 17 00:00:00 2001
From: fahim
Date: Tue, 17 Feb 2015 15:13:02 +0530
Subject: Subject: openProject and Validation
Description: Included openProject and Validation module
---
src/configuration/Appconfig.py | 29 +++++++++++-------
src/configuration/Appconfig.pyc | Bin 1236 -> 1288 bytes
src/frontEnd/Application.py | 26 +++++++++-------
src/frontEnd/ViewManagement.py | 22 +++++++-------
src/frontEnd/ViewManagement.pyc | Bin 2519 -> 2542 bytes
src/frontEnd/Workspace.py | 7 ++---
src/frontEnd/Workspace.pyc | Bin 3466 -> 3466 bytes
src/projManagement/Validation.py | 40 +++++++++++++++++++++++++
src/projManagement/newProject.py | 2 +-
src/projManagement/openProject.py | 61 ++++++++++++++++++++++++++++++++++++++
10 files changed, 148 insertions(+), 39 deletions(-)
create mode 100644 src/projManagement/Validation.py
create mode 100644 src/projManagement/openProject.py
diff --git a/src/configuration/Appconfig.py b/src/configuration/Appconfig.py
index b9b619b1..811029ca 100644
--- a/src/configuration/Appconfig.py
+++ b/src/configuration/Appconfig.py
@@ -26,6 +26,14 @@ class Appconfig(QtGui.QWidget):
"""
All configuration goes here
"""
+ #Home directory
+ home = os.path.expanduser("~")+"/ecSim-Workspace"
+ default_workspace = {"workspace":home}
+ #Current Project detail
+ current_project = {"ProjectName":"None"}
+ #Workspace detail
+ workspace_text = '''ecSim stores your project in a folder called a workspace. You can choose a different workspace folder to use for this session.'''
+
def __init__(self):
super(Appconfig, self).__init__()
#Application Details
@@ -33,17 +41,18 @@ class Appconfig(QtGui.QWidget):
self._VERSION = 'v1.1'
self._AUTHOR = 'Fahim'
- #Application setting
- self.app_xpos = 100
- self.app_ypos = 100
- self.app_width = 600
- self.app_heigth = 400
+ #Application geometry setting
+ self._app_xpos = 100
+ self._app_ypos = 100
+ self._app_width = 600
+ self._app_heigth = 400
+
+
+
+
+
- #Workspace detail
- self.workspace_text = '''ecSim stores your project in a folder called a workspace. You can choose a different workspace folder to use for this session.'''
- #Home directory
- self.home = os.path.expanduser("~")+"/ecSim-Workspace"
- self.default_workspace = {"workspace":self.home}
+
diff --git a/src/configuration/Appconfig.pyc b/src/configuration/Appconfig.pyc
index e44a1c38..7d8c70a6 100644
Binary files a/src/configuration/Appconfig.pyc and b/src/configuration/Appconfig.pyc differ
diff --git a/src/frontEnd/Application.py b/src/frontEnd/Application.py
index ccc08248..a261d67c 100755
--- a/src/frontEnd/Application.py
+++ b/src/frontEnd/Application.py
@@ -20,16 +20,18 @@
from PyQt4 import QtGui, QtCore
from configuration.Appconfig import Appconfig
+from projManagement.openProject import ProjectInfo
+import os
import ViewManagement
import Workspace
import sys
import time
+
class Application(QtGui.QMainWindow):
"""
Its our main window of application
"""
-
def __init__(self,*args):
"""
Initialize main Application window
@@ -39,19 +41,15 @@ class Application(QtGui.QMainWindow):
#Creating Application configuration object
-
self.confObj = Appconfig()
-
- self.setGeometry(self.confObj.app_xpos,
- self.confObj.app_ypos,
- self.confObj.app_width,
- self.confObj.app_heigth)
+ self.setGeometry(self.confObj._app_xpos,
+ self.confObj._app_ypos,
+ self.confObj._app_width,
+ self.confObj._app_heigth)
self.setWindowTitle(self.confObj._APPLICATION)
#Init Workspace
self.work_space = Workspace.Workspace()
-
-
-
+
#Init necessary components in sequence
self.initActions()
self.initView()
@@ -95,15 +93,20 @@ class Application(QtGui.QMainWindow):
def new_project(self):
print "New Project called"
+
def open_project(self):
print "Open Project called"
+ self.project = ProjectInfo()
+ self.project.body()
def exit_project(self):
print "Exit Project called"
+ self.close()
def help_project(self):
print "Help is called"
+
@@ -114,6 +117,7 @@ def main(args):
print "Hello Main"
app = QtGui.QApplication(sys.argv)
+ """
splash_pix = QtGui.QPixmap('../images/FreeEDAlogo.jpg')
splash = QtGui.QSplashScreen(splash_pix,QtCore.Qt.WindowStaysOnTopHint)
progressBar = QtGui.QProgressBar(splash)
@@ -136,7 +140,7 @@ def main(args):
appView = Application()
appView.show()
sys.exit(app.exec_())
- """
+
diff --git a/src/frontEnd/ViewManagement.py b/src/frontEnd/ViewManagement.py
index 27d9ecba..7d6ca9cd 100755
--- a/src/frontEnd/ViewManagement.py
+++ b/src/frontEnd/ViewManagement.py
@@ -38,9 +38,9 @@ class ViewManagement(QtGui.QSplitter):
def createView(self):
#Adding view into views dictionary
- self.addView(QtGui.QTextEdit, 'Project Explorer')
- self.addView(QtGui.QTextEdit, 'test2')
- self.addView(QtGui.QTextEdit, 'test3')
+ self.addView(QtGui.QTextEdit, 'ProjectExplorer')
+ self.addView(QtGui.QTextEdit, 'ProjectToolbar')
+ self.addView(QtGui.QTextEdit, 'CurrentProject')
def setupView(self):
#setup views to define various areas, such as placement of individual views
@@ -78,19 +78,17 @@ class ViewManagement(QtGui.QSplitter):
self.pcb_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.pcb_btn.setIconSize(QtCore.QSize(50,50))
self.grid.addWidget(self.pcb_btn,1,1)
-
-
-
-
+
# bind the top level views into the framework
- self.views['Project Explorer'].setParent(self)
+ self.views['ProjectExplorer'].setParent(self)
- self.views['test2'].setParent(self.right)
- self.views['test2'].setLayout(self.grid)
- self.views['test2'].setReadOnly(True)
+ self.views['ProjectToolbar'].setParent(self.right)
+ self.views['ProjectToolbar'].setLayout(self.grid)
+ self.views['ProjectToolbar'].setReadOnly(True)
- self.views['test3'].setParent(self.right)
+ self.views['CurrentProject'].setParent(self.right)
+ self.views['CurrentProject'].setReadOnly(True)
self.right.setParent(self)
self.right.setSizes([20, 5])
diff --git a/src/frontEnd/ViewManagement.pyc b/src/frontEnd/ViewManagement.pyc
index d7b30b5e..4f31cfc2 100644
Binary files a/src/frontEnd/ViewManagement.pyc and b/src/frontEnd/ViewManagement.pyc differ
diff --git a/src/frontEnd/Workspace.py b/src/frontEnd/Workspace.py
index 0db3fbd7..fc41501d 100644
--- a/src/frontEnd/Workspace.py
+++ b/src/frontEnd/Workspace.py
@@ -27,12 +27,9 @@ class Workspace(QtGui.QWidget):
"""
def __init__(self):
super(Workspace, self).__init__()
-
- #Button status lable
- #self.status_label = QtGui.QLabel('NO')
-
+
self.obj = Appconfig()
-
+
#Initializing Workspace directory for project
self.initWorkspace()
diff --git a/src/frontEnd/Workspace.pyc b/src/frontEnd/Workspace.pyc
index 8da188bc..99d373d5 100644
Binary files a/src/frontEnd/Workspace.pyc and b/src/frontEnd/Workspace.pyc differ
diff --git a/src/projManagement/Validation.py b/src/projManagement/Validation.py
new file mode 100644
index 00000000..b53dfe49
--- /dev/null
+++ b/src/projManagement/Validation.py
@@ -0,0 +1,40 @@
+
+#===============================================================================
+#
+# FILE: Validation.py
+#
+# USAGE: ---
+#
+# DESCRIPTION: This module is use to create validation for openProject,newProject and other activity.
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Fahim Khan, fahim.elex@gmail.com
+# ORGANIZATION: ecSim team at FOSSEE, IIT Bombay.
+# CREATED: Wednesday 12 February 2015
+# REVISION: ---
+#===============================================================================
+import os
+
+
+class Validation:
+ def __init__(self):
+ pass
+
+ def validateOpenproj(self,proj_directory):
+ print "Valid open Proj called"
+ tempStr = proj_directory.split('/')
+ projName = tempStr[len(tempStr)-1]
+ if os.path.exists(proj_directory+"/"+projName+".proj"):
+ return True
+ else:
+ return False
+
+
+ def validateNewproj(self):
+ print "Valid new Proj called"
+
+
+
\ No newline at end of file
diff --git a/src/projManagement/newProject.py b/src/projManagement/newProject.py
index 59ece47d..1bbbbaf7 100644
--- a/src/projManagement/newProject.py
+++ b/src/projManagement/newProject.py
@@ -13,7 +13,7 @@
# NOTES: ---
# AUTHOR: Fahim Khan, fahim.elex@gmail.com
# ORGANIZATION: ecSim team at FOSSEE, IIT Bombay.
-# CREATED: Wednesday 04 February 2015
+# CREATED: Wednesday 12 February 2015
# REVISION: ---
#===============================================================================
diff --git a/src/projManagement/openProject.py b/src/projManagement/openProject.py
new file mode 100644
index 00000000..a5c8c323
--- /dev/null
+++ b/src/projManagement/openProject.py
@@ -0,0 +1,61 @@
+
+#===============================================================================
+#
+# FILE: openProject.py
+#
+# USAGE: ---
+#
+# DESCRIPTION: It is called whenever new project is being called.
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Fahim Khan, fahim.elex@gmail.com
+# ORGANIZATION: ecSim team at FOSSEE, IIT Bombay.
+# CREATED: Wednesday 12 February 2015
+# REVISION: ---
+#===============================================================================
+
+from PyQt4 import QtGui
+from Validation import Validation
+from configuration.Appconfig import Appconfig
+
+
+
+class ProjectInfo:
+ """
+ Class ProjectInfo accept model information from user
+
+ """
+ def __init__(self):
+ pass
+
+ def body(self):
+ print "Create Dialog box"
+ self.proj_directory = QtGui.QFileDialog.getExistingDirectory()
+ self.obj_validation = Validation()
+
+
+ if self.obj_validation.validateOpenproj(self.proj_directory) == True:
+ print "Pass open project test"
+ self.obj_Appconfig = Appconfig()
+ self.obj_Appconfig.current_project['ProjectName'] = self.proj_directory
+
+
+ else:
+ print "Failed open project test"
+ reply = QtGui.QMessageBox.critical(None, "Error Message",''' Error: The project doesn't contain .proj file.
+ Please select the proper project directory else you won't be able to perform any operation''',QtGui.QMessageBox.Ok|QtGui.QMessageBox.Cancel)
+ if reply == QtGui.QMessageBox.Ok:
+ self.body()
+ elif reply == QtGui.QMessageBox.Cancel:
+ pass
+ else:
+ pass
+
+
+
+
+
+
\ No newline at end of file
--
cgit