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
|
# =========================================================================
# FILE: Workspace.py
#
# USAGE: ---
#
# DESCRIPTION: This define all configuration used in Application.
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Fahim Khan, fahim.elex@gmail.com
# MODIFIED: Rahul Paknikar, rahulp@iitb.ac.in
# ORGANIZATION: eSim team at FOSSEE, IIT Bombay.
# CREATED: Wednesday 05 February 2015
# REVISION: Friday 14 February 2020
# =========================================================================
from PyQt4 import QtCore, QtGui
from configuration.Appconfig import Appconfig
import time
import os
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):
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)
|