17dd5e61 pyros2097

13 years ago
v0.40 Added rename delete closeproject outputpane errorpane
Files changed (7) hide show
  1. Widget/tree.py +106 -47
  2. Widget/tree.pyc +0 -0
  3. config.py +10 -5
  4. config.yaml +3 -0
  5. main.py +92 -68
  6. ui_simple.py +57 -70
  7. ui_simple.pyc +0 -0
Widget/tree.py CHANGED
@@ -1,25 +1,50 @@
1
1
  from PyQt4.QtGui import (QTreeWidgetItem,QTreeWidget,QMessageBox,
2
2
  QIcon,QDrag,QMenu,QAction,QInputDialog,QCursor)
3
3
  from PyQt4.QtCore import SIGNAL,Qt,QMimeData
4
- from globals import oslistdir,ospathisdir,ospathsep,ospathjoin,ospathexists,ospathbasename
4
+ from globals import (oslistdir,ospathisdir,ospathsep,ospathjoin,ospathexists,
5
+ ospathbasename,os_icon,osremove,osrename,ospathdirname,
6
+ recycle)
5
7
 
6
8
  class File(QTreeWidgetItem):
7
- def __init__(self,parent):
9
+ def __init__(self,parent,name,path,isDir = False):
8
10
  QTreeWidgetItem.__init__(self,parent)
9
11
  self.path = []
12
+ self.setText (0, name)
13
+ self.dir = isDir
14
+ if(self.dir):
15
+ self.setIcon(0,os_icon("package_obj"))#fldr_obj
16
+ else:
17
+ if(name.endswith(".txt")):
18
+ self.setIcon(0,os_icon("file_obj"))
19
+ elif(name.endswith(".nut")):
20
+ self.setIcon(0,os_icon("file_obj"))
21
+ elif(name.endswith(".py")):
22
+ self.setIcon(0,os_icon("file_obj"))
23
+ elif(name.endswith(".c")):
24
+ self.setIcon(0,os_icon("file_obj"))
25
+ self.addPath(path+name)
10
26
 
11
27
  def addPath(self,path):
12
28
  self.path.append(path)
13
29
 
14
30
  def getPath(self):
15
31
  return ospathjoin(self.path)
32
+
33
+ def isDir(self):
34
+ return self.dir
35
+ def isProject(self):
36
+ return False
16
37
 
17
38
  class Project(QTreeWidgetItem):
18
39
  Count = 0
19
- def __init__(self,parent,startDir):
40
+ def __init__(self,parent,startDir,closed = False):
20
41
  QTreeWidgetItem.__init__(self,parent)
21
42
  self.path = []
43
+ self.closed = closed
44
+ if(self.closed):
45
+ self.setIcon(0,os_icon('cprj_obj'))
46
+ else:
22
- self.setIcon(0,self.os_icon('prj_obj'))
47
+ self.setIcon(0,os_icon('prj_obj'))
23
48
  self.addPath(startDir)
24
49
  self.setText (0, startDir) # set the text of the first 0
25
50
  self.setToolTip(0,startDir)
@@ -31,8 +56,12 @@ class Project(QTreeWidgetItem):
31
56
  def getPath(self):
32
57
  return ospathjoin(self.path)
33
58
 
34
- def os_icon(self,name):
59
+ def isDir(self):
60
+ return False
61
+ def isProject(self):
62
+ return True
63
+ def isClosed(self):
35
- return QIcon(":/{0}.gif".format("Icons"+ospathsep+name))
64
+ return self.closed
36
65
 
37
66
  class Tree(QTreeWidget):
38
67
  def __init__(self,parent = None):
@@ -44,43 +73,42 @@ class Tree(QTreeWidget):
44
73
  self.setContextMenuPolicy(Qt.CustomContextMenu)
45
74
  self.connect(self,SIGNAL("customContextMenuRequested(const QPoint &)"), self.doMenu)
46
75
  self.connect(self, SIGNAL("dropped"), self.addItem)
76
+ self.projects = []
77
+ self.closed = []
47
78
 
48
79
  def readDir(self,parent,path):
49
80
  for d in oslistdir(path):
50
81
  if ospathisdir(ospathjoin(path+d)) is True:
51
82
  if not ospathjoin(d).startswith('.'):
52
- i = File(parent) # create QTreeWidget the sub i
83
+ i = File(parent,d,path,True) # create QTreeWidget the sub i
53
- i.setText (0, d) # set the text of the first 0
54
- i.setIcon(0,self.os_icon("fldr_obj"))
55
- i.addPath(path+d)
56
84
  self.readFiles(path+d,i)
57
- self.readFiles(path,parent)
85
+ self.readFiles(path,parent)
86
+
58
87
 
59
88
  def readFiles(self,path,i):
60
89
  for f in oslistdir(path):
61
90
  if ospathisdir(ospathjoin(path+f)) is False:
62
91
  if not ospathjoin(f).startswith('.'):
