mirror of https://github.com/leafspark/AutoGGUF
feat(ui): use Unicode for X button
- use Unicode for X button in KV Overrides box - move CustomTitleBar to separate file
This commit is contained in:
parent
b62e8fc47c
commit
03c8a23e07
|
@ -12,6 +12,7 @@
|
||||||
from KVOverrideEntry import KVOverrideEntry
|
from KVOverrideEntry import KVOverrideEntry
|
||||||
from Logger import Logger
|
from Logger import Logger
|
||||||
from ModelInfoDialog import ModelInfoDialog
|
from ModelInfoDialog import ModelInfoDialog
|
||||||
|
from CustomTitleBar import CustomTitleBar
|
||||||
from error_handling import show_error, handle_error
|
from error_handling import show_error, handle_error
|
||||||
from TaskListItem import TaskListItem
|
from TaskListItem import TaskListItem
|
||||||
from QuantizationThread import QuantizationThread
|
from QuantizationThread import QuantizationThread
|
||||||
|
@ -28,66 +29,6 @@
|
||||||
import utils
|
import utils
|
||||||
|
|
||||||
|
|
||||||
class CustomTitleBar(QWidget):
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
super().__init__(parent)
|
|
||||||
self.parent = parent
|
|
||||||
layout = QHBoxLayout(self)
|
|
||||||
layout.setContentsMargins(10, 5, 10, 5)
|
|
||||||
|
|
||||||
# Add your logo or app name here
|
|
||||||
self.title = QLabel("AutoGGUF")
|
|
||||||
layout.addWidget(self.title)
|
|
||||||
|
|
||||||
layout.addStretch(1) # This pushes the buttons to the right
|
|
||||||
|
|
||||||
# Add minimize and close buttons
|
|
||||||
self.minimize_button = QPushButton("—")
|
|
||||||
self.close_button = QPushButton("✕")
|
|
||||||
|
|
||||||
for button in (self.minimize_button, self.close_button):
|
|
||||||
button.setFixedSize(30, 30)
|
|
||||||
button.setStyleSheet(
|
|
||||||
"""
|
|
||||||
QPushButton {
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
QPushButton:hover {
|
|
||||||
background-color: rgba(255, 255, 255, 0.1);
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
|
|
||||||
layout.addWidget(self.minimize_button)
|
|
||||||
layout.addWidget(self.close_button)
|
|
||||||
|
|
||||||
self.minimize_button.clicked.connect(self.parent.showMinimized)
|
|
||||||
self.close_button.clicked.connect(self.parent.close)
|
|
||||||
|
|
||||||
self.start = QPoint(0, 0)
|
|
||||||
self.pressing = False
|
|
||||||
|
|
||||||
def mousePressEvent(self, event):
|
|
||||||
self.start = self.mapToGlobal(event.pos())
|
|
||||||
self.pressing = True
|
|
||||||
|
|
||||||
def mouseMoveEvent(self, event):
|
|
||||||
if self.pressing:
|
|
||||||
end = self.mapToGlobal(event.pos())
|
|
||||||
movement = end - self.start
|
|
||||||
self.parent.setGeometry(
|
|
||||||
self.parent.x() + movement.x(),
|
|
||||||
self.parent.y() + movement.y(),
|
|
||||||
self.parent.width(),
|
|
||||||
self.parent.height(),
|
|
||||||
)
|
|
||||||
self.start = end
|
|
||||||
|
|
||||||
def mouseReleaseEvent(self, event):
|
|
||||||
self.pressing = False
|
|
||||||
|
|
||||||
|
|
||||||
class AutoGGUF(QMainWindow):
|
class AutoGGUF(QMainWindow):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
from PySide6.QtCore import QPoint
|
||||||
|
from PySide6.QtGui import QPixmap
|
||||||
|
from PySide6.QtWidgets import QHBoxLayout, QLabel, QMenuBar, QPushButton, QWidget
|
||||||
|
|
||||||
|
from imports_and_globals import resource_path
|
||||||
|
|
||||||
|
|
||||||
|
class CustomTitleBar(QWidget):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super().__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
layout = QHBoxLayout(self)
|
||||||
|
layout.setContentsMargins(10, 5, 10, 5)
|
||||||
|
|
||||||
|
# Add the favicon
|
||||||
|
# TODO: uncomment this
|
||||||
|
# self.icon_label = QLabel()
|
||||||
|
# self.icon_label.setPixmap(QPixmap(resource_path("assets/favicon.ico")))
|
||||||
|
# layout.addWidget(self.icon_label)
|
||||||
|
|
||||||
|
# Add app title (bolded)
|
||||||
|
self.title = QLabel("<b>AutoGGUF</b>") # Use HTML tags for bolding
|
||||||
|
layout.addWidget(self.title)
|
||||||
|
|
||||||
|
# Add menubar here
|
||||||
|
self.menubar = QMenuBar()
|
||||||
|
layout.addWidget(self.menubar) # Add menubar to the layout
|
||||||
|
|
||||||
|
layout.addStretch(1) # This pushes the buttons to the right
|
||||||
|
|
||||||
|
# Add minimize and close buttons
|
||||||
|
self.minimize_button = QPushButton("—")
|
||||||
|
self.close_button = QPushButton("✕")
|
||||||
|
|
||||||
|
for button in (self.minimize_button, self.close_button):
|
||||||
|
button.setFixedSize(30, 30)
|
||||||
|
button.setStyleSheet(
|
||||||
|
"""
|
||||||
|
QPushButton {
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
QPushButton:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
layout.addWidget(self.minimize_button)
|
||||||
|
layout.addWidget(self.close_button)
|
||||||
|
|
||||||
|
self.minimize_button.clicked.connect(self.parent.showMinimized)
|
||||||
|
self.close_button.clicked.connect(self.parent.close)
|
||||||
|
|
||||||
|
self.start = QPoint(0, 0)
|
||||||
|
self.pressing = False
|
||||||
|
|
||||||
|
def mousePressEvent(self, event):
|
||||||
|
self.start = self.mapToGlobal(event.pos())
|
||||||
|
self.pressing = True
|
||||||
|
|
||||||
|
def mouseMoveEvent(self, event):
|
||||||
|
if self.pressing:
|
||||||
|
end = self.mapToGlobal(event.pos())
|
||||||
|
movement = end - self.start
|
||||||
|
self.parent.setGeometry(
|
||||||
|
self.parent.x() + movement.x(),
|
||||||
|
self.parent.y() + movement.y(),
|
||||||
|
self.parent.width(),
|
||||||
|
self.parent.height(),
|
||||||
|
)
|
||||||
|
self.start = end
|
||||||
|
|
||||||
|
def mouseReleaseEvent(self, event):
|
||||||
|
self.pressing = False
|
|
@ -31,7 +31,7 @@ def __init__(self, parent=None):
|
||||||
self.value_input.setPlaceholderText("Value")
|
self.value_input.setPlaceholderText("Value")
|
||||||
layout.addWidget(self.value_input)
|
layout.addWidget(self.value_input)
|
||||||
|
|
||||||
delete_button = QPushButton("X")
|
delete_button = QPushButton("✕")
|
||||||
delete_button.setFixedSize(30, 30)
|
delete_button.setFixedSize(30, 30)
|
||||||
delete_button.clicked.connect(self.delete_clicked)
|
delete_button.clicked.connect(self.delete_clicked)
|
||||||
layout.addWidget(delete_button)
|
layout.addWidget(delete_button)
|
||||||
|
|
|
@ -27,6 +27,7 @@ def update_system_info(self):
|
||||||
)
|
)
|
||||||
self.cpu_label.setText(CPU_USAGE_FORMAT.format(cpu))
|
self.cpu_label.setText(CPU_USAGE_FORMAT.format(cpu))
|
||||||
|
|
||||||
|
|
||||||
def animate_bar(self, bar, target_value):
|
def animate_bar(self, bar, target_value):
|
||||||
current_value = bar.value()
|
current_value = bar.value()
|
||||||
difference = target_value - current_value
|
difference = target_value - current_value
|
||||||
|
@ -40,11 +41,14 @@ def animate_bar(self, bar, target_value):
|
||||||
timer.timeout.connect(lambda: _animate_step(bar, target_value, step, timer))
|
timer.timeout.connect(lambda: _animate_step(bar, target_value, step, timer))
|
||||||
timer.start(10) # Adjust the interval for animation speed
|
timer.start(10) # Adjust the interval for animation speed
|
||||||
|
|
||||||
|
|
||||||
def _animate_step(bar, target_value, step, timer):
|
def _animate_step(bar, target_value, step, timer):
|
||||||
current_value = bar.value()
|
current_value = bar.value()
|
||||||
new_value = current_value + step
|
new_value = current_value + step
|
||||||
|
|
||||||
if (step > 0 and new_value > target_value) or (step < 0 and new_value < target_value):
|
if (step > 0 and new_value > target_value) or (
|
||||||
|
step < 0 and new_value < target_value
|
||||||
|
):
|
||||||
bar.setValue(target_value)
|
bar.setValue(target_value)
|
||||||
timer.stop()
|
timer.stop()
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue