mirror of
https://github.com/iDescriptor/iDescriptor.git
synced 2026-06-22 03:45:51 +08:00
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:
@@ -0,0 +1,56 @@
|
||||
#include "responsiveqlabel.h"
|
||||
#include <QDebug>
|
||||
#include <QPainter>
|
||||
|
||||
ResponsiveQLabel::ResponsiveQLabel(QWidget *parent) : QLabel(parent)
|
||||
{
|
||||
setAlignment(Qt::AlignCenter);
|
||||
setScaledContents(false);
|
||||
setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
|
||||
setMinimumSize(100, 100);
|
||||
}
|
||||
|
||||
void ResponsiveQLabel::setPixmap(const QPixmap &pixmap)
|
||||
{
|
||||
m_originalPixmap = pixmap;
|
||||
updateScaledPixmap();
|
||||
}
|
||||
|
||||
void ResponsiveQLabel::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
QLabel::resizeEvent(event);
|
||||
if (!m_originalPixmap.isNull()) {
|
||||
updateScaledPixmap();
|
||||
}
|
||||
}
|
||||
|
||||
void ResponsiveQLabel::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
if (m_scaledPixmap.isNull()) {
|
||||
QLabel::paintEvent(event);
|
||||
return;
|
||||
}
|
||||
|
||||
QPainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
painter.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||
|
||||
// Calculate position to center the pixmap
|
||||
int x = (width() - m_scaledPixmap.width()) / 2;
|
||||
int y = (height() - m_scaledPixmap.height()) / 2;
|
||||
|
||||
painter.drawPixmap(x, y, m_scaledPixmap);
|
||||
}
|
||||
|
||||
void ResponsiveQLabel::updateScaledPixmap()
|
||||
{
|
||||
if (m_originalPixmap.isNull() || size().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Scale the pixmap while maintaining aspect ratio
|
||||
m_scaledPixmap = m_originalPixmap.scaled(size(), Qt::KeepAspectRatio,
|
||||
Qt::SmoothTransformation);
|
||||
|
||||
update();
|
||||
}
|
||||
Reference in New Issue
Block a user