mirror of
https://github.com/iDescriptor/iDescriptor.git
synced 2026-06-22 03:45:51 +08:00
fix(devdiskimageswidget): add item selection handling and iOS 17 warnings
This commit is contained in:
@@ -71,6 +71,9 @@ DevDiskImagesWidget::DevDiskImagesWidget(const QString &deviceUdid,
|
||||
[this](QListWidgetItem *item) {
|
||||
m_mountButton->setEnabled(item != nullptr);
|
||||
});
|
||||
|
||||
connect(m_imageListWidget, &QListWidget::itemSelectionChanged, this,
|
||||
&DevDiskImagesWidget::onItemSelectionChanged);
|
||||
}
|
||||
|
||||
void DevDiskImagesWidget::setupUi()
|
||||
@@ -593,6 +596,13 @@ void DevDiskImagesWidget::mountImage(const QString &version)
|
||||
return;
|
||||
}
|
||||
|
||||
if (device->ios_version >= 17) {
|
||||
QMessageBox::warning(this, "Unsupported iOS Version",
|
||||
"Mounting developer disk images is not supported "
|
||||
"on iOS 17 and later.");
|
||||
m_deviceComboBox->setEnabled(true);
|
||||
return;
|
||||
}
|
||||
auto *helper = new DevDiskImageHelper(device, this);
|
||||
connect(helper, &DevDiskImageHelper::finished, this, [this, helper]() {
|
||||
m_deviceComboBox->setEnabled(true);
|
||||
@@ -649,6 +659,13 @@ void DevDiskImagesWidget::checkMountedImage()
|
||||
return;
|
||||
}
|
||||
|
||||
if (device->ios_version >= 17) {
|
||||
QMessageBox::warning(this, "Unsupported iOS Version",
|
||||
"Checking mounted developer disk images is not "
|
||||
"supported on iOS 17 and later.");
|
||||
return;
|
||||
}
|
||||
|
||||
connect(
|
||||
device->service_manager, &CXX::ServiceManager::mounted_image_retrieved,
|
||||
this,
|
||||
@@ -691,3 +708,26 @@ void DevDiskImagesWidget::checkMountedImage()
|
||||
Qt::SingleShotConnection);
|
||||
device->service_manager->get_mounted_image();
|
||||
}
|
||||
|
||||
void DevDiskImagesWidget::onItemSelectionChanged()
|
||||
{
|
||||
QColor baseColor = QApplication::palette().color(QPalette::Window);
|
||||
QColor highlightColor = QApplication::palette().color(QPalette::Highlight);
|
||||
|
||||
for (int row = 0; row < m_imageListWidget->count(); ++row) {
|
||||
auto *item = m_imageListWidget->item(row);
|
||||
auto *w = m_imageListWidget->itemWidget(item);
|
||||
if (!w)
|
||||
continue;
|
||||
|
||||
QColor bgColor = (row % 2 == 0) ? baseColor.lighter(110) : baseColor;
|
||||
|
||||
if (item->isSelected()) {
|
||||
bgColor = highlightColor;
|
||||
}
|
||||
|
||||
w->setStyleSheet(
|
||||
QStringLiteral("QWidget#itemWidget { background-color: %1; }")
|
||||
.arg(bgColor.name()));
|
||||
}
|
||||
}
|
||||
@@ -53,6 +53,7 @@ private slots:
|
||||
void onMountButtonClicked();
|
||||
void onImageListFetched(bool success,
|
||||
const QString &errorMessage = QString());
|
||||
void onItemSelectionChanged();
|
||||
|
||||
private:
|
||||
void setupUi();
|
||||
|
||||
Reference in New Issue
Block a user