add initial recovery device support for new UI & update styling

- Added QStackedWidget to manage different states in InstalledAppsWidget.
- Created separate loading, error, and content widgets for better UI management.
- Updated LoginDialog title and adjusted styles for labels.
- Enhanced MainWindow by removing unused code and improving device handling.
- Updated QueryMobileGestaltWidget UI for better clarity and usability.
- Removed deprecated screenshot handling code in RealtimeScreen.
This commit is contained in:
uncor3
2025-10-06 15:30:47 -07:00
parent 92847227be
commit b15b205f52
34 changed files with 851 additions and 1113 deletions
+59 -8
View File
@@ -2,6 +2,7 @@
#include "appcontext.h"
#include "devicemenuwidget.h"
#include "devicependingwidget.h"
#include "recoverydeviceinfowidget.h"
#include <QDebug>
DeviceManagerWidget::DeviceManagerWidget(QWidget *parent)
@@ -40,6 +41,40 @@ DeviceManagerWidget::DeviceManagerWidget(QWidget *parent)
emit updateNoDevicesConnected();
});
connect(AppContext::sharedInstance(), &AppContext::recoveryDeviceAdded,
this, [this](QObject *recoveryDeviceInfoObj) {
if (!recoveryDeviceInfoObj)
return;
try {
RecoveryDeviceInfo *device =
qobject_cast<RecoveryDeviceInfo *>(
recoveryDeviceInfoObj);
if (!device) {
qDebug() << "Invalid recovery device info object";
return;
}
// IDescriptorInitDeviceResultRecovery initResult=
// init_idescriptor_recovery_device(deviceInfo);
// IDescriptorInitDeviceResult initResult =
// init_idescriptor_device(udid.toStdString().c_str());
qDebug() << "Recovery device initialized: " << device->ecid;
// std::string added_ecid =
// AppContext::sharedInstance()->addRecoveryDevice(device);
// Create device info widget
RecoveryDeviceInfoWidget *recoveryDeviceInfoWidget =
new RecoveryDeviceInfoWidget(device);
m_stackedWidget->addWidget(recoveryDeviceInfoWidget);
} catch (...) {
qDebug() << "Error initializing recovery device";
}
emit updateNoDevicesConnected();
});
// connect(AppContext::sharedInstance(), &AppContext::recoveryDeviceRemoved,
// this, [this](const QString &ecid) {
// qDebug() << "Removing:" << ecid;
@@ -98,10 +133,31 @@ void DeviceManagerWidget::addDevice(iDescriptorDevice *device)
m_deviceWidgets[device->udid] = std::pair{
deviceWidget, m_sidebar->addToSidebar(tabTitle, device->udid)};
// If this is the first device, make it current
// if (m_currentDeviceIndex == -1) {
// setCurrentDevice(deviceIndex);
// todo
// If this is the first device, make it current
// if (m_currentDeviceIndex == -1) {
// setCurrentDevice(deviceIndex);
// }
}
void DeviceManagerWidget::addRecoveryDevice(RecoveryDeviceInfo *device)
{
// if (m_deviceWidgets.contains(device->ecid)) {
// qWarning() << "Recovery device already exists:"
// << QString::fromStdString(device->ecid);
// return;
// }
// qDebug() << "Connect ::recoveryDeviceAdded Adding:"
// << QString::fromStdString(device->ecid);
RecoveryDeviceInfoWidget *deviceWidget =
new RecoveryDeviceInfoWidget(device, this);
// QString tabTitle = QString::fromStdString(device->product);
m_stackedWidget->addWidget(deviceWidget);
// m_deviceWidgets[device->ecid] = std::pair{
// deviceWidget, m_sidebar->addToSidebar(tabTitle, device->ecid)};
}
void DeviceManagerWidget::addPendingDevice(const QString &udid, bool locked)
@@ -214,11 +270,6 @@ std::string DeviceManagerWidget::getCurrentDevice() const
return m_currentDeviceUuid;
}
QWidget *DeviceManagerWidget::getDeviceWidget(int deviceIndex) const
{
// return m_deviceWidgets.value(deviceIndex, nullptr);
}
void DeviceManagerWidget::setDeviceNavigation(int deviceIndex,
const QString &section)
{