From d86cb46b857f28e17291898c747a37f59fd98a7e Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Wed, 25 Jun 2025 19:06:14 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=F0=9F=92=84=20About=20Mac=20uses=20modern?= =?UTF-8?q?=20font.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/Resources/Credits.rtf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Mac/Resources/Credits.rtf b/Mac/Resources/Credits.rtf index ce67ed372..d6cceffff 100644 --- a/Mac/Resources/Credits.rtf +++ b/Mac/Resources/Credits.rtf @@ -1,5 +1,5 @@ -{\rtf1\ansi\ansicpg1252\cocoartf2761 -\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 LucidaGrande-Bold;\f1\fnil\fcharset0 LucidaGrande;} +{\rtf1\ansi\ansicpg1252\cocoartf2859 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 SFPro-Bold;\f1\fnil\fcharset0 SFPro-Regular;} {\colortbl;\red255\green255\blue255;\red0\green0\blue0;} {\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;} \vieww14060\viewh15660\viewkind0 From c6acc1036f60a758ed3b4b02dd2fe5cd47cdafe0 Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 17:37:51 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=F0=9F=92=84=20Modernise=20About=20Panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.swift | 79 ++++++++++++++++++ Mac/About/AboutWindowController.xib | 116 ++++++++++++++++++++++++++ Mac/About/LinkLabel.swift | 16 ++++ Mac/AppDelegate.swift | 8 +- Mac/Base.lproj/Main.storyboard | 7 +- Mac/Resources/Credits.rtf | 73 +++++++++------- 6 files changed, 262 insertions(+), 37 deletions(-) create mode 100644 Mac/About/AboutWindowController.swift create mode 100644 Mac/About/AboutWindowController.xib create mode 100644 Mac/About/LinkLabel.swift diff --git a/Mac/About/AboutWindowController.swift b/Mac/About/AboutWindowController.swift new file mode 100644 index 000000000..ce9591c39 --- /dev/null +++ b/Mac/About/AboutWindowController.swift @@ -0,0 +1,79 @@ +// +// AboutWindowController.swift +// NetNewsWire +// +// Created by Stuart Breckenridge on 26/06/2025. +// Copyright © 2025 Ranchero Software. All rights reserved. +// + +import Cocoa + +class AboutWindowController: NSWindowController { + + @IBOutlet weak var appIconImageView: NSImageView! + @IBOutlet weak var appTitleLabel: NSTextField! + @IBOutlet weak var versionLabel: NSTextField! + @IBOutlet weak var copyrightLabel: NSTextField! + @IBOutlet weak var websiteLabel: LinkLabel! + @IBOutlet weak var creditsTextView: NSTextView! + + override func windowDidLoad() { + super.windowDidLoad() + configureWindow() + updateUI() + } + + func configureWindow() { + window?.isOpaque = false + window?.backgroundColor = .clear + window?.titlebarAppearsTransparent = true + window?.titleVisibility = .hidden + window?.styleMask.insert(.fullSizeContentView) + if let contentView = window?.contentView { + let visualEffectView = NSVisualEffectView(frame: contentView.bounds) + visualEffectView.autoresizingMask = [.width, .height] + visualEffectView.blendingMode = .behindWindow + visualEffectView.material = .titlebar + visualEffectView.state = .active + contentView.addSubview(visualEffectView, positioned: .below, relativeTo: nil) + } + //creditsScrollView.backgroundColor = .clear + //creditsTextView.backgroundColor = .clear + } + + private func updateUI() { + let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown" + let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown" + let versionString = "Version \(version) (Build \(build))" + versionLabel.stringValue = versionString + + let copyright = Bundle.main.infoDictionary?["NSHumanReadableCopyright"] as? String ?? "Copyright © 2002-2025 Brent Simmons. All rights reserved." + copyrightLabel.stringValue = copyright + + websiteLabel.stringValue = "inessential.com" + + appIconImageView.image = NSImage(named: "AppIcon") + + if let creditsURL = Bundle.main.url(forResource: "Credits", withExtension: "rtf"), + let creditsData = try? Data(contentsOf: creditsURL), + let attributedString = try? NSAttributedString(data: creditsData, options: [.documentType: NSAttributedString.DocumentType.rtf], documentAttributes: nil) { + creditsTextView.textStorage?.setAttributedString(attributedString) + } else { + creditsTextView.string = "Credits not available." + } + + let fullRange = NSRange(location: 0, length: creditsTextView.string.utf16.count) + let centeredParagraphStyle = NSMutableParagraphStyle() + centeredParagraphStyle.alignment = .center + creditsTextView.textStorage?.addAttribute(.paragraphStyle, value: centeredParagraphStyle, range: fullRange) + + let url = URL(string: "https://inessential.com")! + let attributedString = NSMutableAttributedString(string: "inessential.com") + attributedString.addAttribute(.link, value: url, range: NSRange(location: 0, length: attributedString.length)) + attributedString.addAttribute(.foregroundColor, value: NSColor.systemBlue, range: NSRange(location: 0, length: attributedString.length)) + attributedString.addAttribute(.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: NSRange(location: 0, length: attributedString.length)) + + websiteLabel.attributedStringValue = attributedString + } + +} diff --git a/Mac/About/AboutWindowController.xib b/Mac/About/AboutWindowController.xib new file mode 100644 index 000000000..4f909a901 --- /dev/null +++ b/Mac/About/AboutWindowController.xib @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Mac/About/LinkLabel.swift b/Mac/About/LinkLabel.swift new file mode 100644 index 000000000..4f298175b --- /dev/null +++ b/Mac/About/LinkLabel.swift @@ -0,0 +1,16 @@ +// +// LinkLabel.swift +// NetNewsWire +// +// Created by Stuart Breckenridge on 26/06/2025. +// Copyright © 2025 Ranchero Software. All rights reserved. +// + + +class LinkLabel: NSTextField { + + /// pièces de résistance -- keeping it a mac-assed mac app. + override func resetCursorRects() { + addCursorRect(bounds, cursor: .pointingHand) + } +} diff --git a/Mac/AppDelegate.swift b/Mac/AppDelegate.swift index adf91c8a5..1ff0799a5 100644 --- a/Mac/AppDelegate.swift +++ b/Mac/AppDelegate.swift @@ -277,7 +277,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, CrashReporter.check(crashReporter: self.crashReporter) } #endif - } func application(_ application: NSApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([NSUserActivityRestoring]) -> Void) -> Bool { @@ -675,6 +674,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, createAndShowMainWindowIfNecessary() mainWindowController!.gotoStarred(sender) } + + @IBAction func showCustomAboutPanel(_ sender: Any?) { + let aboutWC = AboutWindowController(windowNibName: "AboutWindowController") + aboutWC.showWindow(nil) + aboutWC.window?.center() + aboutWC.window?.makeKeyAndOrderFront(nil) + } @IBAction func sortByOldestArticleOnTop(_ sender: Any?) { diff --git a/Mac/Base.lproj/Main.storyboard b/Mac/Base.lproj/Main.storyboard index c2906ddec..536c5fe1c 100644 --- a/Mac/Base.lproj/Main.storyboard +++ b/Mac/Base.lproj/Main.storyboard @@ -1,8 +1,7 @@ - + - - + @@ -18,7 +17,7 @@ - + diff --git a/Mac/Resources/Credits.rtf b/Mac/Resources/Credits.rtf index d6cceffff..5a7702b75 100644 --- a/Mac/Resources/Credits.rtf +++ b/Mac/Resources/Credits.rtf @@ -3,50 +3,59 @@ {\colortbl;\red255\green255\blue255;\red0\green0\blue0;} {\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;} \vieww14060\viewh15660\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl360\slmult1\pardirnatural\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://ranchero.com/netnewswire/"}}{\fldrslt -\f0\b\fs22 \cf2 NetNewsWire}} -\f0\b\fs22 \cf2 \ -By Brent Simmons\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl360\slmult1\pardirnatural\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "http://inessential.com/"}}{\fldrslt \cf2 inessential.com}} +\deftab720 +\pard\pardeftab720\sa60\partightenfactor0 + +\f0\b\fs22 \cf2 Credits \f1\b0 \ +\ +\pard\pardeftab720\sl120\slmult1\sa60\partightenfactor0 +\cf2 Contributing Developers \ +{\field{\*\fldinst{HYPERLINK "https://github.com/vincode-io"}}{\fldrslt Maurice Parker}}, {\field{\*\fldinst{HYPERLINK "https://stuartbreckenridge.net/"}}{\fldrslt Stuart Breckenridge}}\ +\ +App Icon\ +{\field{\*\fldinst{HYPERLINK "https://twitter.com/BradEllis"}}{\fldrslt Brad Ellis}}\ +\ +Feedly Syncing\ +{\field{\*\fldinst{HYPERLINK "https://twitter.com/kielgillard"}}{\fldrslt Kiel Gillard}}\ +\ +NewsBlur Syncing\ +{\field{\*\fldinst{HYPERLINK "https://twitter.com/quanganhdo"}}{\fldrslt Anh Do}}\ +\ +Under-the-Hood Magic and CSS Stylin's\ +{\field{\*\fldinst{HYPERLINK "https://github.com/wevah"}}{\fldrslt Nate Weaver}}\ +\ +Newsfoot (JS footnote displayer)\ +{\field{\*\fldinst{HYPERLINK "https://github.com/brehaut/"}}{\fldrslt Andrew Brehaut}}\ +\ +Help Book\ +{\field{\*\fldinst{HYPERLINK "https://nostodnayr.net/"}}{\fldrslt Ryan Dotson}}\ +\ +And featuring contributions from\ +{\field{\*\fldinst{HYPERLINK "https://github.com/danielpunkass"}}{\fldrslt Daniel Jalkut}}, {\field{\*\fldinst{HYPERLINK "https://rhonabwy.com/"}}{\fldrslt Joe Heck}}, {\field{\*\fldinst{HYPERLINK "https://github.com/olofhellman"}}{\fldrslt Olof Hellman}}, {\field{\*\fldinst{HYPERLINK "https://blog.rizwan.dev/"}}{\fldrslt Rizwan Mohamed Ibrahim}}, {\field{\*\fldinst{HYPERLINK "https://twitter.com/philviso"}}{\fldrslt Phil Viso}}, and {\field{\*\fldinst{HYPERLINK "https://github.com/Ranchero-Software/NetNewsWire/graphs/contributors"}}{\fldrslt many more}}!\ \pard\pardeftab720\li360\sa60\partightenfactor0 \cf2 \ \pard\pardeftab720\sa60\partightenfactor0 -\f0\b \cf2 Credits: +\f0\b \cf2 Acknowledgments\ + \f1\b0 \ +{\field{\*\fldinst{HYPERLINK "https://github.com/ccgus/fmdb"}}{\fldrslt FMDB}} (greatest SQLite wrapper ever in history) is by {\field{\*\fldinst{HYPERLINK "http://flyingmeat.com/"}}{\fldrslt Flying Meat Software}}.\ +{\field{\*\fldinst{HYPERLINK "https://sparkle-project.org/"}}{\fldrslt Sparkle}} is by Sparkle Project.\ \pard\pardeftab720\li360\sa60\partightenfactor0 -\cf2 Contributing developers: {\field{\*\fldinst{HYPERLINK "https://github.com/vincode-io"}}{\fldrslt Maurice Parker}}, {\field{\*\fldinst{HYPERLINK "https://stuartbreckenridge.net/"}}{\fldrslt Stuart Breckenridge}}\ -App icon: {\field{\*\fldinst{HYPERLINK "https://twitter.com/BradEllis"}}{\fldrslt Brad Ellis}}\ -Feedly syncing: {\field{\*\fldinst{HYPERLINK "https://twitter.com/kielgillard"}}{\fldrslt Kiel Gillard}}\ -NewsBlur syncing: {\field{\*\fldinst{HYPERLINK "https://twitter.com/quanganhdo"}}{\fldrslt Anh Do}}\ -Under-the-hood magic and CSS stylin\'92s: {\field{\*\fldinst{HYPERLINK "https://github.com/wevah"}}{\fldrslt Nate Weaver}}\ -Newsfoot (JS footnote displayer): {\field{\*\fldinst{HYPERLINK "https://github.com/brehaut/"}}{\fldrslt Andrew Brehaut}}\ -Help book: {\field{\*\fldinst{HYPERLINK "https://nostodnayr.net/"}}{\fldrslt Ryan Dotson}}\ -And featuring contributions from {\field{\*\fldinst{HYPERLINK "https://github.com/danielpunkass"}}{\fldrslt Daniel Jalkut}}, {\field{\*\fldinst{HYPERLINK "https://rhonabwy.com/"}}{\fldrslt Joe Heck}}, {\field{\*\fldinst{HYPERLINK "https://github.com/olofhellman"}}{\fldrslt Olof Hellman}}, {\field{\*\fldinst{HYPERLINK "https://blog.rizwan.dev/"}}{\fldrslt Rizwan Mohamed Ibrahim}}, {\field{\*\fldinst{HYPERLINK "https://twitter.com/philviso"}}{\fldrslt Phil Viso}}, and {\field{\*\fldinst{HYPERLINK "https://github.com/Ranchero-Software/NetNewsWire/graphs/contributors"}}{\fldrslt many more}}!\ -\ +\cf2 \ \pard\pardeftab720\sa60\partightenfactor0 -\f0\b \cf2 Acknowledgments: -\f1\b0 \ -\pard\pardeftab720\li360\sa60\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://github.com/ccgus/fmdb"}}{\fldrslt \cf2 FMDB}} (greatest SQLite wrapper ever in history) is by {\field{\*\fldinst{HYPERLINK "http://flyingmeat.com/"}}{\fldrslt Flying Meat Software}}.\ -\pard\pardeftab720\li360\sa60\partightenfactor0 -{\field{\*\fldinst{HYPERLINK "https://sparkle-project.org/"}}{\fldrslt \cf2 Sparkle}} is by Sparkle Project.\ +\f0\b \cf2 Thanks\ \ + +\f1\b0 Thanks to Sheila and my family; thanks to my friends in Seattle and around the globe; thanks to the ever-patient and ever-awesome NetNewsWire beta testers. Thanks to {\field{\*\fldinst{HYPERLINK "https://github.com/"}}{\fldrslt GitHub}} and {\field{\*\fldinst{HYPERLINK "https://slack.com/"}}{\fldrslt Slack}} for making open source collaboration easy and fun.\ +\pard\pardeftab720\li360\sa60\partightenfactor0 +\cf2 \ \pard\pardeftab720\sa60\partightenfactor0 -\f0\b \cf2 Thanks:\ -\pard\pardeftab720\li360\sa60\partightenfactor0 - -\f1\b0 \cf2 Thanks to Sheila and my family; thanks to my friends in Seattle and around the globe; thanks to the ever-patient and ever-awesome NetNewsWire beta testers. Thanks to {\field{\*\fldinst{HYPERLINK "https://github.com/"}}{\fldrslt GitHub}} and {\field{\*\fldinst{HYPERLINK "https://slack.com/"}}{\fldrslt Slack}} for making open source collaboration easy and fun.\ +\f0\b \cf2 Dedication\ \ -\pard\pardeftab720\sa60\partightenfactor0 -\f0\b \cf2 Dedication:\ -\pard\pardeftab720\li360\sa60\partightenfactor0 - -\f1\b0 \cf2 NetNewsWire 6 is dedicated to everyone working to save democracy around the world.\ +\f1\b0 NetNewsWire 6 is dedicated to everyone working to save democracy around the world.\ } \ No newline at end of file From a560542aa652a09aab65320714c99607971dc90e Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 17:41:07 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20Removes=20dead=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Mac/About/AboutWindowController.swift b/Mac/About/AboutWindowController.swift index ce9591c39..d18d7b1a1 100644 --- a/Mac/About/AboutWindowController.swift +++ b/Mac/About/AboutWindowController.swift @@ -37,8 +37,6 @@ class AboutWindowController: NSWindowController { visualEffectView.state = .active contentView.addSubview(visualEffectView, positioned: .below, relativeTo: nil) } - //creditsScrollView.backgroundColor = .clear - //creditsTextView.backgroundColor = .clear } private func updateUI() { From 321829878c22e5e9733b12de45b1432c1058ad72 Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 17:44:48 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=F0=9F=8E=A8=20Code=20formatting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.swift | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Mac/About/AboutWindowController.swift b/Mac/About/AboutWindowController.swift index d18d7b1a1..a250b9c26 100644 --- a/Mac/About/AboutWindowController.swift +++ b/Mac/About/AboutWindowController.swift @@ -40,18 +40,21 @@ class AboutWindowController: NSWindowController { } private func updateUI() { + + // App Icon + appIconImageView.image = NSImage(named: "AppIcon") + + // Version let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown" let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown" let versionString = "Version \(version) (Build \(build))" versionLabel.stringValue = versionString + // Copyright let copyright = Bundle.main.infoDictionary?["NSHumanReadableCopyright"] as? String ?? "Copyright © 2002-2025 Brent Simmons. All rights reserved." copyrightLabel.stringValue = copyright - websiteLabel.stringValue = "inessential.com" - - appIconImageView.image = NSImage(named: "AppIcon") - + // Credits if let creditsURL = Bundle.main.url(forResource: "Credits", withExtension: "rtf"), let creditsData = try? Data(contentsOf: creditsURL), let attributedString = try? NSAttributedString(data: creditsData, options: [.documentType: NSAttributedString.DocumentType.rtf], documentAttributes: nil) { @@ -65,12 +68,12 @@ class AboutWindowController: NSWindowController { centeredParagraphStyle.alignment = .center creditsTextView.textStorage?.addAttribute(.paragraphStyle, value: centeredParagraphStyle, range: fullRange) + // URL let url = URL(string: "https://inessential.com")! let attributedString = NSMutableAttributedString(string: "inessential.com") attributedString.addAttribute(.link, value: url, range: NSRange(location: 0, length: attributedString.length)) attributedString.addAttribute(.foregroundColor, value: NSColor.systemBlue, range: NSRange(location: 0, length: attributedString.length)) attributedString.addAttribute(.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: NSRange(location: 0, length: attributedString.length)) - websiteLabel.attributedStringValue = attributedString } From cb134ee0ee61eb06e9b77781eb8520055b93596c Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 19:50:48 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=F0=9F=92=84=20Gives=20versionLabel=20enoug?= =?UTF-8?q?h=20room=20to=20display=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.xib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Mac/About/AboutWindowController.xib b/Mac/About/AboutWindowController.xib index 4f909a901..46dec3bbc 100644 --- a/Mac/About/AboutWindowController.xib +++ b/Mac/About/AboutWindowController.xib @@ -88,9 +88,9 @@ - + - + From ff369d15dbbdba4a915dfa78bd26ad9c8a9078a9 Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 19:52:54 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=F0=9F=92=84=20Slightly=20wider=20scroll=20?= =?UTF-8?q?view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.xib | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Mac/About/AboutWindowController.xib b/Mac/About/AboutWindowController.xib index 46dec3bbc..53a7074c0 100644 --- a/Mac/About/AboutWindowController.xib +++ b/Mac/About/AboutWindowController.xib @@ -53,19 +53,19 @@ - + - + - + - - + + @@ -75,7 +75,7 @@ - + From cc2f39bc5145e3002003afdbeb96f8aee5aa9d90 Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Thu, 26 Jun 2025 22:10:19 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=F0=9F=92=84=20Minor=20clean=20up?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.swift | 2 +- Mac/About/AboutWindowController.xib | 10 +++++----- Mac/Resources/Credits.rtf | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Mac/About/AboutWindowController.swift b/Mac/About/AboutWindowController.swift index a250b9c26..57a1c1f5c 100644 --- a/Mac/About/AboutWindowController.swift +++ b/Mac/About/AboutWindowController.swift @@ -42,7 +42,7 @@ class AboutWindowController: NSWindowController { private func updateUI() { // App Icon - appIconImageView.image = NSImage(named: "AppIcon") + appIconImageView.image = NSApp.applicationIconImage // Version let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown" diff --git a/Mac/About/AboutWindowController.xib b/Mac/About/AboutWindowController.xib index 53a7074c0..05d95bee0 100644 --- a/Mac/About/AboutWindowController.xib +++ b/Mac/About/AboutWindowController.xib @@ -53,18 +53,18 @@ - + - + - + - + @@ -75,7 +75,7 @@ - + diff --git a/Mac/Resources/Credits.rtf b/Mac/Resources/Credits.rtf index 5a7702b75..1a1b287cb 100644 --- a/Mac/Resources/Credits.rtf +++ b/Mac/Resources/Credits.rtf @@ -8,8 +8,9 @@ \f0\b\fs22 \cf2 Credits \f1\b0 \ -\ -\pard\pardeftab720\sl120\slmult1\sa60\partightenfactor0 +\pard\pardeftab720\sl144\slmult1\sa60\partightenfactor0 +\cf2 \ +\pard\pardeftab720\sl168\slmult1\sa60\partightenfactor0 \cf2 Contributing Developers \ {\field{\*\fldinst{HYPERLINK "https://github.com/vincode-io"}}{\fldrslt Maurice Parker}}, {\field{\*\fldinst{HYPERLINK "https://stuartbreckenridge.net/"}}{\fldrslt Stuart Breckenridge}}\ \ @@ -40,7 +41,8 @@ And featuring contributions from\ \f0\b \cf2 Acknowledgments\ \f1\b0 \ -{\field{\*\fldinst{HYPERLINK "https://github.com/ccgus/fmdb"}}{\fldrslt FMDB}} (greatest SQLite wrapper ever in history) is by {\field{\*\fldinst{HYPERLINK "http://flyingmeat.com/"}}{\fldrslt Flying Meat Software}}.\ +\pard\pardeftab720\sa60\partightenfactor0 +{\field{\*\fldinst{HYPERLINK "https://github.com/ccgus/fmdb"}}{\fldrslt \cf2 FMDB}} (greatest SQLite wrapper ever in history) is by {\field{\*\fldinst{HYPERLINK "http://flyingmeat.com/"}}{\fldrslt Flying Meat Software}}.\ {\field{\*\fldinst{HYPERLINK "https://sparkle-project.org/"}}{\fldrslt Sparkle}} is by Sparkle Project.\ \pard\pardeftab720\li360\sa60\partightenfactor0 \cf2 \ From 2f90ef5912d035692a7a61a28902fea79b0cdaf7 Mon Sep 17 00:00:00 2001 From: Stuar Breckenridge Date: Fri, 27 Jun 2025 07:30:22 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=F0=9F=92=84=20Minor=20tweaks=20to=20make?= =?UTF-8?q?=20credit=20left=20aligned?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mac/About/AboutWindowController.swift | 6 +++--- Mac/About/AboutWindowController.xib | 10 +++++----- Mac/Resources/Credits.rtf | 3 ++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Mac/About/AboutWindowController.swift b/Mac/About/AboutWindowController.swift index 57a1c1f5c..942ba327e 100644 --- a/Mac/About/AboutWindowController.swift +++ b/Mac/About/AboutWindowController.swift @@ -64,9 +64,9 @@ class AboutWindowController: NSWindowController { } let fullRange = NSRange(location: 0, length: creditsTextView.string.utf16.count) - let centeredParagraphStyle = NSMutableParagraphStyle() - centeredParagraphStyle.alignment = .center - creditsTextView.textStorage?.addAttribute(.paragraphStyle, value: centeredParagraphStyle, range: fullRange) + let leadingParagraphStyle = NSMutableParagraphStyle() + leadingParagraphStyle.alignment = .left + creditsTextView.textStorage?.addAttribute(.paragraphStyle, value: leadingParagraphStyle, range: fullRange) // URL let url = URL(string: "https://inessential.com")! diff --git a/Mac/About/AboutWindowController.xib b/Mac/About/AboutWindowController.xib index 05d95bee0..52857ec84 100644 --- a/Mac/About/AboutWindowController.xib +++ b/Mac/About/AboutWindowController.xib @@ -53,18 +53,18 @@ - + - + - + - + @@ -75,7 +75,7 @@ - + diff --git a/Mac/Resources/Credits.rtf b/Mac/Resources/Credits.rtf index 1a1b287cb..1291f7c3a 100644 --- a/Mac/Resources/Credits.rtf +++ b/Mac/Resources/Credits.rtf @@ -41,8 +41,9 @@ And featuring contributions from\ \f0\b \cf2 Acknowledgments\ \f1\b0 \ -\pard\pardeftab720\sa60\partightenfactor0 +\pard\pardeftab720\sl168\slmult1\sa60\partightenfactor0 {\field{\*\fldinst{HYPERLINK "https://github.com/ccgus/fmdb"}}{\fldrslt \cf2 FMDB}} (greatest SQLite wrapper ever in history) is by {\field{\*\fldinst{HYPERLINK "http://flyingmeat.com/"}}{\fldrslt Flying Meat Software}}.\ +\ {\field{\*\fldinst{HYPERLINK "https://sparkle-project.org/"}}{\fldrslt Sparkle}} is by Sparkle Project.\ \pard\pardeftab720\li360\sa60\partightenfactor0 \cf2 \