95 lines
2.7 KiB
Python
95 lines
2.7 KiB
Python
import os
|
|
import re
|
|
|
|
from PyQt6 import QtCore
|
|
from PyQt6.lupdate import lupdate
|
|
from PyQt6.QtWidgets import *
|
|
from PyQt6.QtCore import *
|
|
from PyQt6.QtGui import *
|
|
import sys
|
|
|
|
from bigtext import BigText
|
|
from logFileModel import LogFileModel
|
|
from settings import Settings
|
|
from tabs import Tabs
|
|
|
|
MAX_LINE_LENGTH = 4096
|
|
|
|
|
|
class MainWindow(QMainWindow):
|
|
def __init__(self, *args, **kwargs):
|
|
super(MainWindow, self).__init__(*args, **kwargs)
|
|
self.settings = Settings()
|
|
self.setWindowTitle(self.tr("RavenLog"))
|
|
self.setGeometry(0, 0, 640, 480)
|
|
self.setDockNestingEnabled(True)
|
|
|
|
self.tabs = Tabs(self.settings)
|
|
self.tabs.create_tab("/home/andi/ws/performanceDb/data/production/logs_2018-09-06_2018-09-06.csv")
|
|
#self.tabs.create_tab("/home/andi/ws/performanceDb/data/production/vapbdcom.csv")
|
|
self.tabs.create_tab("/home/andi/ws/ravenlog/example.log")
|
|
|
|
|
|
self.setCentralWidget(self.tabs)
|
|
self.main_tool_bar = self.create_main_tool_bar()
|
|
self.addToolBar(self.main_tool_bar)
|
|
self.setStatusBar(QStatusBar(self))
|
|
self.setMenuBar(self.create_menu_bar())
|
|
|
|
def create_main_tool_bar(self):
|
|
result = QToolBar("main toolbar")
|
|
|
|
result.addWidget(QLabel(self.tr("Font Size:")))
|
|
font_size = QComboBox(result)
|
|
for s in range(3,30):
|
|
font_size.addItem(str(s))
|
|
font_size.setCurrentText(str(self.settings.get_font_size()))
|
|
font_size.currentTextChanged.connect(self.update_font_size)
|
|
result.addWidget(font_size)
|
|
|
|
return result
|
|
|
|
def update_font_size(self, font_size):
|
|
self.settings.font_size(int(font_size))
|
|
self.tabs.update()
|
|
|
|
def create_menu_bar(self) -> QMenuBar:
|
|
menu_bar = QMenuBar()
|
|
|
|
file_menu = QMenu(self.tr("File", "name of the file menu"), self)
|
|
|
|
open_file = QAction(self.tr("Open..."), self)
|
|
open_file.triggered.connect(self._open_file)
|
|
|
|
close_action = QAction(self.tr("Close", "menu item to close the application"), self)
|
|
close_action.triggered.connect(self.destruct)
|
|
|
|
file_menu.addAction(open_file)
|
|
file_menu.addAction(close_action)
|
|
|
|
menu_bar.addMenu(file_menu)
|
|
|
|
return menu_bar
|
|
|
|
def _open_file(self) -> None:
|
|
dialog = QFileDialog(self)
|
|
(selected_file, _filter) = dialog.getOpenFileName(caption=self.tr("Open File"))
|
|
self.tabs.create_tab(selected_file)
|
|
|
|
def destruct(self):
|
|
self.tabs.destruct()
|
|
self.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app = QApplication(sys.argv)
|
|
|
|
#translator = QTranslator()
|
|
#if translator.load(QLocale("de"), "messages_de.ts"):
|
|
# app.installTranslator(translator)
|
|
|
|
window = MainWindow()
|
|
window.show()
|
|
|
|
app.exec()
|