-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider adding airyx LaunchServices #116
Comments
Well... maybe starting to address them! :)
The ObjC++ in cocoa.mm is a stub that lets the rest of C++ Filer access the LS and Foundation frameworks. That code is used to e.g. load a .app bundle and extract its program arguments, display name, and icon file. Most of the APIs provided by LS are actually plain C so they could be called directly from C++. (There are currently some You would still need to have the frameworks themselves in /System/Library/Frameworks.
Wouldn't this involve duplicating all the work I've done on LS, rewriting it in C++ with Qt?
Of course! A property list is just a dictionary of keys and values. Just add a suitable Reader and Writer here: https://github.com/mszoek/airyx/tree/main/Frameworks/Foundation/NSPropertyList Incidentally, I am also planning to make Filer use NSFileManager in Foundation and remove the libfm dependency. |
Sounds great. We should definitely try to work toward a common codebase, as you are making changes I always wanted to make but never came around to (e.g., rename
How would one compile them on helloSystem? |
Check out the PR I submitted this evening. ObjC has been rewritten as C++ calling out to Qt and CoreFoundation. I also wrapped everything in ifdefs so it only builds my changes on Airyx. Let me know if it works OK on helloSystem; everything seems fine here! To build the frameworks on helloSystem, you should be able to just do |
https://github.com/helloSystem/Filer/compare/master...mszoek:airyx?expand=1 introduces LaunchServices to Filer 🥇, hence addressing long-standing issues with how applications and documents are associated. It does so by introducing ObjC code whereas the rest of Filer is written in Qt/C++, and by introducing depenedencies on other Airyx components such as
<LaunchServices/LaunchServices.h>
.<LaunchServices/LaunchServices.h>
with a Qt/C++ implementation of the same?cc @mszoek
The text was updated successfully, but these errors were encountered: