Merge pull request #48685 from bruvzg/bundle_icon_4
This commit is contained in:
commit
3a19400889
@ -282,6 +282,11 @@ String OS::get_bundle_resource_dir() const {
|
|||||||
return ".";
|
return ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Path to macOS .app bundle embedded icon
|
||||||
|
String OS::get_bundle_icon_path() const {
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
// OS specific path for user://
|
// OS specific path for user://
|
||||||
String OS::get_user_data_dir() const {
|
String OS::get_user_data_dir() const {
|
||||||
return ".";
|
return ".";
|
||||||
|
@ -252,6 +252,7 @@ public:
|
|||||||
virtual String get_config_path() const;
|
virtual String get_config_path() const;
|
||||||
virtual String get_cache_path() const;
|
virtual String get_cache_path() const;
|
||||||
virtual String get_bundle_resource_dir() const;
|
virtual String get_bundle_resource_dir() const;
|
||||||
|
virtual String get_bundle_icon_path() const;
|
||||||
|
|
||||||
virtual String get_user_data_dir() const;
|
virtual String get_user_data_dir() const;
|
||||||
virtual String get_resource_dir() const;
|
virtual String get_resource_dir() const;
|
||||||
|
@ -1721,8 +1721,10 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
Ref<Image> icon = memnew(Image(app_icon_png));
|
if (OS::get_singleton()->get_bundle_icon_path().is_empty()) {
|
||||||
DisplayServer::get_singleton()->set_icon(icon);
|
Ref<Image> icon = memnew(Image(app_icon_png));
|
||||||
|
DisplayServer::get_singleton()->set_icon(icon);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2440,7 +2442,7 @@ bool Main::start() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasicon) {
|
if (!hasicon && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
|
||||||
Ref<Image> icon = memnew(Image(app_icon_png));
|
Ref<Image> icon = memnew(Image(app_icon_png));
|
||||||
DisplayServer::get_singleton()->set_icon(icon);
|
DisplayServer::get_singleton()->set_icon(icon);
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ public:
|
|||||||
virtual String get_data_path() const override;
|
virtual String get_data_path() const override;
|
||||||
virtual String get_cache_path() const override;
|
virtual String get_cache_path() const override;
|
||||||
virtual String get_bundle_resource_dir() const override;
|
virtual String get_bundle_resource_dir() const override;
|
||||||
|
virtual String get_bundle_icon_path() const override;
|
||||||
virtual String get_godot_dir_name() const override;
|
virtual String get_godot_dir_name() const override;
|
||||||
|
|
||||||
virtual String get_system_dir(SystemDir p_dir, bool p_shared_storage = true) const override;
|
virtual String get_system_dir(SystemDir p_dir, bool p_shared_storage = true) const override;
|
||||||
|
@ -379,14 +379,26 @@ String OS_OSX::get_cache_path() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String OS_OSX::get_bundle_resource_dir() const {
|
String OS_OSX::get_bundle_resource_dir() const {
|
||||||
NSBundle *main = [NSBundle mainBundle];
|
|
||||||
NSString *resourcePath = [main resourcePath];
|
|
||||||
|
|
||||||
char *utfs = strdup([resourcePath UTF8String]);
|
|
||||||
String ret;
|
String ret;
|
||||||
ret.parse_utf8(utfs);
|
|
||||||
free(utfs);
|
|
||||||
|
|
||||||
|
NSBundle *main = [NSBundle mainBundle];
|
||||||
|
if (main) {
|
||||||
|
NSString *resourcePath = [main resourcePath];
|
||||||
|
ret.parse_utf8([resourcePath UTF8String]);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
String OS_OSX::get_bundle_icon_path() const {
|
||||||
|
String ret;
|
||||||
|
|
||||||
|
NSBundle *main = [NSBundle mainBundle];
|
||||||
|
if (main) {
|
||||||
|
NSString *iconPath = [[main infoDictionary] objectForKey:@"CFBundleIconFile"];
|
||||||
|
if (iconPath) {
|
||||||
|
ret.parse_utf8([iconPath UTF8String]);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user