@@ -110,19 +110,96 @@ def __init__(self, parent=None):
110
110
self .splitter .setChildrenCollapsible (False )
111
111
self .splitter .addWidget (self .shellOut )
112
112
self .splitter .addWidget (self .shell )
113
- self .splitterEditor .addWidget (self .tabEditorWidget )
114
-
113
+ #self.splitterEditor.addWidget(self.tabEditorWidget)
114
+
115
+ self .widgetEditor = QWidget (self .splitterEditor )
116
+
115
117
# Hide side editor on start up
116
- self .tabEditorWidget .hide ()
117
-
118
+ self .widgetEditor .hide ()
119
+
118
120
# List for tab script
119
121
self .settings = QSettings ()
120
122
storedTabScripts = self .settings .value ("pythonConsole/tabScripts" )
121
123
self .tabListScript = storedTabScripts .toList ()
122
-
124
+
123
125
sizes = self .splitter .sizes ()
124
126
self .splitter .setSizes (sizes )
125
127
128
+ ##------------------Toolbar Editor-------------------------------------
129
+
130
+ ## Action for Open File
131
+ openFileBt = QCoreApplication .translate ("PythonConsole" , "Open file" )
132
+ self .openFileButton = QAction (parent )
133
+ self .openFileButton .setCheckable (False )
134
+ self .openFileButton .setEnabled (False )
135
+ self .openFileButton .setIcon (QgsApplication .getThemeIcon ("console/iconOpenConsole.png" ))
136
+ self .openFileButton .setMenuRole (QAction .PreferencesRole )
137
+ self .openFileButton .setIconVisibleInMenu (True )
138
+ self .openFileButton .setToolTip (openFileBt )
139
+ self .openFileButton .setText (openFileBt )
140
+ ## Action for Save File
141
+ saveFileBt = QCoreApplication .translate ("PythonConsole" , "Save" )
142
+ self .saveFileButton = QAction (parent )
143
+ self .saveFileButton .setCheckable (False )
144
+ self .saveFileButton .setEnabled (False )
145
+ self .saveFileButton .setIcon (QgsApplication .getThemeIcon ("console/iconSaveConsole.png" ))
146
+ self .saveFileButton .setMenuRole (QAction .PreferencesRole )
147
+ self .saveFileButton .setIconVisibleInMenu (True )
148
+ self .saveFileButton .setToolTip (saveFileBt )
149
+ self .saveFileButton .setText (saveFileBt )
150
+ ## Action for Save File As
151
+ saveAsFileBt = QCoreApplication .translate ("PythonConsole" , "Save As.." )
152
+ self .saveAsFileButton = QAction (parent )
153
+ self .saveAsFileButton .setCheckable (False )
154
+ self .saveAsFileButton .setEnabled (False )
155
+ self .saveAsFileButton .setIcon (QgsApplication .getThemeIcon ("console/iconSaveAsConsole.png" ))
156
+ self .saveAsFileButton .setMenuRole (QAction .PreferencesRole )
157
+ self .saveAsFileButton .setIconVisibleInMenu (True )
158
+ self .saveAsFileButton .setToolTip (saveAsFileBt )
159
+ self .saveAsFileButton .setText (saveAsFileBt )
160
+ ## Action Cut
161
+ cutEditorBt = QCoreApplication .translate ("PythonConsole" , "Cut" )
162
+ self .cutEditorButton = QAction (parent )
163
+ self .cutEditorButton .setCheckable (False )
164
+ self .cutEditorButton .setEnabled (True )
165
+ self .cutEditorButton .setIcon (QgsApplication .getThemeIcon ("console/iconCutEditorConsole.png" ))
166
+ self .cutEditorButton .setMenuRole (QAction .PreferencesRole )
167
+ self .cutEditorButton .setIconVisibleInMenu (True )
168
+ self .cutEditorButton .setToolTip (cutEditorBt )
169
+ self .cutEditorButton .setText (cutEditorBt )
170
+ ## Action Copy
171
+ copyEditorBt = QCoreApplication .translate ("PythonConsole" , "Copy" )
172
+ self .copyEditorButton = QAction (parent )
173
+ self .copyEditorButton .setCheckable (False )
174
+ self .copyEditorButton .setEnabled (True )
175
+ self .copyEditorButton .setIcon (QgsApplication .getThemeIcon ("console/iconCopyEditorConsole.png" ))
176
+ self .copyEditorButton .setMenuRole (QAction .PreferencesRole )
177
+ self .copyEditorButton .setIconVisibleInMenu (True )
178
+ self .copyEditorButton .setToolTip (copyEditorBt )
179
+ self .copyEditorButton .setText (copyEditorBt )
180
+ ## Action Paste
181
+ pasteEditorBt = QCoreApplication .translate ("PythonConsole" , "Paste" )
182
+ self .pasteEditorButton = QAction (parent )
183
+ self .pasteEditorButton .setCheckable (False )
184
+ self .pasteEditorButton .setEnabled (True )
185
+ self .pasteEditorButton .setIcon (QgsApplication .getThemeIcon ("console/iconPasteEditorConsole.png" ))
186
+ self .pasteEditorButton .setMenuRole (QAction .PreferencesRole )
187
+ self .pasteEditorButton .setIconVisibleInMenu (True )
188
+ self .pasteEditorButton .setToolTip (pasteEditorBt )
189
+ self .pasteEditorButton .setText (pasteEditorBt )
190
+ ## Action Run Script (subprocess)
191
+ runScriptEditorBt = QCoreApplication .translate ("PythonConsole" , "Run script" )
192
+ self .runScriptEditorButton = QAction (parent )
193
+ self .runScriptEditorButton .setCheckable (False )
194
+ self .runScriptEditorButton .setEnabled (True )
195
+ self .runScriptEditorButton .setIcon (QgsApplication .getThemeIcon ("console/iconRunScriptConsole.png" ))
196
+ self .runScriptEditorButton .setMenuRole (QAction .PreferencesRole )
197
+ self .runScriptEditorButton .setIconVisibleInMenu (True )
198
+ self .runScriptEditorButton .setToolTip (runScriptEditorBt )
199
+ self .runScriptEditorButton .setText (runScriptEditorBt )
200
+
201
+ ##----------------Toolbar Console-------------------------------------
202
+
126
203
## Action Show Editor
127
204
showEditor = QCoreApplication .translate ("PythonConsole" , "Show editor" )
128
205
self .showEditorButton = QAction (parent )
@@ -165,15 +242,15 @@ def __init__(self, parent=None):
165
242
self .actionClass .setToolTip (actionClassBt )
166
243
self .actionClass .setText (actionClassBt )
167
244
## Action menu Open/Save script
168
- actionScriptBt = QCoreApplication .translate ("PythonConsole" , "Manage Script" )
169
- self .actionScript = QAction (parent )
170
- self .actionScript .setCheckable (False )
171
- self .actionScript .setEnabled (True )
172
- self .actionScript .setIcon (QgsApplication .getThemeIcon ("console/iconScriptConsole.png" ))
173
- self .actionScript .setMenuRole (QAction .PreferencesRole )
174
- self .actionScript .setIconVisibleInMenu (True )
175
- self .actionScript .setToolTip (actionScriptBt )
176
- self .actionScript .setText (actionScriptBt )
245
+ # actionScriptBt = QCoreApplication.translate("PythonConsole", "Manage Script")
246
+ # self.actionScript = QAction(parent)
247
+ # self.actionScript.setCheckable(False)
248
+ # self.actionScript.setEnabled(True)
249
+ # self.actionScript.setIcon(QgsApplication.getThemeIcon("console/iconScriptConsole.png"))
250
+ # self.actionScript.setMenuRole(QAction.PreferencesRole)
251
+ # self.actionScript.setIconVisibleInMenu(True)
252
+ # self.actionScript.setToolTip(actionScriptBt)
253
+ # self.actionScript.setText(actionScriptBt)
177
254
## Import Sextante class
178
255
loadSextanteBt = QCoreApplication .translate ("PythonConsole" , "Import Sextante class" )
179
256
self .loadSextanteButton = QAction (parent )
@@ -204,36 +281,6 @@ def __init__(self, parent=None):
204
281
self .loadQtGuiButton .setIconVisibleInMenu (True )
205
282
self .loadQtGuiButton .setToolTip (loadQtGuiBt )
206
283
self .loadQtGuiButton .setText (loadQtGuiBt )
207
- ## Action for Open File
208
- openFileBt = QCoreApplication .translate ("PythonConsole" , "Open file" )
209
- self .openFileButton = QAction (parent )
210
- self .openFileButton .setCheckable (False )
211
- self .openFileButton .setEnabled (False )
212
- self .openFileButton .setIcon (QgsApplication .getThemeIcon ("console/iconOpenConsole.png" ))
213
- self .openFileButton .setMenuRole (QAction .PreferencesRole )
214
- self .openFileButton .setIconVisibleInMenu (True )
215
- self .openFileButton .setToolTip (openFileBt )
216
- self .openFileButton .setText (openFileBt )
217
- ## Action for Save File
218
- saveFileBt = QCoreApplication .translate ("PythonConsole" , "Save" )
219
- self .saveFileButton = QAction (parent )
220
- self .saveFileButton .setCheckable (False )
221
- self .saveFileButton .setEnabled (False )
222
- self .saveFileButton .setIcon (QgsApplication .getThemeIcon ("console/iconSaveConsole.png" ))
223
- self .saveFileButton .setMenuRole (QAction .PreferencesRole )
224
- self .saveFileButton .setIconVisibleInMenu (True )
225
- self .saveFileButton .setToolTip (saveFileBt )
226
- self .saveFileButton .setText (saveFileBt )
227
- ## Action for Save File As
228
- saveAsFileBt = QCoreApplication .translate ("PythonConsole" , "Save As.." )
229
- self .saveAsFileButton = QAction (parent )
230
- self .saveAsFileButton .setCheckable (False )
231
- self .saveAsFileButton .setEnabled (False )
232
- #self.saveAsFileButton.setIcon(QgsApplication.getThemeIcon("console/iconSaveConsole.png"))
233
- self .saveAsFileButton .setMenuRole (QAction .PreferencesRole )
234
- self .saveAsFileButton .setIconVisibleInMenu (True )
235
- self .saveAsFileButton .setToolTip (saveAsFileBt )
236
- self .saveAsFileButton .setText (saveAsFileBt )
237
284
## Action for Run script
238
285
runBt = QCoreApplication .translate ("PythonConsole" , "Run command" )
239
286
self .runButton = QAction (parent )
@@ -269,39 +316,70 @@ def __init__(self, parent=None):
269
316
self .toolBar .addAction (self .runButton )
270
317
self .toolBar .addSeparator ()
271
318
self .toolBar .addAction (self .showEditorButton )
272
- self .toolBar .addAction (self .actionScript )
319
+ # self.toolBar.addAction(self.actionScript)
273
320
self .toolBar .addSeparator ()
274
321
self .toolBar .addAction (self .optionsButton )
275
322
self .toolBar .addAction (self .helpButton )
276
323
324
+ self .toolBarEditor = QToolBar ()
325
+ self .toolBarEditor .setStyleSheet ('background-color: rgb(200, 200, 200);\
326
+ border-right: 1px solid rgb(155, 155, 155);' )
327
+ self .toolBarEditor .setEnabled (True )
328
+ self .toolBarEditor .setFocusPolicy (Qt .NoFocus )
329
+ self .toolBarEditor .setContextMenuPolicy (Qt .DefaultContextMenu )
330
+ self .toolBarEditor .setLayoutDirection (Qt .LeftToRight )
331
+ self .toolBarEditor .setIconSize (QSize (18 , 18 ))
332
+ self .toolBarEditor .setOrientation (Qt .Vertical )
333
+ self .toolBarEditor .setMovable (True )
334
+ self .toolBarEditor .setFloatable (True )
335
+ self .toolBarEditor .addAction (self .openFileButton )
336
+ self .toolBarEditor .addSeparator ()
337
+ self .toolBarEditor .addAction (self .saveFileButton )
338
+ self .toolBarEditor .addAction (self .saveAsFileButton )
339
+ self .toolBarEditor .addSeparator ()
340
+ self .toolBarEditor .addAction (self .cutEditorButton )
341
+ self .toolBarEditor .addAction (self .copyEditorButton )
342
+ self .toolBarEditor .addAction (self .pasteEditorButton )
343
+ self .toolBarEditor .addSeparator ()
344
+ self .toolBarEditor .addAction (self .runScriptEditorButton )
345
+
277
346
## Menu Import Class
278
- self .classMenu = QMenu (self )
279
- self .classMenu .addAction (self .loadSextanteButton )
280
- self .classMenu .addAction (self .loadQtCoreButton )
281
- self .classMenu .addAction (self .loadQtGuiButton )
282
- cM = self .toolBar .widgetForAction (self .actionClass )
283
- cM .setMenu (self .classMenu )
284
- cM .setPopupMode (QToolButton .InstantPopup )
285
- ## Menu Manage Script
286
- self .scriptMenu = QMenu (self )
287
- self .scriptMenu .addAction (self .openFileButton )
288
- self .scriptMenu .addAction (self .saveFileButton )
289
- self .scriptMenu .addAction (self .saveAsFileButton )
290
- sM = self .toolBar .widgetForAction (self .actionScript )
291
- sM .setMenu (self .scriptMenu )
292
- sM .setPopupMode (QToolButton .InstantPopup )
347
+ # self.classMenu = QMenu(self)
348
+ # self.classMenu.addAction(self.loadSextanteButton)
349
+ # self.classMenu.addAction(self.loadQtCoreButton)
350
+ # self.classMenu.addAction(self.loadQtGuiButton)
351
+ # cM = self.toolBar.widgetForAction(self.actionClass)
352
+ # cM.setMenu(self.classMenu)
353
+ # cM.setPopupMode(QToolButton.InstantPopup)
354
+ # ## Menu Manage Script
355
+ # self.scriptMenu = QMenu(self)
356
+ # self.scriptMenu.addAction(self.openFileButton)
357
+ # self.scriptMenu.addAction(self.saveFileButton)
358
+ # self.scriptMenu.addAction(self.saveAsFileButton)
359
+ # sM = self.toolBar.widgetForAction(self.actionScript)
360
+ # sM.setMenu(self.scriptMenu)
361
+ # sM.setPopupMode(QToolButton.InstantPopup)
293
362
294
363
self .widgetButton = QWidget ()
295
364
sizePolicy = QSizePolicy (QSizePolicy .Fixed , QSizePolicy .Preferred )
296
365
sizePolicy .setHorizontalStretch (0 )
297
366
sizePolicy .setVerticalStretch (0 )
298
367
sizePolicy .setHeightForWidth (self .widgetButton .sizePolicy ().hasHeightForWidth ())
299
368
self .widgetButton .setSizePolicy (sizePolicy )
369
+
370
+ self .widgetButtonEditor = QWidget (self .splitterEditor )
371
+ sizePolicy = QSizePolicy (QSizePolicy .Fixed , QSizePolicy .Preferred )
372
+ sizePolicy .setHorizontalStretch (0 )
373
+ sizePolicy .setVerticalStretch (0 )
374
+ sizePolicy .setHeightForWidth (self .widgetButtonEditor .sizePolicy ().hasHeightForWidth ())
375
+ self .widgetButtonEditor .setSizePolicy (sizePolicy )
376
+
300
377
sizePolicy = QSizePolicy (QSizePolicy .Expanding , QSizePolicy .Expanding )
301
378
sizePolicy .setHorizontalStretch (0 )
302
379
sizePolicy .setVerticalStretch (0 )
303
380
sizePolicy .setHeightForWidth (self .shellOut .sizePolicy ().hasHeightForWidth ())
304
381
self .shellOut .setSizePolicy (sizePolicy )
382
+
305
383
self .shellOut .setVerticalScrollBarPolicy (Qt .ScrollBarAsNeeded )
306
384
self .shell .setVerticalScrollBarPolicy (Qt .ScrollBarAsNeeded )
307
385
@@ -311,18 +389,34 @@ def __init__(self, parent=None):
311
389
self .mainLayout .setMargin (0 )
312
390
self .mainLayout .setSpacing (0 )
313
391
self .mainLayout .addWidget (self .widgetButton , 0 , 0 , 1 , 1 )
314
- self .mainLayout .addWidget (self .splitterEditor , 0 , 1 , 1 , 1 )
392
+ self .mainLayout .addWidget (self .widgetButtonEditor , 0 , 1 , 1 , 1 )
393
+ self .mainLayout .addWidget (self .splitterEditor , 0 , 2 , 1 , 1 )
394
+
395
+ self .layoutEditor = QGridLayout (self .widgetEditor )
396
+ self .layoutEditor .setMargin (0 )
397
+ self .layoutEditor .setSpacing (0 )
398
+ self .layoutEditor .addWidget (self .widgetButtonEditor , 0 , 0 , 1 , 1 )
399
+ self .layoutEditor .addWidget (self .tabEditorWidget , 0 , 1 , 1 , 1 )
400
+
315
401
self .toolBarLayout = QGridLayout (self .widgetButton )
316
402
self .toolBarLayout .setMargin (0 )
317
403
self .toolBarLayout .setSpacing (0 )
318
404
self .toolBarLayout .addWidget (self .toolBar )
405
+ self .toolBarEditorLayout = QGridLayout (self .widgetButtonEditor )
406
+ self .toolBarEditorLayout .setMargin (0 )
407
+ self .toolBarEditorLayout .setSpacing (0 )
408
+ self .toolBarEditorLayout .addWidget (self .toolBarEditor )
319
409
320
410
##------------ Add first Tab in Editor -------------------------------
321
411
322
412
#self.tabEditorWidget.newTabEditor(tabName='first', filename=None)
323
413
324
414
##------------ Signal -------------------------------
325
415
416
+ self .runScriptEditorButton .triggered .connect (self .runScriptEditor )
417
+ self .cutEditorButton .triggered .connect (self .cutEditor )
418
+ self .copyEditorButton .triggered .connect (self .copyEditor )
419
+ self .pasteEditorButton .triggered .connect (self .pasteEditor )
326
420
self .showEditorButton .toggled .connect (self .toggleEditor )
327
421
self .clearButton .triggered .connect (self .shellOut .clearConsole )
328
422
self .optionsButton .triggered .connect (self .openSettings )
@@ -347,10 +441,22 @@ def qtGui(self):
347
441
self .shell .commandConsole ('qtGui' )
348
442
349
443
def toggleEditor (self , checked ):
350
- self .tabEditorWidget .show () if checked else self .tabEditorWidget .hide ()
444
+ self .widgetEditor .show () if checked else self .widgetEditor .hide ()
351
445
self .openFileButton .setEnabled (checked )
352
446
self .saveFileButton .setEnabled (checked )
353
447
self .saveAsFileButton .setEnabled (checked )
448
+
449
+ def pasteEditor (self ):
450
+ self .tabEditorWidget .currentWidget ().newEditor .paste ()
451
+
452
+ def cutEditor (self ):
453
+ self .tabEditorWidget .currentWidget ().newEditor .cut ()
454
+
455
+ def copyEditor (self ):
456
+ self .tabEditorWidget .currentWidget ().newEditor .copy ()
457
+
458
+ def runScriptEditor (self ):
459
+ self .tabEditorWidget .currentWidget ().newEditor .runScriptCode ()
354
460
355
461
# def openScriptFile(self):
356
462
# settings = QSettings()
@@ -427,7 +533,7 @@ def saveAsScriptFile(self):
427
533
return
428
534
filename = QFileDialog .getSaveFileName (self ,
429
535
"Save File As" ,
430
- tabWidget . path , "Script file (*.py)" )
536
+ "*.py" , "Script file (*.py)" )
431
537
if not filename .isEmpty ():
432
538
self .tabListScript .remove (tabWidget .path )
433
539
tabWidget .path = filename
0 commit comments