63
- j = File(i)
64
- j.setText (0,f)
65
- j.setIcon(0,self.os_icon("alert_obj"))
66
- j.addPath(path+f)
92
+ File(i,f,path)
67
93
 
68
94
  def addProject(self,startDir):
69
- if(ospathexists(startDir)):
95
+ if(ospathexists(startDir)):
70
- #self.treeWidget.setDragDropMode(QAbstractItemView.InternalMove)
96
+ self.projects.append(startDir)
97
+ self.closed.append(False)
71
- i = Project(self,startDir) # create QTreeWidget the sub i
98
+ i = Project(self,startDir)
72
99
  self.addTopLevelItem(i)
73
100
  self.readDir(i,startDir)
74
101
  else:
75
102
  QMessageBox.about(self,"Can't Open Project","Project Does Not Exist %s"%startDir)
76
-
103
+
77
- def removeProject(self,startDir):
104
+ def addClosedProject(self,startDir):
78
- self.clear()
79
-
80
-
81
- def os_icon(self,name):
105
+ if(ospathexists(startDir)):
106
+ self.closed[self.projects.index(startDir)] = True
107
+ i = Project(self,startDir,True)
108
+ self.addTopLevelItem(i)
109
+ else:
82
- return QIcon(":/{0}.gif".format("Icons"+ospathsep+name))
110
+ QMessageBox.about(self,"Can't Open Project","Project Does Not Exist %s"%startDir)
83
-
111
+
84
112
  def addItem(self,links):
85
113
  print links
86
114
 
@@ -114,9 +142,9 @@ class Tree(QTreeWidget):
114
142
  links = []
115
143
  for url in event.mimeData().urls():
116
144
  links.append(str(url.toLocalFile()))
117
- item = Item(self)
145
+ #item = File(self)
118
- item.setText(0, ospathbasename(str(url.toLocalFile())))
146
+ #item.setText(0, ospathbasename(str(url.toLocalFile())))
119
- self.addTopLevelItem(item)
147
+ #self.addTopLevelItem(item)
120
148
  self.emit(SIGNAL("dropped"), links)
121
149
  else:
122
150
  event.ignore()
@@ -128,32 +156,60 @@ class Tree(QTreeWidget):
128
156
  return
129
157
 
130
158
  item = self.itemAt(pos)
131
- #name = item.getPath()
132
-
133
159
  menu = QMenu(self)
134
- action_Folder = QAction(self.os_icon('newfolder_wiz'),'New Folder', self)
160
+ action_Folder = QAction(os_icon('newfolder_wiz'),'New Folder', self)
135
161
  action_Folder.triggered.connect(lambda:self.newFolder(item))
136
- action_addFolder = QAction(self.os_icon('importdir_wiz'),'Add Folder', self)
162
+ action_addFolder = QAction(os_icon('importdir_wiz'),'Add Folder', self)
137
163
  action_addFolder.triggered.connect(lambda:self.addFolder(item))
138
- action_File = QAction(self.os_icon('new_untitled_text_file'),'New File', self)
164
+ action_File = QAction(os_icon('new_untitled_text_file'),'New File', self)
139
165
  action_File.triggered.connect(lambda:self.newFile(item))
140
- action_addFile = QAction(self.os_icon('impc_obj'),'Add File', self)
166
+ action_addFile = QAction(os_icon('__imp_obj'),'Add File', self)
141
167
  action_addFile.triggered.connect(lambda:self.addFile(item))
168
+ action_Open = QAction('Open', self)
169
+ action_Open.triggered.connect(lambda:self.openProject(item))
170
+ action_Close = QAction('Close', self)
171
+ action_Close.triggered.connect(lambda:self.closeProject(item))
142
172
  action_Rename = QAction('Rename', self)
143
173
  action_Rename.triggered.connect(lambda:self.rename(item))
144
- action_Delete = QAction(self.os_icon('trash'),'Delete', self)
174
+ action_Delete = QAction(os_icon('trash'),'Delete', self)
145
175
  action_Delete.triggered.connect(lambda:self.delete(item))
176
+ if(item.isProject()):
177
+ if not(item.isClosed()):
146
- menu.addAction(action_Folder)
178
+ menu.addAction(action_Folder)
147
- menu.addAction(action_addFolder)
179
+ menu.addAction(action_addFolder)
148
- menu.addAction(action_File)
180
+ menu.addAction(action_File)
149
- menu.addAction(action_addFile)
181
+ menu.addAction(action_addFile)
150
- menu.addSeparator()
182
+ menu.addSeparator()
151
- menu.addAction(action_Rename)
183
+ menu.addAction(action_Rename)
152
- menu.addAction(action_Delete)
184
+ menu.addAction(action_Delete)
185
+ menu.addSeparator()
186
+ menu.addAction(action_Close)
187
+ else:
188
+ menu.addAction(action_Open)
189
+ else:
190
+ if(item.isDir()):
191
+ menu.addAction(action_Folder)
192
+ menu.addAction(action_addFolder)
193
+ menu.addAction(action_File)
194
+ menu.addAction(action_addFile)
195
+ menu.addSeparator()
196
+ menu.addAction(action_Rename)
197
+ menu.addAction(action_Delete)
198
+ else:
199
+ menu.addAction(action_Rename)
200
+ menu.addAction(action_Delete)
201
+
153
202
  menu.popup(QCursor.pos())
