33"""
44
55from qgis .PyQt .QtCore import Qt
6- from qgis .PyQt .QtWidgets import (QDockWidget , QVBoxLayout , QWidget , QLabel ,
7- QTabWidget , QGroupBox , QProgressBar , QTextEdit )
6+ from qgis .PyQt .QtWidgets import (QDockWidget , QVBoxLayout , QHBoxLayout , QWidget , QLabel ,
7+ QTabWidget , QGroupBox , QProgressBar , QTextEdit , QPushButton )
88from qgis .PyQt .QtGui import QFont
99
1010from .tabs import ConnectionTab , TemplatesTab , DatabasesTab , QGISProjectsTab , ArchiveProjectTab
1111
1212
13- class PostgreSQLTemplateManagerDialog (QDockWidget ):
13+ class KgrToolBoxDialog (QDockWidget ):
1414 """Main dialog for KGR Toolbox."""
1515
1616 def __init__ (self , db_manager , parent = None ):
@@ -27,7 +27,6 @@ def __init__(self, db_manager, parent=None):
2727
2828 def setup_ui (self ):
2929 """Setup the user interface."""
30- self .setWindowTitle ("KGR Toolbox" )
3130 self .setObjectName ("KgrToolbox" )
3231
3332 # Main widget
@@ -76,13 +75,44 @@ def setup_progress_section(self, layout):
7675 self .progress_bar .setVisible (False )
7776 progress_layout .addWidget (self .progress_bar )
7877
78+ # Log area with clear button
79+ log_header_layout = QHBoxLayout ()
80+ log_label = QLabel ("Log Output:" )
81+ log_label .setStyleSheet ("font-weight: bold;" )
82+
83+ self .clear_logs_btn = QPushButton ("Clear Logs" )
84+ self .clear_logs_btn .setFixedWidth (100 )
85+ self .clear_logs_btn .setStyleSheet (
86+ "QPushButton { "
87+ "background-color: #f44336; "
88+ "color: white; "
89+ "font-weight: bold; "
90+ "padding: 4px 8px; "
91+ "border: none; "
92+ "border-radius: 3px; "
93+ "font-size: 11px; "
94+ "} "
95+ "QPushButton:hover { background-color: #d32f2f; }"
96+ )
97+ self .clear_logs_btn .clicked .connect (self .clear_logs )
98+
99+ log_header_layout .addWidget (log_label )
100+ log_header_layout .addStretch ()
101+ log_header_layout .addWidget (self .clear_logs_btn )
102+ progress_layout .addLayout (log_header_layout )
103+
79104 self .log_text = QTextEdit ()
80105 self .log_text .setMaximumHeight (100 )
81106 self .log_text .setReadOnly (True )
107+ self .log_text .setPlaceholderText ("Operation logs will appear here..." )
82108 progress_layout .addWidget (self .log_text )
83109
84110 layout .addWidget (progress_group )
85111
112+ def clear_logs (self ):
113+ """Clear the log text area."""
114+ self .log_text .clear ()
115+
86116 def connect_tab_signals (self ):
87117 """Connect signals from all tabs."""
88118 # Connection tab signals
0 commit comments