Skip to content

Commit

Permalink
Macstodon 1.1 - Anniversary Release
Browse files Browse the repository at this point in the history
  • Loading branch information
smallsco committed Nov 12, 2023
1 parent 1d59887 commit c7699de
Show file tree
Hide file tree
Showing 14 changed files with 23 additions and 16 deletions.
2 changes: 1 addition & 1 deletion AuthWindows.py

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
## CHANGELOG

### v1.1 (2023-11-12)

* The timeline window now allows you to select which timeline is displayed in each column, using the drop-down menu next to the refresh button.
* The preferences window now allows you to select the default timeline that is loaded in each column at Macstodon launch.
* The title bar of loading dialogs now states the overall activity taking place.
* Fixed a bug that caused the Links and Attachments buttons to have glitched icons under certain circumstances.
* Fixed a bug that would display the wrong error message if the current user ID could not be retrieved from the server.

### v1.0.1 (2023-03-22)

* Fixed a major bug that could corrupt the timeline state when removing a boost from a toot.
Expand Down Expand Up @@ -76,7 +84,7 @@

### v0.2.1 (2022-11-20)

* Added a beautiful new application icon by [MhzModels](https://artsio.com/@mhzmodels)
* Added a beautiful new application icon by [MhzModels](https://tech.lgbt/@mhzmodels)
* Replaced a crash-to-console with a friendly, recoverable error message if the connection is lost during an HTTP request.

### v0.2 (2022-11-19)
Expand Down
2 changes: 1 addition & 1 deletion Macstodon.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Macstodon.rsrc.sit.hqx

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion MacstodonConstants.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"""Macstodon - a Mastodon client for classic Mac OSMIT LicenseCopyright (c) 2022-2023 Scott Small and ContributorsPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associateddocumentation files (the "Software"), to deal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permitpersons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THEWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OROTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."""# ########## Constants# #########DEBUG = 0VERSION = "1.0.1"
"""Macstodon - a Mastodon client for classic Mac OSMIT LicenseCopyright (c) 2022-2023 Scott Small and ContributorsPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associateddocumentation files (the "Software"), to deal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permitpersons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THEWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OROTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."""# ########## Constants# #########DEBUG = 0VERSION = "1.1"
Expand Down
2 changes: 1 addition & 1 deletion MacstodonHelpers.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion MacstodonSplash.py
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"""Macstodon - a Mastodon client for classic Mac OSMIT LicenseCopyright (c) 2022-2023 Scott Small and ContributorsPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associateddocumentation files (the "Software"), to deal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permitpersons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THEWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OROTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.""""""A quick note from Scott:This file has been almost copied/pasted verbatim from the MacPython IDE,which is why it looks nothing like the other source files style-wise.Changes I made here include: - updated the resources to use the Macstodon logo and give the dialog a black BG - Bugfix to the TextFont calls which were failing and causing the progress bar to not render (the MacPython IDE is affected by this as well, lol) - Fixed the _real__import__ calls which were only passing the name and not the other params, causing crashes when trying to run this in the IDE - Changed the text color to white and changed the text itself - Removed the easter egg"""import Dlgimport Resfrom MacstodonConstants import VERSIONsplash = Dlg.GetNewDialog(468, -1)splash.DrawDialog()import Qd, TE, Fm, sys_real__import__ = Nonedef install_importhook(): global _real__import__ import __builtin__ if _real__import__ is None: _real__import__ = __builtin__.__import__ __builtin__.__import__ = my__import__def uninstall_importhook(): global _real__import__ if _real__import__ is not None: import __builtin__ __builtin__.__import__ = _real__import__ _real__import__ = None_progress = 0def importing(module): global _progress Qd.SetPort(splash) Qd.TextFont(Fm.GetFNum("Geneva")) Qd.TextSize(9) rect = (85, 270, 415, 286) Qd.RGBForeColor((65535,65535,65535)) if module: TE.TETextBox('Importing: ' + module, rect, 0) if not _progress: Qd.FrameRect((85, 286, 415, 294)) pos = min(86 + 330 * _progress / 77, 414) Qd.PaintRect((86, 287, pos, 293)) _progress = _progress + 1 else: Qd.EraseRect(rect) Qd.PaintRect((86, 287, pos, 293)) Qd.RGBForeColor((0,0,0))def my__import__(name, globals=None, locals=None, fromlist=None): try: return sys.modules[name] except KeyError: try: importing(name) except: try: rv = _real__import__(name, globals, locals, fromlist) finally: uninstall_importhook() return rv return _real__import__(name, globals, locals, fromlist)install_importhook()kHighLevelEvent = 23import Winfrom Fonts import *from QuickDraw import *from TextEdit import *import string_keepsplashscreenopen = 0abouttext1 = """Macstodon %sA basic Mastodon client for Classic Mac OSby Scott Small, @[email protected]GitHub: https://github.com/smallsco/macstodonApplication icon and logo design by MhzModels, @[email protected]Additional icon design by CM Harrington, @[email protected]Built with MacPython %s%sWritten by Guido van Rossum with Jack Jansen (and others)"""def nl2return(text): return string.join(string.split(text, '\n'), '\r')def UpdateSplash(drawdialog = 0): if drawdialog: splash.DrawDialog() drawtext() Win.ValidRect(splash.GetWindowPort().portRect)def drawtext(): Qd.SetPort(splash) Qd.TextFont(Fm.GetFNum("Geneva")) Qd.TextSize(9) Qd.RGBForeColor((65535,65535,65535)) rect = (10, 135, 487, 270) import __main__ abouttxt = nl2return(abouttext1 % (VERSION, sys.version, sys.copyright)) TE.TETextBox(abouttxt, rect, teJustCenter) Qd.RGBForeColor((0,0,0))UpdateSplash(1)def wait(): import Evt from Events import * global splash try: splash except NameError: return Qd.InitCursor() time = Evt.TickCount() while _keepsplashscreenopen: ok, event = Evt.EventAvail(highLevelEventMask) if ok: # got apple event, back to mainloop break ok, event = Evt.EventAvail(mDownMask | keyDownMask | updateMask) if ok: ok, event = Evt.WaitNextEvent(mDownMask | keyDownMask | updateMask, 30) if ok: (what, message, when, where, modifiers) = event if what == updateEvt: if Win.WhichWindow(message) == splash: UpdateSplash(1) else: break del splashdef about(): global splash, splashresfile, _keepsplashscreenopen _keepsplashscreenopen = 1 splash = Dlg.GetNewDialog(468, -1) splash.DrawDialog() wait()
"""Macstodon - a Mastodon client for classic Mac OSMIT LicenseCopyright (c) 2022-2023 Scott Small and ContributorsPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associateddocumentation files (the "Software"), to deal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permitpersons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THEWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OROTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.""""""A quick note from Scott:This file has been almost copied/pasted verbatim from the MacPython IDE,which is why it looks nothing like the other source files style-wise.Changes I made here include: - updated the resources to use the Macstodon logo and give the dialog a black BG - Bugfix to the TextFont calls which were failing and causing the progress bar to not render (the MacPython IDE is affected by this as well, lol) - Fixed the _real__import__ calls which were only passing the name and not the other params, causing crashes when trying to run this in the IDE - Changed the text color to white and changed the text itself - Removed the easter egg"""import Dlgimport Resfrom MacstodonConstants import VERSIONsplash = Dlg.GetNewDialog(468, -1)splash.DrawDialog()import Qd, TE, Fm, sys_real__import__ = Nonedef install_importhook(): global _real__import__ import __builtin__ if _real__import__ is None: _real__import__ = __builtin__.__import__ __builtin__.__import__ = my__import__def uninstall_importhook(): global _real__import__ if _real__import__ is not None: import __builtin__ __builtin__.__import__ = _real__import__ _real__import__ = None_progress = 0def importing(module): global _progress Qd.SetPort(splash) Qd.TextFont(Fm.GetFNum("Geneva")) Qd.TextSize(9) rect = (85, 270, 415, 286) Qd.RGBForeColor((65535,65535,65535)) if module: TE.TETextBox('Importing: ' + module, rect, 0) if not _progress: Qd.FrameRect((85, 286, 415, 294)) pos = min(86 + 330 * _progress / 77, 414) Qd.PaintRect((86, 287, pos, 293)) _progress = _progress + 1 else: Qd.EraseRect(rect) Qd.PaintRect((86, 287, pos, 293)) Qd.RGBForeColor((0,0,0))def my__import__(name, globals=None, locals=None, fromlist=None): try: return sys.modules[name] except KeyError: try: importing(name) except: try: rv = _real__import__(name, globals, locals, fromlist) finally: uninstall_importhook() return rv return _real__import__(name, globals, locals, fromlist)install_importhook()kHighLevelEvent = 23import Winfrom Fonts import *from QuickDraw import *from TextEdit import *import string_keepsplashscreenopen = 0abouttext1 = """Macstodon %sA basic Mastodon client for Classic Mac OSby Scott Small, @[email protected]GitHub: https://github.com/smallsco/macstodonApplication icon and logo design by MhzModels, @[email protected]Additional icon design by CM Harrington, @[email protected]Built with MacPython %s%sWritten by Guido van Rossum with Jack Jansen (and others)"""def nl2return(text): return string.join(string.split(text, '\n'), '\r')def UpdateSplash(drawdialog = 0): if drawdialog: splash.DrawDialog() drawtext() Win.ValidRect(splash.GetWindowPort().portRect)def drawtext(): Qd.SetPort(splash) Qd.TextFont(Fm.GetFNum("Geneva")) Qd.TextSize(9) Qd.RGBForeColor((65535,65535,65535)) rect = (10, 135, 487, 270) import __main__ abouttxt = nl2return(abouttext1 % (VERSION, sys.version, sys.copyright)) TE.TETextBox(abouttxt, rect, teJustCenter) Qd.RGBForeColor((0,0,0))UpdateSplash(1)def wait(): import Evt from Events import * global splash try: splash except NameError: return Qd.InitCursor() time = Evt.TickCount() while _keepsplashscreenopen: ok, event = Evt.EventAvail(highLevelEventMask) if ok: # got apple event, back to mainloop break ok, event = Evt.EventAvail(mDownMask | keyDownMask | updateMask) if ok: ok, event = Evt.WaitNextEvent(mDownMask | keyDownMask | updateMask, 30) if ok: (what, message, when, where, modifiers) = event if what == updateEvt: if Win.WhichWindow(message) == splash: UpdateSplash(1) else: break del splashdef about(): global splash, splashresfile, _keepsplashscreenopen _keepsplashscreenopen = 1 splash = Dlg.GetNewDialog(468, -1) splash.DrawDialog() wait()
Expand Down
Loading

0 comments on commit c7699de

Please sign in to comment.