154
203
 
204
+ def openProject(self,item):
205
+ itempath = item.getPath()[0]
206
+ self.closed[self.projects.index(itempath)] = False
207
+ self.takeTopLevelItem(self.indexOfTopLevelItem(item))
208
+ self.addProject(itempath)
209
+
155
210
  def closeProject(self,item):
211
+ self.takeTopLevelItem(self.indexOfTopLevelItem(item))
156
- print item.parent()
212
+ self.addClosedProject(item.getPath()[0])
157
213
 
158
214
 
159
215
  def newFolder(self,item):
@@ -168,7 +224,11 @@ class Tree(QTreeWidget):
168
224
  def rename(self,item):
169
225
  text,ok = QInputDialog.getText(self,"QInputDialog::getText()","New Name:")
170
226
  if (ok and text != ''):
227
+ newname = ospathjoin(ospathdirname(item.getPath()[0])+'/'+str(text))
228
+ try:
229
+ osrename(item.getPath()[0],newname)
171
- print text
230
+ except:
231
+ QMessageBox.about(self,"Could Not Rename","Could Not Rename The File")
172
232
 
173
233
  def delete(self,item):
174
234
  reply = QMessageBox.question(self,
@@ -179,8 +239,7 @@ class Tree(QTreeWidget):
179
239
  return
180
240
  elif reply == QMessageBox.Yes:
181
241
  try:
182
- #os.remove(name)
183
- print item.getPath()
242
+ recycle(item.getPath()[0])
184
243
  except:
185
244
  QMessageBox.about(self,"Could Not Delete","Could Not Delete The File")
186
245
 
Widget/tree.pyc CHANGED
Binary file
config.py CHANGED
@@ -67,11 +67,16 @@ class Config:
67
67
  def addProject(self,nfile):
68
68
  pros = self.projects()
69
69
  if(self.check(pros,nfile)):
70
+ if(os.path.exists(nfile)):
70
- pros.append(nfile)
71
+ pros.append(nfile)
71
- try:
72
+ try:
72
- yaml.dump(self.data,open(self.configfile,'w'),default_flow_style=False)
73
+ yaml.dump(self.data,open(self.configfile,'w'),default_flow_style=False)
73
- except:
74
+ except:
74
- print "cannot open config file"
75
+ print "cannot open config file"
76
+ else:
77
+ "Folder Does not exist"
78
+ else:
79
+ pass
75
80
 
76
81
  def removeProject(self,nfile):
77
82
  pros = self.projects()
config.yaml CHANGED
@@ -1,7 +1,10 @@
1
1
  File:
2
2
  - C:/CODE/assets/main.nut
3
+ - C:/CODE/assets/physics.nut
4
+ - C:/CODE/assets/titlescene.nut
3
5
  Project:
4
6
  - C:/CODE/assets/
7
+ - C:/CODE/data/
5
8
  Recent:
6
9
  - C:\CODE\IDE\main.nut
7
10
  Setting:
main.py CHANGED
@@ -1,19 +1,21 @@
1
1
  #!/usr/bin/env python
2
2
  __author__ = "pyros2097"
3
3
  __license__ = "GPLv3"
4
- __version__ = "0.35"
4
+ __version__ = "0.40"
5
5
  __copyright__ = 'Copyright (c) 2012, pyros2097'
6
6
  __credits__ = ['pyros2097', 'eclipse']
7
7
  __email__ = 'pyros2097@gmail.com'
8
8
 
9
9
  #TODO:
10
- #Need to add options for all GUI
10
+ #Add options for all GUI
11
-
11
+ #Add Project Options
12
- import platform
12
+ #Add error markers
13
13
 
14
14
  from PyQt4.QtGui import (QMainWindow,QApplication,QPixmap,QSplashScreen,
15
- QIcon,QAction,QMenu,QMessageBox)
15
+ QIcon,QAction,QMenu,QMessageBox,QWidgetAction,
16
+ QCheckBox,QFileDialog,QToolButton,QPushButton)
16
- from PyQt4.QtCore import SIGNAL,Qt,QProcess,QStringList,QString,QT_VERSION_STR,PYQT_VERSION_STR
17
+ from PyQt4.QtCore import (SIGNAL,Qt,QProcess,QStringList,QString,
18
+ QT_VERSION_STR,PYQT_VERSION_STR,QSize)
17
19
 
18
20
  from ui_simple import Ui_MainWindow
19
21
  import icons_rc
