show file size and name in status bar
This commit is contained in:
@@ -4,7 +4,7 @@ import threading
|
||||
import time
|
||||
from typing import List, Optional
|
||||
|
||||
from PyQt6.QtGui import QBrush, QColor, QPen
|
||||
from PyQt6.QtCore import pyqtSignal
|
||||
|
||||
from highlight_regex import HighlightRegex
|
||||
from highlighting import Highlighting
|
||||
@@ -16,6 +16,12 @@ from settings import Settings
|
||||
class LogFileModel:
|
||||
_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):
|
||||
self.settings = settings
|
||||
self._file = os.path.realpath(file)
|
||||
@@ -117,7 +123,11 @@ class LogFileModel:
|
||||
return result
|
||||
|
||||
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):
|
||||
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.setCentralWidget(self.tabs)
|
||||
self.setStatusBar(QStatusBar(self))
|
||||
self.status_bar = QStatusBar(self)
|
||||
self.setStatusBar(self.status_bar)
|
||||
self.setMenuBar(self.create_menu_bar())
|
||||
|
||||
def create_menu_bar(self) -> QMenuBar:
|
||||
|
||||
@@ -14,3 +14,9 @@ class RavenUI():
|
||||
RavenUI.window.setWindowTitle("%s - RavenLog" % title)
|
||||
else:
|
||||
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 bigtext import BigText
|
||||
from conversion import humanbytes
|
||||
from fulltabwidget import FullTabWidget
|
||||
from logFileModel import LogFileModel
|
||||
from ravenui import RavenUI
|
||||
@@ -55,11 +56,17 @@ class Tabs(QWidget):
|
||||
def _current_tab_changed(self, tab_index: int):
|
||||
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
||||
if full_tab:
|
||||
# window title
|
||||
file = full_tab.file_view.get_file()
|
||||
file_name = os.path.basename(file)
|
||||
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:
|
||||
RavenUI.update_window_title("")
|
||||
RavenUI.update_status_bar("")
|
||||
|
||||
def _close_tab(self, tab_index: int):
|
||||
full_tab: FullTabWidget = self.tabs.widget(tab_index)
|
||||
|
||||
Reference in New Issue
Block a user