show file size and name in status bar
This commit is contained in:
@@ -4,7 +4,7 @@ import threading
|
|||||||
import time
|
import time
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from PyQt6.QtGui import QBrush, QColor, QPen
|
from PyQt6.QtCore import pyqtSignal
|
||||||
|
|
||||||
from highlight_regex import HighlightRegex
|
from highlight_regex import HighlightRegex
|
||||||
from highlighting import Highlighting
|
from highlighting import Highlighting
|
||||||
@@ -16,6 +16,12 @@ from settings import Settings
|
|||||||
class LogFileModel:
|
class LogFileModel:
|
||||||
_query_highlight: Optional[HighlightRegex] = None
|
_query_highlight: Optional[HighlightRegex] = None
|
||||||
|
|
||||||
|
file_size_changed = pyqtSignal(str)
|
||||||
|
"""Fires when the file size changed. **Note:** uses strings,
|
||||||
|
because int in Qt signal are limited to 32bit."""
|
||||||
|
|
||||||
|
_file_size = -1
|
||||||
|
|
||||||
def __init__(self, file: str, settings: Settings):
|
def __init__(self, file: str, settings: Settings):
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
self._file = os.path.realpath(file)
|
self._file = os.path.realpath(file)
|
||||||
@@ -117,7 +123,11 @@ class LogFileModel:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def byte_count(self) -> int:
|
def byte_count(self) -> int:
|
||||||
return os.stat(self._file).st_size
|
size = os.stat(self._file).st_size
|
||||||
|
if self._file_size != size:
|
||||||
|
# self.file_size_changed.emit(str(size))
|
||||||
|
self._file_size = size
|
||||||
|
return size
|
||||||
|
|
||||||
def write_line(self, line: str):
|
def write_line(self, line: str):
|
||||||
with open(self._file, 'a+b') as f:
|
with open(self._file, 'a+b') as f:
|
||||||
|
|||||||
3
main.py
3
main.py
@@ -39,7 +39,8 @@ class MainWindow(QMainWindow):
|
|||||||
self._menu_recent_files = QMenu(self.tr("Open &Recent"), self)
|
self._menu_recent_files = QMenu(self.tr("Open &Recent"), self)
|
||||||
|
|
||||||
self.setCentralWidget(self.tabs)
|
self.setCentralWidget(self.tabs)
|
||||||
self.setStatusBar(QStatusBar(self))
|
self.status_bar = QStatusBar(self)
|
||||||
|
self.setStatusBar(self.status_bar)
|
||||||
self.setMenuBar(self.create_menu_bar())
|
self.setMenuBar(self.create_menu_bar())
|
||||||
|
|
||||||
def create_menu_bar(self) -> QMenuBar:
|
def create_menu_bar(self) -> QMenuBar:
|
||||||
|
|||||||
@@ -14,3 +14,9 @@ class RavenUI():
|
|||||||
RavenUI.window.setWindowTitle("%s - RavenLog" % title)
|
RavenUI.window.setWindowTitle("%s - RavenLog" % title)
|
||||||
else:
|
else:
|
||||||
RavenUI.window.setWindowTitle("RavenLog")
|
RavenUI.window.setWindowTitle("RavenLog")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def update_status_bar(text: str):
|
||||||
|
if not RavenUI.window:
|
||||||
|
return
|
||||||
|
RavenUI.window.status_bar.showMessage(text)
|
||||||
|
|||||||
7
tabs.py
7
tabs.py
@@ -6,6 +6,7 @@ from PyQt6.QtCore import *
|
|||||||
from PyQt6.QtGui import *
|
from PyQt6.QtGui import *
|
||||||
|
|
||||||
from bigtext import BigText
|
from bigtext import BigText
|
||||||
|
from conversion import humanbytes
|
||||||
from fulltabwidget import FullTabWidget
|
from fulltabwidget import FullTabWidget
|
||||||
from logFileModel import LogFileModel
|
from logFileModel import LogFileModel
|
||||||
from ravenui import RavenUI
|
from ravenui import RavenUI
|
||||||
@@ -55,11 +56,17 @@ class Tabs(QWidget):
|
|||||||
def _current_tab_changed(self, tab_index: int):
|
def _current_tab_changed(self, tab_index: int):
|
||||||
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
||||||
if full_tab:
|
if full_tab:
|
||||||
|
# window title
|
||||||
file = full_tab.file_view.get_file()
|
file = full_tab.file_view.get_file()
|
||||||
file_name = os.path.basename(file)
|
file_name = os.path.basename(file)
|
||||||
RavenUI.update_window_title(file_name)
|
RavenUI.update_window_title(file_name)
|
||||||
|
|
||||||
|
# status bar text
|
||||||
|
status_text = "%s - %s" % (humanbytes(full_tab.file_view.model.byte_count()), file)
|
||||||
|
RavenUI.update_status_bar(status_text)
|
||||||
else:
|
else:
|
||||||
RavenUI.update_window_title("")
|
RavenUI.update_window_title("")
|
||||||
|
RavenUI.update_status_bar("")
|
||||||
|
|
||||||
def _close_tab(self, tab_index: int):
|
def _close_tab(self, tab_index: int):
|
||||||
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
||||||
|
|||||||
Reference in New Issue
Block a user