Compare commits
5 Commits
34176805d2
...
72d30b4688
Author | SHA1 | Date |
---|---|---|
BodgeMaster | 72d30b4688 | |
BodgeMaster | 964668467c | |
Milan Suman | 0f3e9b0689 | |
Milan Suman | b7018e1a73 | |
Milan Suman | 33e42e411c |
|
@ -1,14 +1,16 @@
|
||||||
from PySide6 import QtWidgets
|
from PySide6 import QtWidgets, QtCore, QtGui
|
||||||
import util
|
import util
|
||||||
|
|
||||||
app = QtWidgets.QApplication([])
|
app = QtWidgets.QApplication([])
|
||||||
|
|
||||||
|
#TODO: Implement separate editor, terminal and main_window classes using Window as a parent
|
||||||
|
|
||||||
class Window(QtWidgets.QMainWindow):
|
class Window(QtWidgets.QMainWindow):
|
||||||
def __init__(self, size=(640, 480), title="Concorde"):
|
def __init__(self, size=(640, 480), title="Concorde", on_resize=lambda event: None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
self.resize(size[0], size[1])
|
self.resize(size[0], size[1])
|
||||||
self.show()
|
self.__on_resize = on_resize
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
#TODO: whatever needs to be done here
|
#TODO: whatever needs to be done here
|
||||||
|
@ -25,6 +27,9 @@ class Window(QtWidgets.QMainWindow):
|
||||||
def set_size(self, size_x, size_y):
|
def set_size(self, size_x, size_y):
|
||||||
self.resize(size_x, size_y)
|
self.resize(size_x, size_y)
|
||||||
|
|
||||||
|
def on_resize(self, function):
|
||||||
|
self.__on_resize = function
|
||||||
|
|
||||||
def update_menus(self, menu_dict, menu=None):
|
def update_menus(self, menu_dict, menu=None):
|
||||||
# if not a sub menu
|
# if not a sub menu
|
||||||
if menu == None:
|
if menu == None:
|
||||||
|
@ -51,6 +56,40 @@ class Window(QtWidgets.QMainWindow):
|
||||||
menu_item = menu.addAction(entry)
|
menu_item = menu.addAction(entry)
|
||||||
menu_item.triggered.connect(menu_dict[entry])
|
menu_item.triggered.connect(menu_dict[entry])
|
||||||
|
|
||||||
|
# Toolkit specific! Do not use outside gui_handler.
|
||||||
|
def resizeEvent(self, event):
|
||||||
|
self.__on_resize(event)
|
||||||
|
|
||||||
|
|
||||||
|
class Editor(Window):
|
||||||
|
def __init__(self, size=(640, 480)):
|
||||||
|
super().__init__(size, "Editor")
|
||||||
|
|
||||||
|
#TODO: Figure out a way to do the fucking line numbers
|
||||||
|
|
||||||
|
#Text Editor
|
||||||
|
self.text_edit = QtWidgets.QPlainTextEdit(self)
|
||||||
|
self.text_edit.setFrameStyle(QtWidgets.QFrame.NoFrame)
|
||||||
|
|
||||||
|
self.set_size(size[0], size[1])
|
||||||
|
|
||||||
|
#layout
|
||||||
|
#FIXME: Somehow this places the editor behind the menu bar so that the
|
||||||
|
# first couple lines are cut off
|
||||||
|
layout = QtWidgets.QHBoxLayout()
|
||||||
|
layout.addChildWidget(self.text_edit)
|
||||||
|
|
||||||
|
self.setLayout(layout)
|
||||||
|
|
||||||
|
super().on_resize(lambda event: self.set_size(event.size().width(), event.size().height()))
|
||||||
|
|
||||||
|
#FIXME: This function is inherently flawed because it doesn't take the
|
||||||
|
# actual height of the usable area inside the window into account.
|
||||||
|
# On a side note: This should be taken care of by the toolkit (Qt).
|
||||||
|
def set_size(self, size_x, size_y):
|
||||||
|
self.text_edit.resize(size_x, size_y)
|
||||||
|
self.resize(size_x, size_y)
|
||||||
|
|
||||||
|
|
||||||
class Message(QtWidgets.QMessageBox):
|
class Message(QtWidgets.QMessageBox):
|
||||||
def __init__(self, title, text):
|
def __init__(self, title, text):
|
||||||
|
|
8
main.py
8
main.py
|
@ -26,11 +26,13 @@ configuration = Config(configuration_file_path, default_configuration)
|
||||||
# PROGRAM MAIN WINDOW
|
# PROGRAM MAIN WINDOW
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
main_window = gui_handler.Window()
|
#Commented out so that I can work on the dockable windows
|
||||||
main_window.set_title("Concorde IDE")
|
|
||||||
main_window.set_size(configuration.get_configuration_value("window size")["x"], configuration.get_configuration_value("window size")["y"])
|
|
||||||
|
|
||||||
|
|
||||||
|
main_window = gui_handler.Editor((configuration.get_configuration_value("window size")["x"], configuration.get_configuration_value("window size")["y"]))
|
||||||
|
main_window.set_title("Concorde IDE")
|
||||||
main_window.update_menus(gui_helper.menu_structure)
|
main_window.update_menus(gui_helper.menu_structure)
|
||||||
|
main_window.show()
|
||||||
|
|
||||||
|
|
||||||
#TODO: get resolution of main window on exit and save it back to the configuration
|
#TODO: get resolution of main window on exit and save it back to the configuration
|
||||||
|
|
Reference in New Issue