Skip to content

Commit 0c087ee

Browse files
committed
shortcuts updated
1 parent 487362f commit 0c087ee

File tree

1 file changed

+29
-36
lines changed

1 file changed

+29
-36
lines changed

main.py

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,10 @@ def set_code(self, code):
103103
def set_mode(self, mode):
104104
self.mode = mode
105105
self.setCursorWidth(3 if self.mode == 1 else 1)
106-
self.setReadOnly(self.mode == 1)
106+
#self.setReadOnly(self.mode == 1)
107107
self.update()
108108

109+
109110
def __init__(self, font_size=18):
110111
super().__init__()
111112
# self.setTabStopWidth()
@@ -181,7 +182,9 @@ def show_all_code(self):
181182
self.setText(autopep8.fix_code(self.code))
182183
self.set_mode(0)
183184

185+
184186
def keyPressEvent(self, e: QtGui.QKeyEvent) -> None:
187+
self.setFocusPolicy(Qt.StrongFocus)
185188

186189
if e.key() == Qt.Key_Escape:
187190
self.set_mode(1 if self.mode == 0 else 0)
@@ -191,7 +194,8 @@ def keyPressEvent(self, e: QtGui.QKeyEvent) -> None:
191194
if self.mode == 1:
192195
if e.key() == Qt.Key_Down:
193196
self.show_all_code()
194-
197+
elif e.text() == "º":
198+
self.complete_line(True)
195199
elif e.key() == Qt.Key_Control:
196200
return
197201
elif e.key() == Qt.Key_End:
@@ -353,8 +357,6 @@ def __init__(self):
353357
self.text_edit.ctrl_enter.connect(self.execute_code)
354358
self.text_edit.info.connect(self.update_status_bar)
355359
self.text_edit.setPlaceholderText("Write Python code here...")
356-
self.text_edit.installEventFilter(self)
357-
358360

359361
self.line_number_area = PythonEditor(self.font_size)
360362
self.line_number_area.setStyleSheet("QTextEdit { color: #a0a0a0;}")
@@ -367,7 +369,7 @@ def __init__(self):
367369
bar.addAction("✕", self.clear_all)
368370
bar.addAction("⬇", self.text_edit.show_all_code)
369371

370-
self.keep_banner = bar.addAction("#")
372+
self.keep_banner = bar.addAction("")
371373
self.keep_banner.setCheckable(True)
372374
self.keep_banner.setChecked(False)
373375

@@ -457,13 +459,7 @@ def fill():
457459
q.activated.connect(self.open_slides)
458460

459461
q = QShortcut("Ctrl+Tab", self)
460-
q.activated.connect(lambda: self.tabs.setCurrentIndex((self.tabs.currentIndex() + 1)% self.tabs.count()))
461-
462-
q = QShortcut("F1", self)
463-
q.activated.connect(lambda: self.text_edit.setFocus())
464-
465-
q = QShortcut("F2", self)
466-
q.activated.connect(lambda: self.jupyter_widget._control.setFocus())
462+
q.activated.connect(self.toggle_focus)
467463

468464
def resize():
469465
splitter.setSizes([int(self.width() * 0.5), int(self.width() * 0.5)])
@@ -475,6 +471,25 @@ def resize():
475471
if self.config.get("fullscreen", False):
476472
self.toggle_fullscreen()
477473

474+
def toggle_focus(self):
475+
if self.text_edit.hasFocus():
476+
self.jupyter_widget._control.setFocus()
477+
else:
478+
self.text_edit.setFocus()
479+
480+
481+
482+
def keyPressEvent(self, a0):
483+
if a0.key() == Qt.Key_F11:
484+
self.toggle_fullscreen()
485+
elif Qt.Key_F1 <= a0.key() <= Qt.Key_F10:
486+
idx = a0.key() - Qt.Key_F1
487+
488+
if idx < self.tabs.count():
489+
self.tabs.setCurrentIndex(idx)
490+
491+
super().keyPressEvent(a0)
492+
478493
def save_as(self):
479494
filename, ok = QFileDialog.getSaveFileName(self, "Save code", filter="Python files (*.py)", directory="progs")
480495
if ok:
@@ -593,17 +608,6 @@ def toggle_fullscreen(self):
593608
self.showFullScreen()
594609
self.menuBar().hide()
595610

596-
597-
def eventFilter(self, source, event):
598-
if event.type() == QEvent.KeyPress: # Check if the event is a key press
599-
if event.text() == "ñ":
600-
#print(f"Key pressed2: {event.text()}")
601-
return True
602-
#else:
603-
# print(f"Key pressed: {event.text()}")
604-
return super().eventFilter(source, event)
605-
606-
607611
def code_from_slide(self, code):
608612
self.text_edit.set_code(code)
609613
self.text_edit.set_mode(1)
@@ -624,19 +628,8 @@ def load_program(self, filename):
624628

625629

626630
def execute_code(self):
627-
self.jupyter_widget._control.setText("")
628-
self.jupyter_widget._control.setFocus()
629-
QApplication.processEvents()
630-
631-
def run():
632-
code = self.text_edit.toPlainText()
633-
if code.strip():
634-
self.jupyter_widget.execute(code, interactive=True)
635-
if not self.keep_banner.isChecked():
636-
self.jupyter_widget._control.clear()
637-
638-
639-
QTimer.singleShot(100, run)
631+
self.jupyter_widget.execute("%clear")
632+
self.jupyter_widget.do_execute(self.text_edit.toPlainText(), True, False)
640633

641634
if __name__ == "__main__":
642635
app = QApplication(sys.argv)

0 commit comments

Comments
 (0)