# =========================================================================
#
# 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: eSim team at FOSSEE, IIT Bombay.
# CREATED: Wednesday 12 February 2015
# REVISION: ---
# =========================================================================
from PyQt4 import QtGui
from .Validation import Validation
from configuration.Appconfig import Appconfig
import os
import json
class OpenProjectInfo(QtGui.QWidget):
"""
This class is called when User click on Open Project Button
"""
def __init__(self):
super(OpenProjectInfo, self).__init__()
self.obj_validation = Validation()
def body(self):
"""
Open a project directory using Qt GUI and validate
if .proj file present in it using `Validation` class
@params
@return
:dirs => The directories inside the project folder
:filelist => The files inside the project folder
"""
self.obj_Appconfig = Appconfig()
self.openDir = self.obj_Appconfig.default_workspace["workspace"]
self.projDir = QtGui.QFileDialog.getExistingDirectory(
self, "open", self.openDir)
if self.obj_validation.validateOpenproj(self.projDir):
self.obj_Appconfig.current_project['ProjectName'] = str(
self.projDir)
if os.path.isdir(self.projDir):
print("true")
for dirs, subdirs, filelist in os.walk(
self.obj_Appconfig.current_project["ProjectName"]):
# directory = dirs
# files = filelist
# above 'directory' and 'files' variable never used
pass
self.obj_Appconfig.project_explorer[dirs] = filelist
json.dump(
self.obj_Appconfig.project_explorer, open(
self.obj_Appconfig.dictPath, 'w'))
self.obj_Appconfig.print_info('Open Project called')
self.obj_Appconfig.print_info('Current Project is ' + self.projDir)
return dirs, filelist
else:
self.obj_Appconfig.print_error(
"The project doesn't contain .proj file. Please select the"
+ "proper directory else you won't be able to perform any"
+ "operation")
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()
self.obj_Appconfig.print_info('Open Project called')
self.obj_Appconfig.print_info(
'Current Project is ' + self.projDir)
elif reply == QtGui.QMessageBox.Cancel:
self.obj_Appconfig.print_info('No Project opened')
else:
pass