Mac OSX Launcher: UI code updates, integration of firefox manager.

This commit is contained in:
meeh
2019-01-18 16:29:12 +00:00
parent 52125917b4
commit 605f9872cd
3 changed files with 58 additions and 2 deletions

View File

@ -18,6 +18,8 @@ import Cocoa
return Optional.none
}
var isFirefoxEnabled = false
@IBOutlet var routerStatusLabel: NSTextField?
@IBOutlet var routerVersionLabel: NSTextField?
@IBOutlet var routerStartedByLabel: NSTextField?
@ -28,6 +30,7 @@ import Cocoa
@IBOutlet var quickControlView: NSView?
@IBOutlet var routerStartStopButton: NSButton?
@IBOutlet var openConsoleButton: NSButton?
@IBOutlet var launchFirefoxButton: NSButton?
@objc func actionBtnOpenConsole(_ sender: Any?) {
@ -77,6 +80,13 @@ import Cocoa
self.reEnableButton()
}
@objc func actionBtnLaunchFirefox(_ sender: Any?) {
DispatchQueue.global(qos: .background).async {
Swift.print("Starting firefox")
FirefoxManager.shared().executeFirefox()
}
}
func restartFn() {
RouterManager.shared().routerRunner.StopAgent({
sleep(30)
@ -116,14 +126,30 @@ import Cocoa
RouterManager.shared().eventManager.listenTo(eventName: "launch_agent_loaded", action: reEnableButton)
}
func setupFirefoxBtn() {
DispatchQueue.global(qos: .background).async {
if (FirefoxManager.shared().IsFirefoxFound() && !self.isFirefoxEnabled) {
Swift.print("Enabling Firefox Launch Button")
DispatchQueue.main.async {
self.isFirefoxEnabled = true
self.launchFirefoxButton?.isEnabled = true
self.launchFirefoxButton?.isTransparent = false
self.launchFirefoxButton?.needsDisplay = true
self.launchFirefoxButton?.action = #selector(self.actionBtnLaunchFirefox(_:))
self.launchFirefoxButton?.target = self
}
}
}
}
override func viewWillDraw() {
super.viewWillDraw()
if (RouterStatusView.instance != nil) {
RouterStatusView.instance = self
}
self.reEnableButton()
openConsoleButton!.cell!.action = #selector(self.actionBtnOpenConsole(_:))
openConsoleButton!.cell!.target = self
openConsoleButton?.cell?.action = #selector(self.actionBtnOpenConsole(_:))
openConsoleButton?.cell?.target = self
}
@ -197,6 +223,7 @@ import Cocoa
let c = NSCoder()
super.init(coder: c)!
self.setupObservers()
self.setupFirefoxBtn()
self.toggleSetButtonStart()
self.reEnableButton()
}
@ -204,6 +231,7 @@ import Cocoa
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
self.setupObservers()
self.setupFirefoxBtn()
self.toggleSetButtonStart()
self.reEnableButton()
}

View File

@ -108,6 +108,14 @@ import Cocoa
RouterManager.shared().eventManager.listenTo(eventName: "toggle_popover", action: event_toggle)
FirefoxManager.shared().tryAutoDetect()
print("Is Firefox found? \(FirefoxManager.shared().IsFirefoxFound())")
print("Is Firefox profile extracted at \(Preferences.shared()["I2Pref_firefoxProfilePath"] as! String)? \(FirefoxManager.shared().IsProfileExtracted())")
if (!FirefoxManager.shared().IsProfileExtracted()) {
FirefoxManager.shared().unzipProfile()
}
if let button = statusItem.button {
button.image = NSImage(named:"StatusBarButtonImage")
button.toolTip = "I2P Launch Manager"

View File

@ -10,6 +10,7 @@
//
import Cocoa
import ServiceManagement
class PreferencesViewController: NSViewController {
@ -64,6 +65,18 @@ class PreferencesViewController: NSViewController {
// Update radio buttons to reflect runtime/stored preferences
self.updateRadioButtonEffect(mode: Preferences.shared().showAsIconMode, withSideEffect: false)
if (Preferences.shared().stopRouterOnLauncherShutdown) {
self.checkboxStopWithLauncher?.state = NSOnState;
} else {
self.checkboxStopWithLauncher?.state = NSOffState;
}
if (Preferences.shared().startRouterOnLauncherStart) {
self.checkboxStartWithLauncher?.state = NSOnState;
} else {
self.checkboxStartWithLauncher?.state = NSOffState;
}
}
override func viewDidAppear() {
@ -110,11 +123,18 @@ class PreferencesViewController: NSViewController {
// MARK: - Launcher settings functions
@IBAction func checkboxStartLauncherOnOSXStartupClicked(_ sender: NSButton) {
let launcherAppId = "net.i2p.bootstrap.macosx.StartupItemApp"
switch sender.state {
case NSOnState:
print("on")
Preferences.shared()["I2Pref_startLauncherAtLogin"] = true
let success = SMLoginItemSetEnabled(launcherAppId as CFString, true)
print("SMLoginItemSetEnabled returned \(success)....")
case NSOffState:
print("off")
Preferences.shared()["I2Pref_startLauncherAtLogin"] = false
let success = SMLoginItemSetEnabled(launcherAppId as CFString, false)
print("SMLoginItemSetEnabled returned \(success)....")
case NSMixedState:
print("mixed")
default: break