@@ -22,7 +24,7 @@ from Widget import Editor,PyInterp
22
24
  #from Dialog import *
23
25
  from config import Config
24
26
  #from styles import *
25
- from globals import ospathsep,ospathjoin,ospathbasename,workDir
27
+ from globals import ospathsep,ospathjoin,ospathbasename,workDir,OS_NAME,PY_VERSION
26
28
  import threading
27
29
 
28
30
 
@@ -46,14 +48,18 @@ class myThread (threading.Thread):
46
48
  self.proc = proc
47
49
 
48
50
  def run(self):
49
- self.proc()
51
+ #self.proc()
50
52
  print "Starting "
51
53
  print "Exiting "
52
-
54
+
53
55
  class MainWindow(QMainWindow, Ui_MainWindow):
54
56
  def __init__(self, parent=None):
55
57
  super(MainWindow, self).__init__(parent)
56
- self.setupUi(self)
58
+ self.setupUi(self)
59
+ self.files = None
60
+ self.projects = None
61
+ self.recent = None
62
+ self.dirty = None
57
63
  self.isRunning = False
58
64
  self.isFull = False
59
65
  self.isCmd = False
@@ -63,9 +69,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
63
69
  self.setWindowTitle("Sabel")
64
70
  self.setWindowIcon(os_icon("sample"))
65
71
  self.init()
72
+ #print self.width()
66
73
 
67
74
  def init(self):
68
- #self.initOS()
69
75
  self.initConfig()
70
76
  self.initToolBar()
71
77
  self.initCommand()
@@ -73,16 +79,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
73
79
  self.initProjects()
74
80
  #self.initStyles()
75
81
  self.connect(self, SIGNAL('triggered()'), self.closeEvent)
76
- self.connect(self.tabWidget,SIGNAL("dropped"), self.createTab)
82
+ self.connect(self.tabWidget,SIGNAL("dropped"), self.createTab)
77
-
78
83
  #self.initInterpreter()
79
- #print self.files.pop()
80
-
81
-
82
- def initOS(self):
83
- print platform.system()
84
- #print os.name
85
- #print ospathjoin("C:",ospathsep,"Code")
86
84
 
87
85
  def initConfig(self):
88
86
  self.tabWidget.setTabsClosable(True)
@@ -108,6 +106,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
108
106
  self.treeWidget.addProject(startDir)
109
107
 
110
108
  def ss(self,item):
109
+ #print item.getPath()
111
110
  self.createTab(item.getPath())
112
111
 
113
112
  def initStyles(self):
@@ -123,7 +122,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
123
122
  def initInterpreter(self):
124
123
  self.ipy = PyInterp(self)
125
124
  self.ipy.initInterpreter(locals())
126
- self.tabWidget_2.addTab(self.ipy, "Python")
125
+ self.tabWidget_3.addTab(self.ipy, "Python")
127
126
 
128
127
 
129
128
  def initToolBar(self):
@@ -133,18 +132,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
133
132
  self.action_NewProject.setToolTip("Create a New Project")
134
133
  self.action_NewProject.setStatusTip("Create a New Project")
135
134
 
136
- self.action_OpenProject = QAction(os_icon('prj_mode'), 'Open Project', self)
137
- self.action_OpenProject.triggered.connect(self.openProject)
138
- self.action_OpenProject.setToolTip("Open a Project")
139
- self.action_OpenProject.setStatusTip("Open a Project")
140
-
141
135
  self.action_New = QAction(os_icon('new_untitled_text_file'), 'New', self)
142
136
  self.action_New.setShortcut('Ctrl+N')
143
137
  self.action_New.triggered.connect(self.fileNew)
144
138
  self.action_New.setToolTip("Create a New File")
145
139
  self.action_New.setStatusTip("Create a New File")
146
140
 
147
- self.action_Open = QAction(os_icon('impc_obj'), 'Open', self)
141
+ self.action_Open = QAction(os_icon('__imp_obj'), 'Open', self)
148
142
  self.action_Open.setShortcut('Ctrl+O')
149
143
  self.action_Open.triggered.connect(self.fileOpen)
150
144
  self.action_Open.setToolTip("Open File")
@@ -167,7 +161,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
167
161
  self.action_About.triggered.connect(self.about)
168
162
  self.action_Run = QAction(os_icon('lrun_obj'), 'Run', self)
169
163
  self.action_Run.setShortcut('Ctrl+R')
170
- self.action_Run.triggered.connect(self.runn)
164
+ self.action_Run.triggered.connect(self.run)
171
165
  self.action_RunFile = QAction(os_icon('start_ccs_task'), 'File', self)
172
166
  self.action_RunFile.triggered.connect(self.runFile)
173
167
  self.action_Stop = QAction(os_icon('term_sbook'), 'Stop', self)
@@ -188,7 +182,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
188
182
  self.action_Full.triggered.connect(self.full)
189
183
 
190
184
  self.action_Syntax = QAction(os_icon('task_set'), 'Syntax', self)
191
- men = QMenu()
185
+ men = QMenu()#public_co.gif
186
+ #chkBox =QCheckBox(men)
187
+ #chkBox.setText("MyCheckBox")
188
+ chkBoxAction=QWidgetAction(men)
189
+ #chkBoxAction.setDefaultWidget(QPixmap(":/Icons/public_co"))
190
+ men.addAction(chkBoxAction)
191
+
192
192
  men.addAction(QAction("C",self))
193
193
  men.addAction(QAction("C++",self))
194
194
  men.addAction(QAction("C#",self))
@@ -226,7 +226,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
226
226
 
227
227
  self.action_Stop.setDisabled(True)
228
228
  self.toolbar = self.addToolBar('ToolBar')
229
+ self.toolbar.setIconSize(QSize(16,16))
229
230
  self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
231
+ self.toolbar.setAllowedAreas(Qt.AllToolBarAreas)
232
+
230
233
  self.toolbar.addAction(self.action_NewProject)
231
234
  #self.toolbar.addAction(self.action_OpenProject)
232
235
  self.toolbar.addAction(self.action_New)
@@ -248,6 +251,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
248
251
  self.toolbar.addAction(self.action_Help)
249
252
  self.toolbar.addAction(self.action_About)
250
253
  self.toolbar.addAction(self.action_Full)
254
+ self.statusbar.addAction(self.action_Cmd)
255
+
256
+ self.pushButton = QPushButton(self)
257
+ self.pushButton.setFlat(True)
258
+ self.pushButton.setIcon(os_icon('monitor_obj'))
259
+ self.pushButton.clicked.connect(self.cmd)
260
+ self.statusbar.addWidget(self.pushButton)
261
+
251
262
 
252
263
 
253
264
  def createTab(self,nfile):
@@ -269,7 +280,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
269
280
  tab.setText(infile.read())
270
281
  tab.textChanged.connect(lambda:self.setDirty(nfile))
271
282
  except:
272
- QMessageBox.about(self,"Can't Open","File Does Not Exist")
283
+ QMessageBox.about(self,"Can't Open","File Does Not Exist")
273
284
  else:
274
285
  for i in nfile:
275
286
  self.createTab(i)
@@ -320,34 +331,48 @@ class MainWindow(QMainWindow, Ui_MainWindow):
320
331
  <p>
321
332
  All rights reserved in accordance with
322
333
  GPL v3 or later.
323
- <p>This application can be used for
334
+ <p>This application can be used for Squirrel and EmoFramework Projects.
335
+ <p>Squirrel Shell (c) 2006-2011, Constantin Makshin
324
- Squirrel and EmoFramework Projects.
336
+ <p>Squirrel (c) Alberto Demichelis
337
+ <p>zlib (c) Jean-loup Gailly and Mark Adler
338
+ <p>Icons (c) Eclipse EPL
325
339
  <p>Python %s - Qt %s - PyQt %s on %s
340
+ <p>Copyright (c) 2011 emo-framework project
326
341
  <p>Created By: pyros2097
342
+ <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
343
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,INCLUDING, BUT NOT
344
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
345
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
346
+ EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
347
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
348
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
349
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
350
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
351
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
352
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
353
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
354
+ POSSIBILITY OF SUCH DAMAGE.
327
355
  """ % (
328
- __version__,platform.python_version(),
356
+ __version__,PY_VERSION,
329
- QT_VERSION_STR, PYQT_VERSION_STR, platform.system()))
357
+ QT_VERSION_STR, PYQT_VERSION_STR,OS_NAME))
330
358
 
331
359
  def help(self):
332
360
  QMessageBox.about(self, "About Simple Editor","This is The Help")
333
-
334
- def newProject(self):
335
- pass
336
361
 
337
362
  def openProject(self):
338
- fname = unicode(QFileDialog.getExistingDirectory(self,"Open File"))
363
+ fname = str(QFileDialog.getExistingDirectory(self,"Open File"))
339
364
  if not (fname == ""):
365
+ fname = fname+"/"
366
+ #print fname
340
- for file in self.projects:
367
+ for nfile in self.projects:
341
- if(file != fname):
368
+ if(nfile != fname):
342
369
  self.createProjects(fname)
343
370
  config.addProject(fname)
344
371
  return
345
372
  else:
346
- QMessageBox.about(self, "Already Open","File Already Open")
373
+ QMessageBox.about(self, "Already Open","Project Already Open")
347
374
  return
348
- else:
349
- QMessageBox.about(self, "No File","No File Selected")
350
- return
375
+ return
351
376
 
352
377
  def syntax(self):
353
378
  pass
@@ -357,22 +382,17 @@ class MainWindow(QMainWindow, Ui_MainWindow):
357
382
 
358
383
  def full(self):
359
384
  if not self.isFull:
360
- super(MainWindow, self).setWindowFlags(Qt.Window | Qt.CustomizeWindowHint)
385
+ self.setWindowFlags(Qt.Window | Qt.CustomizeWindowHint)
361
386
  self.isFull = True
362
387
  else:
363
- super(MainWindow, self).setWindowFlags(Qt.Window)
388
+ self.setWindowFlags(Qt.Window)
364
389
  self.isFull = False
365
390
 
366
391
  def options(self):
367
392
  pass
368
- #opt = UIOptions(self)
369
- #opt.show()
370
-
371
393
 
372
394
  def fileNew(self):
373
395
  pass
374
- #self.createTab("untilted")
375
- #self.statusBar().showMessage('File menu: New selected', 5000)
376
396
 
377
397
  def fileOpen(self):
378
398
  '''Open file'''
@@ -424,6 +444,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
424
444
 
425
445
 
426
446
  def closeEvent(self, event):
447
+ if(self.process.isOpen()):
448
+ self.process.kill()
449
+ self.process.close()
427
450
  for i in self.dirty:
428
451
  if i:
429
452
  reply = QMessageBox.question(self,
@@ -434,8 +457,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
434
457
  pass
435
458
  elif reply == QMessageBox.Yes:
436
459
  self.fileSaveAll()
460
+
437
461
 
438
462
  def cmd(self):
463
+ if(self.tabWidget_3.isHidden()):
464
+ self.tabWidget_3.show()
465
+ else:
466
+ self.tabWidget_3.hide()
467
+ """
439
468
  self.CmdThread.setCommand("cmd")
