implement settings, fix bugs and enhance ui

- Added new settings keys in SettingsManager for download path, auto-check updates, auto-raise window, switch to new device, unmount iFuse on exit, theme, and connection timeout.
- Implemented methods to get and set these new settings.
- Updated SettingsWidget to include UI elements for the new settings, including checkboxes and a combo box for theme selection.
- Refactored loadSettings and saveSettings methods to handle new settings.
- Removed deprecated settings UI elements to streamline the interface.
- Introduced VirtualLocation widget for managing virtual location settings with a map interface.
- Integrated QML for map visualization and input handling for latitude and longitude.
- Added functionality to apply virtual location settings to the connected device.
This commit is contained in:
uncor3
2025-10-17 06:56:02 +00:00
parent 0c23824a4e
commit 8d7b027992
55 changed files with 3602 additions and 1919 deletions
+10 -13
View File
@@ -135,6 +135,7 @@ struct DeviceInfo {
DiskInfo diskInfo;
bool is_iPhone;
bool oldDevice;
std::string marketingName;
};
struct iDescriptorDevice {
@@ -162,7 +163,8 @@ struct iDescriptorRecoveryDevice {
irecv_mode mode;
uint32_t cpid;
uint32_t bdid;
const char *displayName;
std::string displayName;
std::recursive_mutex *mutex;
};
struct TakeScreenshotResult {
@@ -301,26 +303,21 @@ plist_t _get_mounted_image(const char *udid);
bool restart(std::string udid);
// TODO:move
enum class ImageCompatibility {
Compatible, // Exact match or known compatible version
MaybeCompatible, // Major version matches but minor doesn't
NotCompatible // Not compatible
};
struct ImageInfo {
QString version;
QString dmgPath;
QString sigPath;
bool isCompatible = false;
ImageCompatibility compatibility = ImageCompatibility::NotCompatible;
bool isDownloaded = false;
bool isMounted = false;
};
struct GetImagesSortedResult {
QStringList compatibleImages;
QStringList otherImages;
};
struct GetImagesSortedFinalResult {
QList<ImageInfo> compatibleImages;
QList<ImageInfo> otherImages;
};
/**
* @brief Compare two iPhone product types to determine which is newer
* @param productType First iPhone product type (e.g., "iPhone8,1")