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
129
130
131
132
133
|
#===============================================================================
#
# FILE: ViewManagement.py
#
# USAGE: ---
#
# DESCRIPTION: It contain all the view for main Application
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Fahim Khan, fahim.elex@gmail.com
# ORGANIZATION: eSim team at FOSSEE, IIT Bombay.
# CREATED: Wednesday 27 January 2015
# REVISION: ---
#===============================================================================
from PyQt4 import QtCore
from PyQt4 import QtGui
from projManagement.Kicad import Kicad
from kicadtoNgspice.KicadtoNgspice import *
class ViewManagement(QtGui.QSplitter):
def __init__(self, *args):
# call init method of superclass
QtGui.QSplitter.__init__(self, *args)
# Creating dictionary which hold all the views
self.views = {}
#Creating object of Kicad.py
self.obj_kicad = Kicad()
# define the basic framework of view areas for the
# application
self.createView()
self.setupView()
def createView(self):
#Adding view into views dictionary
self.addView(QtGui.QTextEdit, 'ProjectExplorer')
self.addView(QtGui.QTextEdit, 'ProjectToolbar')
self.addView(QtGui.QTextEdit, 'CurrentProject')
self.addView(QtGui.QTextEdit, 'Browser')
def setupView(self):
#setup views to define various areas, such as placement of individual views
# the right segment also is a splitter, but with vertical orientation
self.right = QtGui.QSplitter()
self.right.setOrientation(QtCore.Qt.Vertical)
#Layout
self.grid = QtGui.QGridLayout()
#Button for Project Tool Bar
self.kicad_btn = QtGui.QPushButton()
self.kicad_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.kicad_btn.setIconSize(QtCore.QSize(50,50))
self.kicad_btn.setToolTip('<b>Open Schematic</b>')
self.kicad_btn.clicked.connect(self.obj_kicad.openSchematic)
self.grid.addWidget(self.kicad_btn,0,0)
self.conversion_btn = QtGui.QPushButton()
self.conversion_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.conversion_btn.setIconSize(QtCore.QSize(50,50))
self.conversion_btn.setToolTip('<b>Convert Kicad to Ngspice</b>')
self.conversion_btn.clicked.connect(self.obj_kicad.openKicadToNgspice)
self.grid.addWidget(self.conversion_btn,0,1)
self.ngspice_btn = QtGui.QPushButton()
self.ngspice_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.ngspice_btn.setIconSize(QtCore.QSize(50,50))
self.ngspice_btn.setToolTip('<b>Simulation</b>')
self.grid.addWidget(self.ngspice_btn,0,2)
self.footprint_btn = QtGui.QPushButton()
self.footprint_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.footprint_btn.setIconSize(QtCore.QSize(50,50))
self.footprint_btn.setToolTip('<b>Footprint Editor</b>')
self.footprint_btn.clicked.connect(self.obj_kicad.openFootprint)
self.grid.addWidget(self.footprint_btn,1,0)
self.pcb_btn = QtGui.QPushButton()
self.pcb_btn.setIcon(QtGui.QIcon('../images/default.png'))
self.pcb_btn.setIconSize(QtCore.QSize(50,50))
self.pcb_btn.setToolTip('<b>PCB Layout</b>')
self.pcb_btn.clicked.connect(self.obj_kicad.openLayout)
self.grid.addWidget(self.pcb_btn,1,1)
#Adding one more splitter
self.browser = QtGui.QSplitter()
self.browser.setOrientation(QtCore.Qt.Vertical)
# bind the top level views into the framework
self.views['ProjectExplorer'].setParent(self)
self.views['ProjectToolbar'].setParent(self.right)
self.views['ProjectToolbar'].setLayout(self.grid)
self.views['ProjectToolbar'].setReadOnly(True)
self.views['CurrentProject'].setParent(self.right)
self.views['CurrentProject'].setReadOnly(True)
self.views['Browser'].setParent(self.browser)
self.views['Browser'].setReadOnly(True)
self.right.setParent(self)
self.browser.setParent(self)
self.right.setSizes([20, 5])
#self.setSizes([5, 20])
def addView(self, settype, name):
#Adding views to dictionary
#parameters:
#settype <class>
#name <string>
self.views[name] = settype()
|