feat: recognize recovery devices & add heic support

- Added RecoveryDeviceSidebarItem class for managing recovery devices in the sidebar.
- Unified device selection structure with DeviceSelection to handle normal, recovery, and pending devices.
- Updated DeviceSidebarWidget to support adding and removing recovery devices.
- Refactored sidebar navigation and selection handling to accommodate new device types.

refactor: Enhance Disk Usage Widget UI

- Improved styling and layout of disk usage bars for better visual representation.
- Removed unnecessary paint event override and adjusted layout settings.
- Added object names for easier styling and debugging.

fix: Update File Explorer Widget for AFC2 Support

- Integrated a stacked widget to switch between normal and AFC2 explorers.
- Simplified sidebar setup and item handling for better maintainability.
- Connected sidebar item clicks to switch between AFC explorers.

feat: Implement InfoLabel for Copying Text

- Created InfoLabel class to display text that can be copied to the clipboard.
- Added hover effects and temporary text change on copy action.

chore: Clean up Unused Code and Comments

- Removed commented-out code and unnecessary forward declarations across multiple files.
- Streamlined includes and improved code readability.

fix: Improve Recovery Device Info Widget

- Updated RecoveryDeviceInfoWidget to display device information more clearly.
- Added error handling for recovery mode exit operations with user feedback.

feat: Add Responsive QLabel for Image Display

- Introduced ResponsiveQLabel to handle responsive image scaling in the UI.
- Replaced static image display with responsive label in JailbrokenWidget for better adaptability.
This commit is contained in:
uncor3
2025-10-08 05:00:02 +00:00
parent ef56f7af33
commit 777ea21a00
34 changed files with 921 additions and 645 deletions
+58
View File
@@ -0,0 +1,58 @@
#include "infolabel.h"
#include <QApplication>
#include <QClipboard>
#include <QMouseEvent>
InfoLabel::InfoLabel(const QString &text, QWidget *parent)
: QLabel(text, parent), m_originalText(text)
{
setCursor(Qt::PointingHandCursor);
setStyleSheet("QLabel:hover { background-color: rgba(255, 255, 255, 0.1); "
"border-radius: 2px; }");
m_restoreTimer = new QTimer(this);
m_restoreTimer->setSingleShot(true);
connect(m_restoreTimer, &QTimer::timeout, this,
&InfoLabel::restoreOriginalText);
}
void InfoLabel::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
QClipboard *clipboard = QApplication::clipboard();
clipboard->setText(m_originalText);
setText("Copied!");
setStyleSheet("QLabel { color: #4CAF50; font-weight: bold; } "
"QLabel:hover { background-color: rgba(255, 255, 255, "
"0.1); border-radius: 2px; }");
m_restoreTimer->start(1000); // Show "Copied!" for 1 second
}
QLabel::mousePressEvent(event);
}
void InfoLabel::enterEvent(QEnterEvent *event)
{
if (!m_restoreTimer->isActive()) {
setStyleSheet("QLabel:hover { background-color: rgba(255, 255, 255, "
"0.1); border-radius: 2px; }");
}
QLabel::enterEvent(event);
}
void InfoLabel::leaveEvent(QEvent *event)
{
if (!m_restoreTimer->isActive()) {
setStyleSheet("QLabel:hover { background-color: rgba(255, 255, 255, "
"0.1); border-radius: 2px; }");
}
QLabel::leaveEvent(event);
}
void InfoLabel::restoreOriginalText()
{
setText(m_originalText);
setStyleSheet("QLabel:hover { background-color: rgba(255, 255, 255, 0.1); "
"border-radius: 2px; }");
}