diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2019-10-11 13:47:28 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2019-10-23 10:59:03 +0200 |
commit | 53637e4b1c94ec69987d0c45e4472d464df8f022 (patch) | |
tree | 8eac8243e155c4a89587437ca672c9a06474349f /editor | |
parent | 2ae3631318522f12a8f6fb85834b56874a01efed (diff) |
Improve EditorExportPlatform interface.
Convert all get_device* methods to get_option* and normalize their usage
as icon, label, tooltip.
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_export.cpp | 8 | ||||
-rw-r--r-- | editor/editor_export.h | 10 | ||||
-rw-r--r-- | editor/editor_run_native.cpp | 14 |
3 files changed, 19 insertions, 13 deletions
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 9510092a86..7ae8a9e0ce 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -376,6 +376,12 @@ Error EditorExportPlatform::_save_zip_file(void *p_userdata, const String &p_pat return OK; } +Ref<ImageTexture> EditorExportPlatform::get_option_icon(int p_index) const { + Ref<Theme> theme = EditorNode::get_singleton()->get_editor_theme(); + ERR_FAIL_COND_V(theme.is_null(), Ref<ImageTexture>()); + return theme->get_icon("Play", "EditorIcons"); +} + String EditorExportPlatform::find_export_template(String template_file_name, String *err) const { String current_version = VERSION_FULL_CONFIG; @@ -1403,7 +1409,7 @@ bool EditorExport::poll_export_platforms() { bool changed = false; for (int i = 0; i < export_platforms.size(); i++) { - if (export_platforms.write[i]->poll_devices()) { + if (export_platforms.write[i]->poll_export()) { changed = true; } } diff --git a/editor/editor_export.h b/editor/editor_export.h index 11dc464b5a..b0e27af629 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -243,10 +243,12 @@ public: Error save_pack(const Ref<EditorExportPreset> &p_preset, const String &p_path, Vector<SharedObject> *p_so_files = NULL, bool p_embed = false, int64_t *r_embedded_start = NULL, int64_t *r_embedded_size = NULL); Error save_zip(const Ref<EditorExportPreset> &p_preset, const String &p_path); - virtual bool poll_devices() { return false; } - virtual int get_device_count() const { return 0; } - virtual String get_device_name(int p_device) const { return ""; } - virtual String get_device_info(int p_device) const { return ""; } + virtual bool poll_export() { return false; } + virtual int get_options_count() const { return 0; } + virtual String get_options_tooltip() const { return ""; } + virtual Ref<ImageTexture> get_option_icon(int p_index) const; + virtual String get_option_label(int p_device) const { return ""; } + virtual String get_option_tooltip(int p_device) const { return ""; } enum DebugFlags { DEBUG_FLAG_DUMB_CLIENT = 1, diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index 585ea0ec69..64e90f2488 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -75,20 +75,18 @@ void EditorRunNative::_notification(int p_what) { Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(E->key()); MenuButton *mb = E->get(); - int dc = eep->get_device_count(); + int dc = eep->get_options_count(); if (dc == 0) { mb->hide(); } else { mb->get_popup()->clear(); mb->show(); - if (dc == 1) { - mb->set_tooltip(eep->get_device_name(0) + "\n\n" + eep->get_device_info(0).strip_edges()); - } else { - mb->set_tooltip("Select device from the list"); + mb->set_tooltip(eep->get_options_tooltip()); + if (dc > 1) { for (int i = 0; i < dc; i++) { - mb->get_popup()->add_icon_item(get_icon("Play", "EditorIcons"), eep->get_device_name(i)); - mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_device_info(i).strip_edges()); + mb->get_popup()->add_icon_item(eep->get_option_icon(i), eep->get_option_label(i)); + mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() - 1, eep->get_option_tooltip(i)); } } } @@ -111,7 +109,7 @@ void EditorRunNative::_run_native(int p_idx, int p_platform) { ERR_FAIL_COND(eep.is_null()); if (p_idx == -1) { - if (eep->get_device_count() == 1) { + if (eep->get_options_count() == 1) { menus[p_platform]->get_popup()->hide(); p_idx = 0; } else { |