440
469
  self.CmdThread.setArguments("dir")
441
470
  if self.isCmd == False:
@@ -446,37 +475,30 @@ class MainWindow(QMainWindow, Ui_MainWindow):
446
475
  self.textEdit.clear()
447
476
  self.tabWidget_2.setCurrentIndex(1)
448
477
  self.CmdThread.start()
478
+ """
449
479
 
450
480
 
451
481
  def runn(self):
452
482
  self.CmdThread = myThread(self.run())
453
- #self.CmdThread.start()
483
+ self.CmdThread.start()
454
484
 
455
485
  def runFile(self):
456
- nfile = self.files[self.tabWidget.currentIndex()]
457
486
  if self.isRunning == False:
458
- if self.process.isOpen():
459
- self.process.kill()
487
+ self.cmd()
460
- self.isRunning = True
461
- self.action_RunFile.setDisabled(True)
462
- self.action_Stop.setEnabled(True)
463
- self.textEdit.clear()
464
- self.tabWidget_2.setCurrentIndex(1)
465
- self.textEdit.append("Running")
466
- #self.process.start("sq "+"sqtest.nut")
488
+ self.process.start("python")
467
- #self.process.waitForFinished(msecs=5000)
489
+
468
- self.process.kill()
469
490
 
470
491
  def run(self):
471
492
  if self.isRunning == False:
472
493
  if self.process.isOpen():
473
494
  self.process.kill()
474
495
  self.isRunning = True
475
- #self.action_Run.setIcon(os_icon('run_exc'))
476
496
  self.action_Run.setDisabled(True)
477
497
  self.action_Stop.setEnabled(True)
498
+ if(self.tabWidget_3.isHidden()):
499
+ self.tabWidget_3.show()
478
500
  self.textEdit.clear()
479
- self.tabWidget_2.setCurrentIndex(1)
501
+ self.tabWidget_3.setCurrentIndex(1)
480
502
  #Running: C:/CODE/Tools/icons.py (Wed Aug 08 17:15:55 2012)
481
503
  self.textEdit.append("Pushing main.nut\n")
482
504
  self.process.start("adb -d push C:/CODE/main.nut /sdcard/")
@@ -498,12 +520,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
498
520
  self.process.start("adb -d shell ps | grep com.emo_framework.examples | awk '{print $2}' | xargs adb shell kill")
499
521
  self.process.waitForFinished()
500
522
  self.process.kill()
523
+ if not(self.tabWidget_3.isHidden()):
501
- self.tabWidget_2.setCurrentIndex(0)
524
+ self.tabWidget_3.hide()
502
- #self.action_Run.setIcon(os_icon('lrun_obj'))
503
525
  self.action_Run.setEnabled(True)
504
526
 
505
527
  def readOutput(self):
506
528
  self.textEdit.append(QString(self.process.readAllStandardOutput()))
529
+ sb = self.textEdit.verticalScrollBar()
530
+ sb.setValue(sb.maximum())
507
531
  # self.cmdText += self.textEdit.toPlainText()
508
532
  # print self.cmdText
509
533
  def readErrors(self):
ui_simple.py CHANGED
@@ -1,98 +1,85 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- # Form implementation generated from reading ui file 'C:\CODE\IDE\simple.ui'
4
- #
5
- # Created: Fri Aug 03 14:22:10 2012
6
- # by: PyQt4 UI code generator 4.9.4
7
- #
8
- # WARNING! All changes made in this file will be lost!
9
-
10
1
  from PyQt4 import QtCore, QtGui
11
2
  from Widget import Tab,Tree
12
3
 
13
- try:
14
- _fromUtf8 = QtCore.QString.fromUtf8
15
- except AttributeError:
16
- _fromUtf8 = lambda s: s
17
-
18
4
  class Ui_MainWindow(object):
19
5
  def setupUi(self, MainWindow):
20
- MainWindow.setObjectName(_fromUtf8("MainWindow"))
6
+ MainWindow.setObjectName("MainWindow")
21
7
  MainWindow.resize(758, 673)
22
8
  self.centralwidget = QtGui.QWidget(MainWindow)
23
- self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
9
+ self.centralwidget.setObjectName("centralwidget")
24
10
  self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
25
- self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
11
+ self.horizontalLayout.setObjectName("horizontalLayout")
12
+
13
+ #TabWidgets
26
14
  self.tabWidget = Tab(self)
27
15
  self.tabWidget.setMinimumSize(QtCore.QSize(500, 0))
28
- self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
16
+ self.tabWidget.setObjectName("tabWidget")
29
- self.horizontalLayout.addWidget(self.tabWidget)
30
- self.split1 = QtGui.QSplitter(QtCore.Qt.Horizontal)
31
- #self.tabWidget_2 = QtGui.QTabWidget(self.centralwidget)
32
17
  self.tabWidget_2 = QtGui.QTabWidget(self)
33
- self.split1.addWidget(self.tabWidget)
34
- self.split1.addWidget(self.tabWidget_2)
35
18
  self.tabWidget_2.setMaximumSize(QtCore.QSize(200, 16777215))
36
- self.tabWidget_2.setObjectName(_fromUtf8("tabWidget_2"))
19
+ self.tabWidget_2.setObjectName("tabWidget_2")
20
+ self.tabWidget_3 = QtGui.QTabWidget(self)
21
+ self.tabWidget_3.setMaximumSize(16777215,200)
22
+ self.tabWidget_3.setMinimumSize(0,75)
23
+ self.tabWidget_3.setObjectName("tabWidget_3")
24
+ #bottom = QtGui.QFrame(self)
25
+ #bottom.setFrameShape(QtGui.QFrame.StyledPanel)
26
+ #bottom.setMaximumSize(16777215,200)
27
+
28
+ #Tree
37
29
  self.tab_5 = QtGui.QWidget()
38
- self.tab_5.setObjectName(_fromUtf8("tab_5"))
30
+ self.tab_5.setObjectName("tab_5")
39
31
  self.horizontalLayoutWidget_2 = QtGui.QWidget(self.tab_5)
40
32
  self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 9, 191, 601))
41
- self.horizontalLayoutWidget_2.setObjectName(_fromUtf8("horizontalLayoutWidget_2"))
33
+ self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
42
34
  self.horizontalLayout_3 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_2)
43
35
  self.horizontalLayout_3.setMargin(0)
44
- self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
36
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
45
37
  self.treeWidget = Tree(self.horizontalLayoutWidget_2)
46
- self.treeWidget.setObjectName(_fromUtf8("treeWidget"))
38
+ self.treeWidget.setObjectName("treeWidget")
47
39
  self.horizontalLayout_3.addWidget(self.treeWidget)
40
+
48
- self.tabWidget_2.addTab(self.tab_5, _fromUtf8(""))
41
+ #Output
49
42
  self.tab_6 = QtGui.QWidget()
50
- self.tab_6.setObjectName(_fromUtf8("tab_6"))
43
+ self.tab_6.setObjectName("tab_6")
44
+ #GGGGGGGGGGGGGGGGGGGG AWESOME
51
- self.horizontalLayoutWidget = QtGui.QWidget(self.tab_6)
45
+ self.horizontalLayout_2 = QtGui.QHBoxLayout(self.tab_6)
52
- self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, -1, 191, 611))
53
- self.horizontalLayoutWidget.setObjectName(_fromUtf8("horizontalLayoutWidget"))
54
- self.horizontalLayout_2 = QtGui.QHBoxLayout(self.horizontalLayoutWidget)
55
46
  self.horizontalLayout_2.setMargin(0)
56
- self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
47
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
57
- self.textEdit = QtGui.QTextEdit(self.horizontalLayoutWidget)
48
+ self.textEdit = QtGui.QTextEdit(self.tab_6)
58
- self.textEdit.setObjectName(_fromUtf8("textEdit"))
49
+ self.textEdit.setObjectName("textEdit")
59
50
  self.horizontalLayout_2.addWidget(self.textEdit)
51
+
52
+ #Error
53
+ self.tab_7 = QtGui.QWidget()
54
+ self.tab_7.setObjectName("tab_7")
55
+ self.horizontalLayoutWidget_4 = QtGui.QWidget(self.tab_7)
56
+ self.horizontalLayoutWidget_4.setGeometry(QtCore.QRect(0, -1, 16777215, 200))
57
+ self.horizontalLayoutWidget_4.setObjectName("horizontalLayoutWidget_4")
58
+ self.horizontalLayout_4 = QtGui.QHBoxLayout(self.horizontalLayoutWidget_4)
59
+ self.horizontalLayout_4.setMargin(0)
60
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
61
+ self.textEdit_2 = QtGui.QTextEdit(self.horizontalLayoutWidget_4)
62
+ self.textEdit_2.setObjectName("textEdit_2")
63
+ self.horizontalLayout_4.addWidget(self.textEdit_2)
64
+
65
+ self.tabWidget_2.addTab(self.tab_5,"Projects")
66
+ self.tabWidget_3.addTab(self.tab_7,"Error")
60
- self.tabWidget_2.addTab(self.tab_6, _fromUtf8(""))
67
+ self.tabWidget_3.addTab(self.tab_6,"Output")
68
+ #Splitters
69
+ self.split1 = QtGui.QSplitter(QtCore.Qt.Horizontal)
70
+ self.split1.addWidget(self.tabWidget)
71
+ self.split1.addWidget(self.tabWidget_2)
72
+ self.split2 = QtGui.QSplitter(QtCore.Qt.Vertical)
73
+ self.split2.addWidget(self.split1)
74
+ self.split2.addWidget(self.tabWidget_3)
75
+ self.tabWidget_3.hide()
61
- self.horizontalLayout.addWidget(self.split1)
76
+ self.horizontalLayout.addWidget(self.split2)
62
77
  MainWindow.setCentralWidget(self.centralwidget)
63
78
  self.statusbar = QtGui.QStatusBar(MainWindow)
64
- self.statusbar.setObjectName(_fromUtf8("statusbar"))
79
+ self.statusbar.setObjectName("statusbar")
65
80
  MainWindow.setStatusBar(self.statusbar)
66
- self.action_New = QtGui.QAction(MainWindow)
67
- self.action_New.setObjectName(_fromUtf8("action_New"))
68
- self.action_Open = QtGui.QAction(MainWindow)
69
- self.action_Open.setObjectName(_fromUtf8("action_Open"))
70
- self.action_Save = QtGui.QAction(MainWindow)
71
- self.action_Save.setObjectName(_fromUtf8("action_Save"))
72
- self.actionSave_As = QtGui.QAction(MainWindow)
73
- self.actionSave_As.setObjectName(_fromUtf8("actionSave_As"))
74
- self.action_Quit = QtGui.QAction(MainWindow)
75
- self.action_Quit.setObjectName(_fromUtf8("action_Quit"))
76
- self.actionA_bout = QtGui.QAction(MainWindow)
77
- self.actionA_bout.setObjectName(_fromUtf8("actionA_bout"))
78
- self.action_Help = QtGui.QAction(MainWindow)
79
- self.action_Help.setObjectName(_fromUtf8("action_Help"))
80
-
81
- self.retranslateUi(MainWindow)
82
81
  self.tabWidget.setCurrentIndex(-1)
83
82
  self.tabWidget_2.setCurrentIndex(0)
84
- QtCore.QObject.connect(self.action_Quit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close)
85
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
83
+ #QtCore.QMetaObject.connectSlotsByName(MainWindow)
86
-
87
- def retranslateUi(self, MainWindow):
88
- MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Simple Editor", None, QtGui.QApplication.UnicodeUTF8))
89
- self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), QtGui.QApplication.translate("MainWindow", "Files", None, QtGui.QApplication.UnicodeUTF8))
90
- self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_6), QtGui.QApplication.translate("MainWindow", "Output", None, QtGui.QApplication.UnicodeUTF8))
91
- self.action_New.setText(QtGui.QApplication.translate("MainWindow", "&New", None, QtGui.QApplication.UnicodeUTF8))
84
+ #QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('Cleanlooks'))
92
- self.action_Open.setText(QtGui.QApplication.translate("MainWindow", "&Open", None, QtGui.QApplication.UnicodeUTF8))
93
- self.action_Save.setText(QtGui.QApplication.translate("MainWindow", "&Save", None, QtGui.QApplication.UnicodeUTF8))
94
- self.actionSave_As.setText(QtGui.QApplication.translate("MainWindow", "Save &As", None, QtGui.QApplication.UnicodeUTF8))
95
- self.action_Quit.setText(QtGui.QApplication.translate("MainWindow", "&Quit", None, QtGui.QApplication.UnicodeUTF8))
96
- self.actionA_bout.setText(QtGui.QApplication.translate("MainWindow", "A&bout", None, QtGui.QApplication.UnicodeUTF8))
97
- self.action_Help.setText(QtGui.QApplication.translate("MainWindow", "&Help", None, QtGui.QApplication.UnicodeUTF8))
98
85
 
ui_simple.pyc CHANGED
Binary file