forked from I2P_Developers/i2p.i2p
Mac OSX Launcher: UI code updates, integration of firefox manager.
This commit is contained in:
@ -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()
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user