Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: change fixed window to be both default window #610

Merged
merged 3 commits into from
Jul 14, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions Easydict/App/Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -3208,6 +3208,22 @@
}
}
},
"setting.general.pin_window_when_showing" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Automatically pin when the window is displayed."
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "当窗口显示时自动钉住"
}
}
}
},
"setting.general.query_language.header" : {
"localizations" : {
"en" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,14 @@ extension Defaults.Keys {
)
static let mouseSelectTranslateWindowType = Key<EZWindowType>(
"EZConfiguration_kMouseSelectTranslateWindowTypeKey",
default: .mini
default: .fixed
)
static let shortcutSelectTranslateWindowType = Key<EZWindowType>(
"EZConfiguration_kShortcutSelectTranslateWindowTypeKey",
default: .fixed
)
static let pinWindowWhenDisplayed = Key<Bool>("EZConfiguration_kPinWindowWhenDisplayed", default: false)

static let adjustPopButtonOrigin = Key<Bool>("EZConfiguration_kAdjustPopButtomOriginKey", default: false)
static let allowCrashLog = Key<Bool>("EZConfiguration_kAllowCrashLogKey", default: true)
static let allowAnalytics = Key<Bool>("EZConfiguration_kAllowAnalyticsKey", default: true)
Expand Down
1 change: 1 addition & 0 deletions Easydict/Swift/Feature/Configuration/Configuration.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ class Configuration: NSObject {
@DefaultsWrapper(.shortcutSelectTranslateWindowType) var shortcutSelectTranslateWindowType: EZWindowType

@DefaultsWrapper(.adjustPopButtonOrigin) var adjustPopButtomOrigin: Bool
@DefaultsWrapper(.pinWindowWhenDisplayed) var pinWindowWhenDisplayed

@DefaultsWrapper(.allowCrashLog) var allowCrashLog: Bool

Expand Down
4 changes: 4 additions & 0 deletions Easydict/Swift/View/SettingView/Tabs/TabView/GeneralTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ struct GeneralTab: View {
.tag(option)
}
}
Toggle(isOn: $pinWindowWhenShowing) {
Text("setting.general.pin_window_when_showing")
}
Toggle(isOn: $hideMainWindow) {
Text("hide_main_window")
}
Expand Down Expand Up @@ -274,6 +277,7 @@ struct GeneralTab: View {
@Default(.fixedWindowPosition) private var fixedWindowPosition
@Default(.mouseSelectTranslateWindowType) private var mouseSelectTranslateWindowType
@Default(.shortcutSelectTranslateWindowType) private var shortcutSelectTranslateWindowType
@Default(.pinWindowWhenDisplayed) private var pinWindowWhenShowing
@Default(.enableBetaFeature) private var enableBetaFeature
@Default(.appearanceType) private var appearanceType

Expand Down
15 changes: 12 additions & 3 deletions Easydict/Swift/View/SettingView/Tabs/TabView/ServiceTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,20 @@ struct ServiceTab: View {
// MARK: - ServiceTabViewModel

private class ServiceTabViewModel: ObservableObject {
// MARK: Lifecycle

init(windowType: EZWindowType = .fixed) {
self.windowType = windowType
self.services = EZLocalStorage.shared().allServices(windowType)
}

// MARK: Internal

@Published var selectedService: QueryService?

@Published private(set) var services: [QueryService] = EZLocalStorage.shared().allServices(.mini)
private(set) var services: [QueryService]

@Published var windowType = EZWindowType.mini {
@Published var windowType: EZWindowType {
didSet {
if oldValue != windowType {
updateServices()
Expand Down Expand Up @@ -231,7 +240,7 @@ private struct WindowTypePicker: View {

var body: some View {
Picker(selection: $windowType) {
ForEach([EZWindowType]([.mini, .fixed, .main]), id: \.rawValue) { windowType in
ForEach([EZWindowType]([.fixed, .mini, .main]), id: \.rawValue) { windowType in
Text(windowType.localizedStringResource)
.tag(windowType)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -315,8 +315,10 @@ - (void)showFloatingWindowType:(EZWindowType)windowType
}

EZBaseQueryWindow *window = [self windowWithType:windowType];
window.titleBar.pin = Configuration.shared.pinWindowWhenDisplayed;

EZBaseQueryViewController *queryViewController = window.queryViewController;

// If text is nil, means we don't need to query anything, just show the window.
if (!queryText) {
/**
Expand Down