Files
iDescriptor/src/responsiveqlabel.cpp
T
uncor3 777ea21a00 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.
2025-10-08 05:00:02 +00:00

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();
}