1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# =========================================================================
#
# FILE: Workspace.py
#
# USAGE: ---
#
# DESCRIPTION: This define all configuration used in Application.
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Fahim Khan, fahim.elex@gmail.com
# ORGANIZATION: eSim team at FOSSEE, IIT Bombay.
# CREATED: Wednesday 05 February 2015
# REVISION: ---
# =========================================================================
from PyQt4 import QtCore, QtGui
from configuration.Appconfig import Appconfig
import time
import os
# This class creates Workspace GUI.
class Workspace(QtGui.QWidget):
"""
This class creates UI for WorkSpace selection window.
This window contains text area to select location of your choice
or browse location for workspace area.
By default workspace is set in ~/eSim-Workspace.
This workspace area contains all the projects made by user.
"""
def __init__(self, parent=None):
super(Workspace, self).__init__()
self.obj_appconfig = Appconfig()
# Initializing Workspace directory for project
self.initWorkspace()
def initWorkspace(self):
# print "Calling workspace"
self.mainwindow = QtGui.QVBoxLayout()
self.split = QtGui.QSplitter()
self.split.setOrientation(QtCore.Qt.Vertical)
self.grid = QtGui.QGridLayout()
self.note = QtGui.QTextEdit(self)
self.workspace_label = QtGui.QLabel(self)
self.workspace_loc = QtGui.QLineEdit(self)
self.note.append(self.obj_appconfig.workspace_text)
self.workspace_label.setText("Workspace:")
self.workspace_loc.setText(self.obj_appconfig.home)
# Buttons
self.browsebtn = QtGui.QPushButton('Browse')
self.browsebtn.clicked.connect(self.browseLocation)
self.okbtn = QtGui.QPushButton('OK')
self.okbtn.clicked.connect(self.createWorkspace)
self.cancelbtn = QtGui.QPushButton('Cancel')
self.cancelbtn.clicked.connect(self.defaultWorkspace)
# Layout
self.grid.addWidget(self.note, 0, 0, 1, 15)
self.grid.addWidget(self.workspace_label, 2, 1)
self.grid.addWidget(self.workspace_loc, 2, 2, 2, 12)
self.grid.addWidget(self.browsebtn, 2, 14)
self.grid.addWidget(self.okbtn, 4, 13)
self.grid.addWidget(self.cancelbtn, 4, 14)
self.setGeometry(QtCore.QRect(500, 250, 400, 400))
self.setMaximumSize(4000, 200)
self.setWindowTitle("eSim")
self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
self.note.setReadOnly(True)
self.setWindowIcon(QtGui.QIcon('../../images/logo.png'))
self.setLayout(self.grid)
self.show()
def defaultWorkspace(self):
print("Default workspace selected : " +
self.obj_appconfig.default_workspace["workspace"])
self.imp_var = 1
self.obj_appconfig.print_info(
'Default workspace selected : ' +
self.obj_appconfig.default_workspace["workspace"])
self.close()
var_appView.show()
time.sleep(1)
var_appView.splash.close()
def close(self, *args, **kwargs):
self.window_open_close = 1
self.close_var = 1
return QtGui.QWidget.close(self, *args, **kwargs)
def returnWhetherClickedOrNot(self, appView):
global var_appView
var_appView = appView
def createWorkspace(self):
print("Function : Create workspace")
self.create_workspace = str(self.workspace_loc.text())
self.obj_appconfig.print_info('Workspace : ' + self.create_workspace)
# Checking if Workspace already exist or not
if os.path.isdir(self.create_workspace):
self.obj_appconfig.default_workspace["workspace"] \
= self.create_workspace
else:
os.mkdir(self.create_workspace)
self.obj_appconfig.default_workspace["workspace"] \
= self.create_workspace
self.imp_var = 1
self.close()
var_appView.show()
time.sleep(1)
var_appView.splash.close()
def browseLocation(self):
print("Function : Browse Location")
self.workspace_directory = QtGui.QFileDialog.getExistingDirectory(
self, "Browse Location", os.path.expanduser("~"))
self.workspace_loc.setText(self.workspace_directory)
|