1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00

👌 Various UI improvements

This commit is contained in:
2023-03-20 16:37:27 +01:00
parent 0bdbc0a056
commit f3b3dcf449
7 changed files with 71 additions and 14 deletions

View File

@ -1358,9 +1358,9 @@
C43931C329C4BD510069165B /* PhpManager */ = {
isa = PBXGroup;
children = (
C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */,
C43931C429C4BD610069165B /* PhpFormulaeManager.swift */,
C48DDD0C29C75C9E00D032D9 /* BlockingOverlayView.swift */,
C4D5576329C77CC5001A44CD /* PhpVersionManagerWindowController.swift */,
);
path = PhpManager;
sourceTree = "<group>";

View File

@ -37,13 +37,13 @@ class PMWindowController: NSWindowController, NSWindowDelegate {
extension NSWindowController {
public func positionWindowInTopLeftCorner() {
public func positionWindowInTopLeftCorner(offsetY: CGFloat = 0, offsetX: CGFloat = 0) {
guard let frame = NSScreen.main?.frame else { return }
guard let window = self.window else { return }
window.setFrame(NSRect(
x: frame.size.width - window.frame.size.width - 20,
y: frame.size.height - window.frame.size.height - 40,
x: frame.size.width - window.frame.size.width - 20 + offsetX,
y: frame.size.height - window.frame.size.height - 40 + offsetY,
width: window.frame.width,
height: window.frame.height
), display: true)

View File

@ -44,7 +44,7 @@ struct BlockingOverlayView<Content: View>: View {
.padding(.top, -4)
}
}
}
}.background(Color.white)
.disabled(isBlocking)
}
}

View File

@ -35,7 +35,7 @@ struct PhpFormulaeView: View {
self.status = PhpFormulaeStatus(
busy: true,
title: "Checking for updates",
title: "Checking for updates!",
description: "Checking if any PHP version is outdated..."
)
@ -47,8 +47,53 @@ struct PhpFormulaeView: View {
}
var body: some View {
BlockingOverlayView(busy: self.status.busy, title: self.status.title, text: self.status.description) {
VStack {
HStack(alignment: .center, spacing: 15) {
Image(systemName: "arrow.down.to.line.circle.fill")
.resizable()
.frame(width: 40, height: 40)
.foregroundColor(Color.blue)
.padding(12)
VStack(alignment: .leading, spacing: 5) {
Text("phpman.description".localizedForSwiftUI)
.font(.system(size: 12))
.frame(maxWidth: .infinity, alignment: .leading)
Text("phpman.disclaimer".localizedForSwiftUI)
.font(.system(size: 12))
.frame(maxWidth: .infinity, alignment: .leading)
}
}
.padding(10)
Divider()
HStack(alignment: .center, spacing: 15) {
Button {
Task { // Reload warnings
Task { @MainActor in
self.status.busy = true
self.status.title = "Checking for updates!"
self.status.description = "Checking if any PHP version is outdated..."
}
await self.handler.refreshPhpVersions(loadOutdated: true)
Task { @MainActor in
self.status.busy = false
}
}
} label: {
Image(systemName: "arrow.clockwise")
.buttonStyle(.automatic)
.controlSize(.large)
}
.focusable(false)
Text("phpman.refresh.button.description".localizedForSwiftUI)
.foregroundColor(.gray)
.font(.system(size: 11))
}
.padding(10)
BlockingOverlayView(busy: self.status.busy, title: self.status.title, text: self.status.description) {
List(Array(formulae.phpVersions.enumerated()), id: \.1.name) { (index, formula) in
HStack {
Image(systemName: formula.icon)
@ -96,7 +141,7 @@ struct PhpFormulaeView: View {
.padding(.vertical, 10)
}
}
}.frame(width: 500, height: 500)
}.frame(width: 600, height: 600)
}
}
@ -105,7 +150,7 @@ struct PhpFormulaeView_Previews: PreviewProvider {
PhpFormulaeView(
formulae: Brew.shared.formulae,
handler: FakeBrewFormulaeHandler()
).frame(width: 600, height: 500)
).frame(width: 600, height: 600)
}
}

View File

@ -34,7 +34,7 @@ class PhpVersionManagerWindowController: PMWindowController {
window.titlebarAppearsTransparent = true
window.delegate = delegate ?? windowController
window.contentView = NSHostingView(rootView: windowController.view)
window.setContentSize(NSSize(width: 600, height: 480))
window.setContentSize(NSSize(width: 600, height: 800))
App.shared.versionManagerWindowController = windowController
}
@ -45,7 +45,7 @@ class PhpVersionManagerWindowController: PMWindowController {
}
App.shared.versionManagerWindowController?.showWindow(self)
App.shared.versionManagerWindowController?.window?.setCenterPosition(offsetY: 70)
App.shared.versionManagerWindowController?.positionWindowInTopLeftCorner()
NSApp.activate(ignoringOtherApps: true)
}

View File

@ -51,10 +51,14 @@ struct WarningListView: View {
Divider()
HStack(alignment: .center, spacing: 15) {
Button("warnings.refresh.button".localizedForSwiftUI) {
Button {
Task { // Reload warnings
await self.warningManager.checkEnvironment()
}
} label: {
Image(systemName: "arrow.clockwise")
.buttonStyle(.automatic)
.controlSize(.large)
}
Text("warnings.refresh.button.description".localizedForSwiftUI)
.foregroundColor(.gray)

View File

@ -20,7 +20,7 @@
"mi_no_php_linked" = "No PHP version linked!";
"mi_fix_php_link" = "Fix Automatically...";
"mi_no_php_linked_explain" = "What's This?";
"mi_php_version_manager" = "Install & Upgrade PHP Versions...";
"mi_php_version_manager" = "PHP Version Manager...";
"mi_diagnostics" = "Diagnostics";
"mi_active_services" = "Active Services";
@ -88,6 +88,14 @@
"mi_xdebug_actions" = "Actions";
"mi_xdebug_disable_all" = "Disable All Modes";
// PHPMAN
"phpman.title" = "PHP Manager";
"phpman.description" = "**PHP Manager** lets you install different PHP versions via Homebrew.";
"phpman.disclaimer" = "PHP Manager may ask for administrative privileges to take ownership of certain folders during certain operations. If you prefer it, you can also manually install PHP versions via the terminal.";
"phpman.refresh.button" = "Search for Updates";
"phpman.refresh.button.description" = "You can press this button to check (again) if any updates are available to installed PHP versions. When you first open this window, PHP Monitor already does this check.";
// GENERIC
"generic.ok" = "OK";