mirror of
https://github.com/iDescriptor/iDescriptor.git
synced 2026-06-22 03:45:51 +08:00
777ea21a00
- 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.
56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
#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();
|
|
} |