123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- //
- // SKGeneralPreferences.swift
- // PDF Master
- //
- // Created by tangchao on 2023/11/6.
- //
- import Cocoa
- class SKGeneralPreferences: NSViewController {
-
- /*
- #define @""
- #define AUTOMATICALLYCHECKSFORUPDATES_KEY @"automaticallyChecksForUpdates"
- #define UPDATECHECKINTERVAL_KEY @"updateCheckInterval"
- #define SUScheduledCheckIntervalKey @"SUScheduledCheckInterval"
- */
- private let UPDATEINTERVAL_KEY = "updateInterval"
-
- @IBOutlet var updateIntervalPopUpButton: NSPopUpButton!
-
- @IBOutlet var openFilesLabelField: NSTextField!
- @IBOutlet var openFilesMatrix: NSMatrix!
- @IBOutlet var updateIntervalLabelField: NSTextField!
-
- @IBOutlet var savePasswordsMatrix: NSMatrix!
- @IBOutlet var authorLabel: NSTextField!
- @IBOutlet var authorTextField: NSTextField!
-
- @IBOutlet var defaultOpenButton: NSButton!
- @IBOutlet var openTabLabel: NSTextField!
- @IBOutlet var openTabButton: NSPopUpButton!
-
- @IBOutlet var showConvertMenuButton: NSButton!
- @IBOutlet var autoSaveInfoBtn: NSButton!
- @IBOutlet var autoSaveSlider: NSSlider!
-
- @IBOutlet var autoSaveLbl: NSTextField!
-
- var updateInterval: Int = 0 {
- didSet {
-
- }
- // set {
- //
- // }
- // get {
- //
- // }
- }
-
- /*
- @interface SKGeneralPreferences : NSViewController <SKPreferencePane> {
- NSArray *revertPDFSettingsButtons;
- NSInteger updateInterval;
- }
- @property (nonatomic, retain) IBOutlet NSArray *revertPDFSettingsButtons;
- @property (nonatomic) NSInteger ;
- - (IBAction)revertPDFViewSettings:(id)sender;
- - (IBAction)revertFullScreenPDFViewSettings:(id)sender;
- */
-
- /*
- static char SKGeneralPreferencesDefaultsObservationContext;
- static char SKGeneralPreferencesUpdaterObservationContext;
- @interface SKGeneralPreferences (Private)
- - (void)synchronizeUpdateInterval;
- - (void)updateRevertButtons;
- @end
- */
-
- override var nibName: NSNib.Name? {
- return "GeneralPreferences"
- }
-
- override func loadView() {
- super.loadView()
-
- let userName = UserDefaults.standard.string(forKey: "SKUserName")
- self.authorTextField.stringValue = userName != nil ? userName! : NSFullUserName()
- // self.defaultOpenButton.state = [[KMHomeWindowController homeWindow] isDefaultOpenForPDF] ? NSControlStateValueOn : NSControlStateValueOff;
-
- self.authorLabel.stringValue = KMLocalizedString("Author:", nil)
- self.defaultOpenButton.title = KMLocalizedString("Set PDF Reader Pro as the default PDF viewer", nil)
- self.openTabLabel.stringValue = String(format: "%@:", KMLocalizedString("Open a document in", nil))
- for item in self.openTabButton.itemArray {
- item.title = KMLocalizedString(item.title, nil)
- }
-
- self.showConvertMenuButton.title = KMLocalizedString("Show PDF Reader Pro in menu bar", nil)
- // self.showConvertMenuButton.state = [KMStatusBar systemStatusBar].isShow ? NSControlStateValueOn : NSControlStateValueOff;
-
- self.authorLabel.sizeToFit()
- var frame = self.authorTextField.frame
- frame.origin.x = CGRectGetMaxX(self.authorLabel.frame)+5
- self.authorTextField.frame = frame
- self.openTabLabel.sizeToFit()
- frame = self.openTabButton.frame
- frame.origin.x = CGRectGetMaxX(self.openTabLabel.frame)+5
- self.openTabButton.frame = frame
-
- self.openTabButton.isEnabled = true
- #if VERSION_FREE
- // if (![IAPProductsManager defaultManager].isAvailableAllFunction) {
- // [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"KMOpenDocumentInTab"];
- // }
- #endif
-
- // SKAutoSizeButtons(revertPDFSettingsButtons, NO);
- // SKAutoSizeLabelField(openFilesLabelField, openFilesMatrix, NO);
- // CGFloat dw = SKAutoSizeLabelField(updateIntervalLabelField, updateIntervalPopUpButton, NO);
- // [openFilesMatrix sizeToFit];
- // [savePasswordsMatrix sizeToFit];
- // SKShiftAndResizeView([self view], 0.0, dw);
-
- self._synchronizeUpdateInterval()
- self._updateRevertButtons()
-
- // [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeys:[NSArray arrayWithObjects:SKStringConstants.defaultPDFDisplaySettingsKey, SKStringConstants.defaultFullScreenPDFDisplaySettingsKey, nil] context:&SKGeneralPreferencesDefaultsObservationContext];
- // [NSUserDefaultsController sharedUserDefaultsController]
- #if VERSION_DMG
- // [[SUUpdater sharedUpdater] addObserver:self forKeyPath:AUTOMATICALLYCHECKSFORUPDATES_KEY options:0 context:&SKGeneralPreferencesUpdaterObservationContext];
- // [[SUUpdater sharedUpdater] addObserver:self forKeyPath:UPDATECHECKINTERVAL_KEY options:0 context:&SKGeneralPreferencesUpdaterObservationContext];
- #endif
-
- self.autoSaveInfoBtn.title = KMLocalizedString("Autosave Documents", nil)
- // self.autoSaveInfoBtn.state = [AutoSaveManager manager].autoSaveEnabled ? NSControlStateValueOn : NSControlStateValueOff;
- // self.autoSaveSlider.enabled = [AutoSaveManager manager].autoSaveEnabled;
-
- // if ([AutoSaveManager manager].timeInterval > 1) {
- // self.autoSaveSlider.floatValue = ([AutoSaveManager manager].timeInterval - 1)/19;
- // } else {
- self.autoSaveSlider.floatValue = 0;
- // }
- // self.autoSaveLbl.stringValue = [NSString stringWithFormat:@"%.0f %@", [AutoSaveManager manager].timeInterval, NSLocalizedString(@"minute(s)", nil)];
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
- }
-
- @IBAction func revertPDFViewSettings(_ sender: AnyObject?) {
- // [[NSUserDefaultsController sharedUserDefaultsController] revertToInitialValueForKey:SKStringConstants.defaultPDFDisplaySettingsKey];
- }
-
- @IBAction func revertFullScreenPDFViewSettings(_ sender: AnyObject?) {
- // [[NSUserDefaultsController sharedUserDefaultsController] revertToInitialValueForKey:SKStringConstants.defaultFullScreenPDFDisplaySettingsKey];
- }
-
- @IBAction func authorTextFieldAction(_ sender: AnyObject?) {
- // NSString *userName = self.authorTextField.stringValue.length > 0 ? self.authorTextField.stringValue : @"";
- // [[NSUserDefaults standardUserDefaults] setObject:userName forKey:@"SKUserName"];
- // [[NSUserDefaults standardUserDefaults] synchronize];
- }
-
- @IBAction func defaultOpenButtonAction(_ sender: AnyObject?) {
- // if ([self.defaultOpenButton state]) {
- // [[KMHomeWindowController homeWindow] setDefaultOpenForPDF:YES];
- // } else {
- // [[KMHomeWindowController homeWindow] setDefaultOpenForPDF:NO];
- // }
- }
-
- @IBAction func openTabButtonAction(_ sender: AnyObject?) {
- // if (@available(macOS 10.12, *)) {
- // NSWindowTabbingMode tabbingMode = NSWindowTabbingModeAutomatic;
- // if (self.openTabButton.indexOfSelectedItem == 0) {
- // #if VERSION_FREE
- // // if (![IAPProductsManager defaultManager].isAvailableAllFunction) {
- // // [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"KMOpenDocumentInTab"];
- // // [[KMPurchaseCompareWindowController sharedInstance] showWindow:nil];
- // // return;
- // // }
- // #endif
- // tabbingMode = NSWindowTabbingModePreferred;
- // } else if (self.openTabButton.indexOfSelectedItem == 1) {
- // tabbingMode = NSWindowTabbingModeDisallowed;
- // }
- // for (NSDocument *document in [[NSDocumentController sharedDocumentController] documents]) {
- // // if ([document isKindOfClass:[SKMainDocument class]]) {
- // // for (NSWindowController *windowController in document.windowControllers) {
- // // windowController.window.tabbingMode = tabbingMode;
- // // }
- // // }
- // }
- // }
- }
-
- @IBAction func showConvertMenuButtonAction(_ sender: AnyObject?) {
- // if ([self.showConvertMenuButton state]) {
- // // [KMStatusBar systemStatusBar].isShow = YES;
- // } else {
- // // [KMStatusBar systemStatusBar].isShow = NO;
- // }
- }
-
- @IBAction func autoSaveButtonAction(_ sender: AnyObject?) {
- // [AutoSaveManager manager].autoSaveEnabled = self.autoSaveInfoBtn.state == NSControlStateValueOn;
- // self.autoSaveSlider.enabled = [AutoSaveManager manager].autoSaveEnabled;
- }
-
- @IBAction func autoSaveSliderAction(_ sender: AnyObject?) {
- // CGFloat value = 1 + 19 * self.autoSaveSlider.floatValue;
-
- // [AutoSaveManager manager].timeInterval = value;
- // self.autoSaveLbl.stringValue = [NSString stringWithFormat:@"%.0f %@", [AutoSaveManager manager].timeInterval, NSLocalizedString(@"minute(s)", nil)];
-
- // [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(autoSaveSliderFinish) object:nil];
- // [self performSelector:@selector(autoSaveSliderFinish) withObject:nil afterDelay:1];
- }
-
- /*
- - (void)autoSaveSliderFinish {
- // [[NSNotificationCenter defaultCenter] postNotificationName:KAutoSaveTimeValueChangedNoti object:nil];
- }
- */
- /*
- @synthesize updateIntervalPopUpButton, revertPDFSettingsButtons, openFilesLabelField, openFilesMatrix, updateIntervalLabelField, savePasswordsMatrix, updateInterval, authorLabel, authorTextField, defaultOpenButton, showConvertMenuButton;
- - (void)dealloc {
- @try {
-
- [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeys:[NSArray arrayWithObjects:SKStringConstants.defaultPDFDisplaySettingsKey, SKStringConstants.defaultFullScreenPDFDisplaySettingsKey, nil]];
- #if VERSION_DMG
- [[SUUpdater sharedUpdater] removeObserver:self forKeyPath:AUTOMATICALLYCHECKSFORUPDATES_KEY];
- [[SUUpdater sharedUpdater] removeObserver:self forKeyPath:UPDATECHECKINTERVAL_KEY];
- #endif
- }
- @catch(id e) {}
- // SKDESTROY(updateIntervalPopUpButton);
- // SKDESTROY(revertPDFSettingsButtons);
- // SKDESTROY(openFilesLabelField);
- // SKDESTROY(openFilesMatrix);
- // SKDESTROY(updateIntervalLabelField);
- // SKDESTROY(savePasswordsMatrix);
- // SKDESTROY(authorLabel);
- // SKDESTROY(authorTextField);
- // SKDESTROY(defaultOpenButton);
- // SKDESTROY(showConvertMenuButton);
- // [super dealloc];
- }
- #pragma mark Accessors
- - (void)setUpdateInterval:(NSInteger)interval {
- #if VERSION_DMG
- if (interval > 0)
- [[SUUpdater sharedUpdater] setUpdateCheckInterval:interval];
- [[SUUpdater sharedUpdater] setAutomaticallyChecksForUpdates:interval > 0];
- #endif
- updateInterval = interval;
- }
- #pragma mark Actions
-
- #pragma mark KVO
- - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
- if (context == &SKGeneralPreferencesDefaultsObservationContext)
- [self updateRevertButtons];
- else if (context == &SKGeneralPreferencesUpdaterObservationContext)
- [self synchronizeUpdateInterval];
- else
- [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
- }
- #pragma mark Hooks
- - (void)defaultsDidRevert {
- NSTimeInterval interval = [[[NSBundle mainBundle] objectForInfoDictionaryKey:SUScheduledCheckIntervalKey] doubleValue];
- #if VERSION_DMG
- [[SUUpdater sharedUpdater] setUpdateCheckInterval:interval];
- [[SUUpdater sharedUpdater] setAutomaticallyChecksForUpdates:interval > 0.0];
- #endif
- }
- @end
- */
-
- override var title: String? {
- set {
- super.title = newValue
- }
- get {
- return KMLocalizedString("General", "Preference pane label")
- }
- }
-
- override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
- super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
- }
- }
- // MARK: - Private Methods
- extension SKGeneralPreferences {
- private func _synchronizeUpdateInterval() {
- // self.willChangeValue(forKey: UPDATEINTERVAL_KEY)
- #if VERSION_DMG
- // updateInterval = [[SUUpdater sharedUpdater] automaticallyChecksForUpdates] ? [[SUUpdater sharedUpdater] updateCheckInterval] : 0;
- #endif
- // self.didChangeValue(forKey: UPDATEINTERVAL_KEY)
- }
-
- private func _updateRevertButtons() {
- let initialValues = NSUserDefaultsController.shared.initialValues
- let sud = UserDefaults.standard
- // [[revertPDFSettingsButtons objectAtIndex:0] setEnabled:[[initialValues objectForKey:SKStringConstants.defaultPDFDisplaySettingsKey] isEqual:[sud dictionaryForKey:SKStringConstants.defaultPDFDisplaySettingsKey]] == NO];
- // [[revertPDFSettingsButtons objectAtIndex:1] setEnabled:[[initialValues objectForKey:SKStringConstants.defaultFullScreenPDFDisplaySettingsKey] isEqual:[sud dictionaryForKey:SKStringConstants.defaultFullScreenPDFDisplaySettingsKey]] == NO];
- }
- /*
- */
- }
|