From 8099cd8b28e98c51316e6d15f2f1a43cc782b8ac Mon Sep 17 00:00:00 2001 From: "Sr.Gambiarra" Date: Tue, 1 Mar 2022 00:02:26 -0300 Subject: [PATCH] folder organization and solved bugs folder --- designer/{data => assets}/icons/error.png | Bin designer/assets/icons/icon.png | Bin 0 -> 22655 bytes designer/{data => assets}/icons/info.png | Bin designer/assets/icons/kivy-icon-256.png | Bin 0 -> 35112 bytes designer/assets/icons/kivy-icon-512.png | Bin 0 -> 9595 bytes designer/assets/icons/kivy-icon-64.png | Bin 0 -> 31254 bytes designer/{data => assets}/icons/loading.gif | Bin designer/assets/icons/logo.png | Bin 0 -> 35436 bytes designer/assets/icons/ouya_icon.png | Bin 0 -> 18064 bytes .../template_images}/actionbar.png | Bin .../template_images}/boxlayout.png | Bin .../template_images}/carousel_actionbar.png | Bin .../template_images}/floatlayout.png | Bin .../template_images}/screenmanager.png | Bin .../screenmanager_actionbar.png | Bin .../template_images}/tabbedpanel.png | Bin .../template_images}/textinput_scrollview.png | Bin designer/components/buildozer_spec_editor.py | 6 +- designer/components/designer_content.py | 4 +- designer/components/dialogs/about.py | 4 +- designer/components/dialogs/new_project.py | 42 ++-- designer/components/property_viewer.py | 4 +- designer/components/start_page.py | 6 +- designer/components/statusbar.py | 7 +- designer/core/profile_settings.py | 26 +- designer/core/project_settings.py | 6 +- designer/core/settings.py | 13 +- designer/data/new_templates/default.spec | 233 ------------------ designer/screens/inicial/main_inicial.py | 14 +- designer/tools/bug_reporter.py | 4 +- .../profiles/android_buildozer.ini | 0 designer/{ => tools/profiles}/config.ini | 11 +- designer/{data => tools}/profiles/desktop.ini | 0 .../profiles/ios_buildozer.ini | 0 .../settings/build_profile.json | 0 .../settings/buildozer_settings.json | 0 .../settings/buildozer_spec_android.json | 169 ++++++++++++- .../settings/buildozer_spec_app.json | 165 ++++++++++++- .../settings/buildozer_spec_buildozer.json | 0 .../settings/buildozer_spec_ios.json | 0 .../settings/designer_settings.json | 0 .../settings/hanga_settings.json | 0 .../settings/proj_settings_proj_prop.json | 0 .../settings/proj_settings_shell_env.json | 0 .../{data => tools}/settings/shortcuts.json | 0 .../templates}/template_actionbar_carousel_kv | 2 +- .../templates}/template_actionbar_carousel_py | 4 +- .../templates}/template_actionbar_kv | 2 +- .../templates}/template_actionbar_py | 0 .../templates}/template_boxlayout_kv | 0 .../templates}/template_boxlayout_py | 0 .../templates}/template_floatlayout_kv | 0 .../templates}/template_floatlayout_py | 0 .../template_screen_manager_actionbar_kv | 2 +- .../template_screen_manager_actionbar_py | 5 +- .../templates}/template_screen_manager_kv | 0 .../templates}/template_screen_manager_py | 0 .../templates}/template_tabbed_panel_kv | 0 .../templates}/template_tabbed_panel_py | 0 .../template_textinput_scrollview_kv | 0 .../template_textinput_scrollview_py | 0 designer/uix/action_items.py | 8 +- designer/uix/code_find.py | 4 +- designer/utils/toolbox_widgets.py | 4 +- designer/utils/utils.py | 23 +- 65 files changed, 422 insertions(+), 346 deletions(-) rename designer/{data => assets}/icons/error.png (100%) create mode 100644 designer/assets/icons/icon.png rename designer/{data => assets}/icons/info.png (100%) create mode 100644 designer/assets/icons/kivy-icon-256.png create mode 100644 designer/assets/icons/kivy-icon-512.png create mode 100644 designer/assets/icons/kivy-icon-64.png rename designer/{data => assets}/icons/loading.gif (100%) create mode 100644 designer/assets/icons/logo.png create mode 100644 designer/assets/icons/ouya_icon.png rename designer/{data/new_templates/images => assets/template_images}/actionbar.png (100%) rename designer/{data/new_templates/images => assets/template_images}/boxlayout.png (100%) rename designer/{data/new_templates/images => assets/template_images}/carousel_actionbar.png (100%) rename designer/{data/new_templates/images => assets/template_images}/floatlayout.png (100%) rename designer/{data/new_templates/images => assets/template_images}/screenmanager.png (100%) rename designer/{data/new_templates/images => assets/template_images}/screenmanager_actionbar.png (100%) rename designer/{data/new_templates/images => assets/template_images}/tabbedpanel.png (100%) rename designer/{data/new_templates/images => assets/template_images}/textinput_scrollview.png (100%) delete mode 100644 designer/data/new_templates/default.spec rename designer/{data => tools}/profiles/android_buildozer.ini (100%) rename designer/{ => tools/profiles}/config.ini (92%) rename designer/{data => tools}/profiles/desktop.ini (100%) rename designer/{data => tools}/profiles/ios_buildozer.ini (100%) rename designer/{data => tools}/settings/build_profile.json (100%) rename designer/{data => tools}/settings/buildozer_settings.json (100%) rename designer/{data => tools}/settings/buildozer_spec_android.json (62%) rename designer/{data => tools}/settings/buildozer_spec_app.json (59%) rename designer/{data => tools}/settings/buildozer_spec_buildozer.json (100%) rename designer/{data => tools}/settings/buildozer_spec_ios.json (100%) rename designer/{data => tools}/settings/designer_settings.json (100%) rename designer/{data => tools}/settings/hanga_settings.json (100%) rename designer/{data => tools}/settings/proj_settings_proj_prop.json (100%) rename designer/{data => tools}/settings/proj_settings_shell_env.json (100%) rename designer/{data => tools}/settings/shortcuts.json (100%) rename designer/{data/new_templates => tools/templates}/template_actionbar_carousel_kv (97%) rename designer/{data/new_templates => tools/templates}/template_actionbar_carousel_py (98%) rename designer/{data/new_templates => tools/templates}/template_actionbar_kv (96%) rename designer/{data/new_templates => tools/templates}/template_actionbar_py (100%) rename designer/{data/new_templates => tools/templates}/template_boxlayout_kv (100%) rename designer/{data/new_templates => tools/templates}/template_boxlayout_py (100%) rename designer/{data/new_templates => tools/templates}/template_floatlayout_kv (100%) rename designer/{data/new_templates => tools/templates}/template_floatlayout_py (100%) rename designer/{data/new_templates => tools/templates}/template_screen_manager_actionbar_kv (96%) rename designer/{data/new_templates => tools/templates}/template_screen_manager_actionbar_py (87%) rename designer/{data/new_templates => tools/templates}/template_screen_manager_kv (100%) rename designer/{data/new_templates => tools/templates}/template_screen_manager_py (100%) rename designer/{data/new_templates => tools/templates}/template_tabbed_panel_kv (100%) rename designer/{data/new_templates => tools/templates}/template_tabbed_panel_py (100%) rename designer/{data/new_templates => tools/templates}/template_textinput_scrollview_kv (100%) rename designer/{data/new_templates => tools/templates}/template_textinput_scrollview_py (100%) diff --git a/designer/data/icons/error.png b/designer/assets/icons/error.png similarity index 100% rename from designer/data/icons/error.png rename to designer/assets/icons/error.png diff --git a/designer/assets/icons/icon.png b/designer/assets/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..09719741558e55b2c6ce259b0feb954e375b52da GIT binary patch literal 22655 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

;Q-#CSK!Y> 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

iqKQC!v(j{n(j;hHGAv%d7*J`15S829`E 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

Jgwv9v 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 p-Nuj4w$8ha1kng;@d2O}__ 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 literal 0 HcmV?d00001 diff --git a/designer/data/icons/loading.gif b/designer/assets/icons/loading.gif similarity index 100% rename from designer/data/icons/loading.gif rename to designer/assets/icons/loading.gif diff --git a/designer/assets/icons/logo.png b/designer/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8e55330c8f4cec8486bd9161546a8159a6aa6030 GIT binary patch literal 35436 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 |;HDc{h9WezC(mB9<(;IsWOI># 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 literal 0 HcmV?d00001 diff --git a/designer/data/new_templates/images/actionbar.png b/designer/assets/template_images/actionbar.png similarity index 100% rename from designer/data/new_templates/images/actionbar.png rename to designer/assets/template_images/actionbar.png diff --git a/designer/data/new_templates/images/boxlayout.png b/designer/assets/template_images/boxlayout.png similarity index 100% rename from designer/data/new_templates/images/boxlayout.png rename to designer/assets/template_images/boxlayout.png diff --git a/designer/data/new_templates/images/carousel_actionbar.png b/designer/assets/template_images/carousel_actionbar.png similarity index 100% rename from designer/data/new_templates/images/carousel_actionbar.png rename to designer/assets/template_images/carousel_actionbar.png diff --git a/designer/data/new_templates/images/floatlayout.png b/designer/assets/template_images/floatlayout.png similarity index 100% rename from designer/data/new_templates/images/floatlayout.png rename to designer/assets/template_images/floatlayout.png diff --git a/designer/data/new_templates/images/screenmanager.png b/designer/assets/template_images/screenmanager.png similarity index 100% rename from designer/data/new_templates/images/screenmanager.png rename to designer/assets/template_images/screenmanager.png diff --git a/designer/data/new_templates/images/screenmanager_actionbar.png b/designer/assets/template_images/screenmanager_actionbar.png similarity index 100% rename from designer/data/new_templates/images/screenmanager_actionbar.png rename to designer/assets/template_images/screenmanager_actionbar.png diff --git a/designer/data/new_templates/images/tabbedpanel.png b/designer/assets/template_images/tabbedpanel.png similarity index 100% rename from designer/data/new_templates/images/tabbedpanel.png rename to designer/assets/template_images/tabbedpanel.png diff --git a/designer/data/new_templates/images/textinput_scrollview.png b/designer/assets/template_images/textinput_scrollview.png similarity index 100% rename from designer/data/new_templates/images/textinput_scrollview.png rename to designer/assets/template_images/textinput_scrollview.png diff --git a/designer/components/buildozer_spec_editor.py b/designer/components/buildozer_spec_editor.py index f40c0f3..c48b321 100644 --- a/designer/components/buildozer_spec_editor.py +++ b/designer/components/buildozer_spec_editor.py @@ -18,6 +18,8 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + : do_scroll_x: False container: content @@ -64,8 +66,8 @@ size_hint_y: None height: '25pt' Button: - background_normal: 'atlas://data/images/defaulttheme/action_item' - background_down: 'atlas://data/images/defaulttheme/action_item' + background_normal: theme_atlas('action_item') + background_down: theme_atlas('action_item') text: 'GUI editor to buildozer.spec.z\\nRead more at http://buildozer.readthedocs.org' text_size: self.size font_size: '11pt' diff --git a/designer/components/designer_content.py b/designer/components/designer_content.py index 2d74c2f..e379e7d 100644 --- a/designer/components/designer_content.py +++ b/designer/components/designer_content.py @@ -22,6 +22,8 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + : ui_creator: ui_creator tree_view: tree_view @@ -104,7 +106,7 @@ orientation: 'vertical' width: 22 Image: - source: 'atlas://data/images/defaulttheme/close' + source: theme_atlas('close') on_touch_down: if self.collide_point(*args[1].pos) : root.dispatch('on_close') diff --git a/designer/components/dialogs/about.py b/designer/components/dialogs/about.py index 9b835d2..5934f41 100644 --- a/designer/components/dialogs/about.py +++ b/designer/components/dialogs/about.py @@ -3,9 +3,11 @@ Builder.load_string(""" +#: import icons utils.utils.icons + : Image: - source: 'data/logo/kivy-icon-512.png' + source: icons('kivy-icon-512') pos: root.pos opacity: 0.2 BoxLayout: diff --git a/designer/components/dialogs/new_project.py b/designer/components/dialogs/new_project.py index bae5607..d893154 100644 --- a/designer/components/dialogs/new_project.py +++ b/designer/components/dialogs/new_project.py @@ -1,9 +1,7 @@ from functools import partial -from os.path import join from kivy.uix.scrollview import ScrollView -from utils.utils import constants -from utils.utils import get_kd_data_dir +from utils.utils import template_images from kivy.factory import Factory from kivy.properties import ObjectProperty from kivy.uix.boxlayout import BoxLayout @@ -11,23 +9,22 @@ NEW_PROJECTS = { - 'FloatLayout': ('template_floatlayout_kv', - 'template_floatlayout_py'), - 'BoxLayout': ('template_boxlayout_kv', - 'template_boxlayout_py'), - 'ScreenManager': ('template_screen_manager_kv', - 'template_screen_manager_py'), - 'ActionBar': ('template_actionbar_kv', - 'template_actionbar_py'), - 'Carousel and ActionBar': ('template_actionbar_carousel_kv', - 'template_actionbar_carousel_py'), - 'ScreenManager and ActionBar': ('template_screen_manager_actionbar_kv', - 'template_screen_manager_actionbar_py'), - 'TabbedPanel': ('template_tabbed_panel_kv', - 'template_tabbed_panel_py'), - 'TextInput and ScrollView': ('template_textinput_scrollview_kv', - 'template_textinput_scrollview_py')} - + 'FloatLayout': ('template_floatlayout_kv', 'template_floatlayout_py'), + + 'BoxLayout': ('template_boxlayout_kv', 'template_boxlayout_py'), + + 'ScreenManager': ('template_screen_manager_kv', 'template_screen_manager_py'), + + 'ActionBar': ('template_actionbar_kv', 'template_actionbar_py'), + + 'Carousel and ActionBar': ('template_actionbar_carousel_kv', 'template_actionbar_carousel_py'), + + 'ScreenManager and ActionBar': ('template_screen_manager_actionbar_kv', 'template_screen_manager_actionbar_py'), + + 'TabbedPanel': ('template_tabbed_panel_kv', 'template_tabbed_panel_py'), + + 'TextInput and ScrollView': ('template_textinput_scrollview_kv', 'template_textinput_scrollview_py') +} Builder.load_string(""" @@ -220,10 +217,9 @@ def __init__(self, **kwargs): def update_template_preview(self, instance): '''Event handler for 'on_selection_change' event of adapter. ''' - name = instance.text.lower() + '.png' + name = instance.text.lower() name = name.replace(' and ', '_') - image_source = join(get_kd_data_dir(), - constants.NEW_TEMPLATE_IMAGE_PATH, name) + image_source = template_images(name) self.template_preview.source = image_source def on_app_name_text(self, instance, value): diff --git a/designer/components/property_viewer.py b/designer/components/property_viewer.py index 2690fbc..7ea0f97 100644 --- a/designer/components/property_viewer.py +++ b/designer/components/property_viewer.py @@ -16,13 +16,15 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + : valign: 'middle' halign: 'left' shorten: True shorten_from: 'right' Image: - source: 'atlas://data/images/defaulttheme/tree_opened' + source: theme_atlas('tree_opened') size_hint: None, None size: root.height, root.height pos: root.x + root.width - root.height, root.y diff --git a/designer/components/start_page.py b/designer/components/start_page.py index fdaf76d..99c75cf 100644 --- a/designer/components/start_page.py +++ b/designer/components/start_page.py @@ -8,6 +8,8 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + size_hint_x: None width: self.texture_size[0] + sp(32) @@ -105,8 +107,8 @@ : color: 0, 0, 1, 1 - background_normal: 'atlas://data/images/defaulttheme/action_item' - background_disabled_normal: 'atlas://data/images/defaulttheme/action_item_disabled' + background_normal: theme_atlas('action_item') + background_disabled_normal: theme_atlas('action_item_disabled') text_size: self.width, None : diff --git a/designer/components/statusbar.py b/designer/components/statusbar.py index 1ae2d8f..807620d 100644 --- a/designer/components/statusbar.py +++ b/designer/components/statusbar.py @@ -4,6 +4,7 @@ from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button from kivy.uix.label import Label +from utils.utils import icons from kivy.uix.tabbedpanel import ( TabbedPanel, TabbedPanelContent, TabbedPanelHeader, ) @@ -133,11 +134,11 @@ def show_message(self, message, duration=5, notification_type=None): self.message = message icon = '' if notification_type == 'info': - icon = 'icons/info.png' + icon = icons('info') elif notification_type == 'error': - icon = 'icons/error.png' + icon = icons('error') elif notification_type == 'loading': - icon = 'icons/loading.gif' + icon = icons('loading', '.gif') if icon: self.img.opacity = 1 diff --git a/designer/core/profile_settings.py b/designer/core/profile_settings.py index 37053c4..025d30e 100644 --- a/designer/core/profile_settings.py +++ b/designer/core/profile_settings.py @@ -3,8 +3,7 @@ import shutil from uix.confirmation_dialog import ConfirmationDialog -from utils.utils import constants -from utils.utils import get_config_dir, get_kd_data_dir +from utils.utils import get_config_dir, get_kd_data_dir, profiles_path from kivy.config import ConfigParser from kivy.properties import DictProperty, ObjectProperty from kivy.uix.popup import Popup @@ -209,12 +208,9 @@ def load_profiles(self): '''This function loads project settings ''' self.settings_changed = False - self.PROFILES_PATH = os.path.join(get_config_dir(), - constants.DIR_PROFILES) - - self.DEFAULT_PROFILES = os.path.join(get_kd_data_dir(), - constants.DIR_PROFILES) - + self.PROFILES_PATH = os.path.join(get_config_dir(), 'profiles') + self.DEFAULT_PROFILES = profiles_path() + if not os.path.exists(self.PROFILES_PATH): shutil.copytree(self.DEFAULT_PROFILES, self.PROFILES_PATH) @@ -236,18 +232,12 @@ def update_panel(self): str(prof_name) + '_' + _file_path] = config_parser for _file in sorted(self.config_parsers): - prof_name = self.config_parsers[_file].getdefault('profile', - 'name', - 'PROFILE') + prof_name = self.config_parsers[_file].getdefault('profile', 'name', 'PROFILE') if not prof_name.strip(): prof_name = 'PROFILE' - self.add_json_panel(prof_name, - self.config_parsers[_file], - os.path.join( - get_kd_data_dir(), - 'settings', - 'build_profile.json') - ) + + path_sett = os.path.join(get_kd_data_dir(), 'settings', 'build_profile.json') + self.add_json_panel(prof_name, self.config_parsers[_file], path_sett) # force to show the first profile first_panel = self.interface.menu.buttons_layout.children[-1].uid diff --git a/designer/core/project_settings.py b/designer/core/project_settings.py index b726d64..6267bfd 100644 --- a/designer/core/project_settings.py +++ b/designer/core/project_settings.py @@ -1,14 +1,12 @@ import os -from utils.utils import get_kd_data_dir, ignore_proj_watcher +from utils.utils import get_kd_data_dir, ignore_proj_watcher, profiles_path from kivy.config import ConfigParser from kivy.properties import ObjectProperty from kivy.uix.settings import Settings - PROJ_DESIGNER = '.designer' -PROJ_CONFIG = os.path.join(PROJ_DESIGNER, 'config.ini') - +PROJ_CONFIG = profiles_path('config') class ProjectSettings(Settings): '''Subclass of :class:`kivy.uix.settings.Settings` responsible for diff --git a/designer/core/settings.py b/designer/core/settings.py index 73515c3..f5e7075 100644 --- a/designer/core/settings.py +++ b/designer/core/settings.py @@ -1,18 +1,16 @@ -from multiprocessing.sharedctypes import Value import os import os.path import shutil import sys from distutils.spawn import find_executable -from utils.utils import get_config_dir, get_kd_data_dir, get_kd_dir, constants from uix.settings import SettingList, SettingShortcut +from utils.utils import get_config_dir, get_kd_data_dir, config_path from kivy.config import ConfigParser from kivy.properties import ObjectProperty from kivy.uix.settings import Settings from pygments import styles - # monkey backport! (https://github.com/kivy/kivy/pull/2288) if not hasattr(ConfigParser, 'upgrade'): from configparser import RawConfigParser as PythonConfigParser @@ -51,12 +49,11 @@ def load_settings(self): self.config_parser = ConfigParser(name='DesignerSettings') except Exception: return False - - DESIGNER_CONFIG = os.path.join(get_config_dir(), - constants.DESIGNER_CONFIG_FILE_NAME) + + DESIGNER_CONFIG = os.path.join(get_config_dir(), 'config.ini') + + DEFAULT_CONFIG = config_path('config') - DEFAULT_CONFIG = os.path.join(get_kd_dir(), - constants.DESIGNER_CONFIG_FILE_NAME) if not os.path.exists(DESIGNER_CONFIG): shutil.copyfile(DEFAULT_CONFIG, DESIGNER_CONFIG) diff --git a/designer/data/new_templates/default.spec b/designer/data/new_templates/default.spec deleted file mode 100644 index d084dab..0000000 --- a/designer/data/new_templates/default.spec +++ /dev/null @@ -1,233 +0,0 @@ -[app] - -# (str) Title of your application -title = $app_name - -# (str) Package name -package.name = $package_name - -# (str) Package domain (needed for android/ios packaging) -package.domain = $package_domain - -# (str) Source code where the main.py live -source.dir = . - -# (list) Source files to include (let empty to include all the files) -source.include_exts = py,png,jpg,kv,atlas - -# (list) List of inclusions using pattern matching -#source.include_patterns = assets/*,images/*.png - -# (list) Source files to exclude (let empty to not exclude anything) -#source.exclude_exts = spec - -# (list) List of directory to exclude (let empty to not exclude anything) -#source.exclude_dirs = tests, bin - -# (list) List of exclusions using pattern matching -#source.exclude_patterns = license,images/*/*.jpg - -# (str) Application versioning (method 1) -version = $package_version - -# (str) Application versioning (method 2) -# version.regex = __version__ = ['"](.*)['"] -# version.filename = %(source.dir)s/main.py - -# (list) Application requirements -# comma seperated e.g. requirements = sqlite3,kivy -requirements = kivy - -# (str) Custom source folders for requirements -# Sets custom source for any requirements with recipes -# requirements.source.kivy = ../../kivy - -# (list) Garden requirements -#garden_requirements = - -# (str) Presplash of the application -#presplash.filename = %(source.dir)s/data/presplash.png - -# (str) Icon of the application -#icon.filename = %(source.dir)s/data/icon.png - -# (str) Supported orientation (one of landscape, portrait or all) -orientation = landscape - -# (list) List of service to declare -#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY - -# -# OSX Specific -# - -# -# author = © Copyright Info - -# -# Android specific -# - -# (bool) Indicate if the application should be fullscreen or not -fullscreen = 1 - -# (list) Permissions -#android.permissions = INTERNET - -# (int) Android API to use -#android.api = 19 - -# (int) Minimum API required -#android.minapi = 9 - -# (int) Android SDK version to use -#android.sdk = 21 - -# (str) Android NDK version to use -#android.ndk = 9c - -# (bool) Use --private data storage (True) or --dir public storage (False) -#android.private_storage = True - -# (str) Android NDK directory (if empty, it will be automatically downloaded.) -#android.ndk_path = - -# (str) Android SDK directory (if empty, it will be automatically downloaded.) -#android.sdk_path = - -# (str) ANT directory (if empty, it will be automatically downloaded.) -#android.ant_path = - -# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github) -#android.p4a_dir = - -# (str) The directory in which python-for-android should look for your own build recipes (if any) -#p4a.local_recipes =q - -# (list) python-for-android whitelist -#android.p4a_whitelist = - -# (bool) If True, then skip trying to update the Android sdk -# This can be useful to avoid excess Internet downloads or save time -# when an update is due and you just want to test/build your package -# android.skip_update = False - -# (str) Bootstrap to use for android builds (android_new only) -# android.bootstrap = sdl2 - -# (str) Android entry point, default is ok for Kivy-based app -#android.entrypoint = org.renpy.android.PythonActivity - -# (list) List of Java .jar files to add to the libs so that pyjnius can access -# their classes. Don't add jars that you do not need, since extra jars can slow -# down the build process. Allows wildcards matching, for example: -# OUYA-ODK/libs/*.jar -#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar - -# (list) List of Java files to add to the android project (can be java or a -# directory containing the files) -#android.add_src = - -# (str) python-for-android branch to use, if not master, useful to try -# not yet merged features. -#android.branch = master - -# (str) OUYA Console category. Should be one of GAME or APP -# If you leave this blank, OUYA support will not be enabled -#android.ouya.category = GAME - -# (str) Filename of OUYA Console icon. It must be a 732x412 png image. -#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png - -# (str) XML file to include as an intent filters in tag -#android.manifest.intent_filters = - -# (list) Android additionnal libraries to copy into libs/armeabi -#android.add_libs_armeabi = libs/android/*.so -#android.add_libs_armeabi_v7a = libs/android-v7/*.so -#android.add_libs_x86 = libs/android-x86/*.so -#android.add_libs_mips = libs/android-mips/*.so - -# (bool) Indicate whether the screen should stay on -# Don't forget to add the WAKE_LOCK permission if you set this to True -#android.wakelock = False - -# (list) Android application meta-data to set (key=value format) -#android.meta_data = - -# (list) Android library project to add (will be added in the -# project.properties automatically.) -#android.library_references = - -# (str) Android logcat filters to use -#android.logcat_filters = *:S python:D - -# (bool) Copy library instead of making a libpymodules.so -#android.copy_libs = 1 - -# -# iOS specific -# - -# (str) Path to a custom kivy-ios folder -#ios.kivy_ios_dir = ../kivy-ios - -# (str) Name of the certificate to use for signing the debug version -# Get a list of available identities: buildozer ios list_identities -#ios.codesign.debug = "iPhone Developer: ()" - -# (str) Name of the certificate to use for signing the release version -#ios.codesign.release = %(ios.codesign.debug)s - - -[buildozer] - -# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output)) -log_level = 1 - -# (int) Display warning if buildozer is run as root (0 = False, 1 = True) -warn_on_root = 1 - -# (str) Path to build artifact storage, absolute or relative to spec file -# build_dir = ./.buildozer - -# (str) Path to build output (i.e. .apk, .ipa) storage -# bin_dir = ./bin - -# ----------------------------------------------------------------------------- -# List as sections -# -# You can define all the "list" as [section:key]. -# Each line will be considered as a option to the list. -# Let's take [app] / source.exclude_patterns. -# Instead of doing: -# -#[app] -#source.exclude_patterns = license,data/audio/*.wav,data/images/original/* -# -# This can be translated into: -# -#[app:source.exclude_patterns] -#license -#data/audio/*.wav -#data/images/original/* -# - - -# ----------------------------------------------------------------------------- -# Profiles -# -# You can extend section / key with a profile -# For example, you want to deploy a demo version of your application without -# HD content. You could first change the title to add "(demo)" in the name -# and extend the excluded directories to remove the HD content. -# -#[app@demo] -#title = My Application (demo) -# -#[app:source.exclude_patterns@demo] -#images/hd/* -# -# Then, invoke the command line with the "demo" profile: -# -#buildozer --profile demo android debug diff --git a/designer/screens/inicial/main_inicial.py b/designer/screens/inicial/main_inicial.py index fa9dc5f..5f6d90a 100644 --- a/designer/screens/inicial/main_inicial.py +++ b/designer/screens/inicial/main_inicial.py @@ -19,7 +19,7 @@ from utils.utils import ( ignore_proj_watcher, get_kd_data_dir, show_message, get_kd_dir, get_path, - utils_source_rst, + utils_source_rst, template_file, ) from tempfile import mkdtemp from distutils.dir_util import copy_tree @@ -541,16 +541,14 @@ def _perform_new(self, *args): package_version = self._new_dialog.package_version.text templates_dir = os.path.join(get_kd_data_dir(), constants.DIR_NEW_TEMPLATE) - kv_file = NEW_PROJECTS[template][0] - py_file = NEW_PROJECTS[template][1] + kv_file = template_file(NEW_PROJECTS[template][0]) + py_file = template_file(NEW_PROJECTS[template][1]) - shutil.copy(os.path.join(templates_dir, py_file), - os.path.join(new_proj_dir, "main.py")) - shutil.copy(os.path.join(templates_dir, kv_file), - os.path.join(new_proj_dir, "main.kv")) + shutil.copy(py_file, os.path.join(new_proj_dir, "main.py")) + shutil.copy(kv_file, os.path.join(new_proj_dir, "main.kv")) buildozer = io.open(os.path.join(new_proj_dir, 'buildozer.spec'), 'w', encoding='utf-8') - for line in io.open(os.path.join(templates_dir, 'default.spec'), 'r', encoding='utf-8'): + for line in io.open(template_file('default.spec'), 'r', encoding='utf-8'): line = line.replace('$app_name', app_name) line = line.replace('$package_name', package_name) line = line.replace('$package_domain', package_domain) diff --git a/designer/tools/bug_reporter.py b/designer/tools/bug_reporter.py index abb4d22..d99d5e7 100644 --- a/designer/tools/bug_reporter.py +++ b/designer/tools/bug_reporter.py @@ -21,10 +21,12 @@ Builder.load_string(''' +#: import icons utils.utils.icons + : txt_traceback: txt_traceback Image: - source: 'data/logo/kivy-icon-256.png' + source: icons('kivy-icon-256') opacity: 0.2 BoxLayout: orientation: 'vertical' diff --git a/designer/data/profiles/android_buildozer.ini b/designer/tools/profiles/android_buildozer.ini similarity index 100% rename from designer/data/profiles/android_buildozer.ini rename to designer/tools/profiles/android_buildozer.ini diff --git a/designer/config.ini b/designer/tools/profiles/config.ini similarity index 92% rename from designer/config.ini rename to designer/tools/profiles/config.ini index 3982e3e..3b70589 100644 --- a/designer/config.ini +++ b/designer/tools/profiles/config.ini @@ -6,10 +6,10 @@ auto_save_time = 5 code_input_theme = emacs [buildozer] -buildozer_path = +buildozer_path = [hanga] -hanga_api_key = +hanga_api_key = [desktop] save_window_size = 1 @@ -18,10 +18,10 @@ exit_on_escape = 0 [internal] window_width = 800 window_height = 600 -default_profile = +default_profile = mod_screen_scale = 1.0 mod_screen_orientation = portrait -mod_screen_device = +mod_screen_device = [view] actn_chk_proj_tree = True @@ -55,4 +55,5 @@ help = [] + f1 kivy_docs = ['ctrl'] + f1 kd_docs = ['ctrl', 'shift'] + f1 kd_repo = ['ctrl'] + r -about = [] + f10 \ No newline at end of file +about = [] + f10 + diff --git a/designer/data/profiles/desktop.ini b/designer/tools/profiles/desktop.ini similarity index 100% rename from designer/data/profiles/desktop.ini rename to designer/tools/profiles/desktop.ini diff --git a/designer/data/profiles/ios_buildozer.ini b/designer/tools/profiles/ios_buildozer.ini similarity index 100% rename from designer/data/profiles/ios_buildozer.ini rename to designer/tools/profiles/ios_buildozer.ini diff --git a/designer/data/settings/build_profile.json b/designer/tools/settings/build_profile.json similarity index 100% rename from designer/data/settings/build_profile.json rename to designer/tools/settings/build_profile.json diff --git a/designer/data/settings/buildozer_settings.json b/designer/tools/settings/buildozer_settings.json similarity index 100% rename from designer/data/settings/buildozer_settings.json rename to designer/tools/settings/buildozer_settings.json diff --git a/designer/data/settings/buildozer_spec_android.json b/designer/tools/settings/buildozer_spec_android.json similarity index 62% rename from designer/data/settings/buildozer_spec_android.json rename to designer/tools/settings/buildozer_spec_android.json index 91447fe..18765b6 100644 --- a/designer/data/settings/buildozer_spec_android.json +++ b/designer/tools/settings/buildozer_spec_android.json @@ -9,7 +9,160 @@ "section": "app", "desc": "Application required permissions.", "key": "android.permissions", - "items": ["ACCESS_CHECKIN_PROPERTIES", "ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION", "ACCESS_LOCATION_EXTRA_COMMANDS", "ACCESS_MOCK_LOCATION", "ACCESS_NETWORK_STATE", "ACCESS_SURFACE_FLINGER", "ACCESS_WIFI_STATE", "ACCOUNT_MANAGER", "ADD_VOICEMAIL", "AUTHENTICATE_ACCOUNTS", "BATTERY_STATS", "BIND_ACCESSIBILITY_SERVICE", "BIND_APPWIDGET", "BIND_CARRIER_MESSAGING_SERVICE", "BIND_DEVICE_ADMIN", "BIND_DREAM_SERVICE", "BIND_INPUT_METHOD", "BIND_NFC_SERVICE", "BIND_NOTIFICATION_LISTENER_SERVICE", "BIND_PRINT_SERVICE", "BIND_REMOTEVIEWS", "BIND_TEXT_SERVICE", "BIND_TV_INPUT", "BIND_VOICE_INTERACTION", "BIND_VPN_SERVICE", "BIND_WALLPAPER", "BLUETOOTH", "BLUETOOTH_ADMIN", "BLUETOOTH_PRIVILEGED", "BODY_SENSORS", "BRICK", "BROADCAST_PACKAGE_REMOVED", "BROADCAST_SMS", "BROADCAST_STICKY", "BROADCAST_WAP_PUSH", "CALL_PHONE", "CALL_PRIVILEGED", "CAMERA", "CAPTURE_AUDIO_OUTPUT", "CAPTURE_SECURE_VIDEO_OUTPUT", "CAPTURE_VIDEO_OUTPUT", "CHANGE_COMPONENT_ENABLED_STATE", "CHANGE_CONFIGURATION", "CHANGE_NETWORK_STATE", "CHANGE_WIFI_MULTICAST_STATE", "CHANGE_WIFI_STATE", "CLEAR_APP_CACHE", "CLEAR_APP_USER_DATA", "CONTROL_LOCATION_UPDATES", "DELETE_CACHE_FILES", "DELETE_PACKAGES", "DEVICE_POWER", "DIAGNOSTIC", "DISABLE_KEYGUARD", "DUMP", "EXPAND_STATUS_BAR", "FACTORY_TEST", "FLASHLIGHT", "FORCE_BACK", "GET_ACCOUNTS", "GET_PACKAGE_SIZE", "GET_TASKS", "GET_TOP_ACTIVITY_INFO", "GLOBAL_SEARCH", "HARDWARE_TEST", "INJECT_EVENTS", "INSTALL_LOCATION_PROVIDER", "INSTALL_PACKAGES", "INSTALL_SHORTCUT", "INTERNAL_SYSTEM_WINDOW", "INTERNET", "KILL_BACKGROUND_PROCESSES", "LOCATION_HARDWARE", "MANAGE_ACCOUNTS", "MANAGE_APP_TOKENS", "MANAGE_DOCUMENTS", "MASTER_CLEAR", "MEDIA_CONTENT_CONTROL", "MODIFY_AUDIO_SETTINGS", "MODIFY_PHONE_STATE", "MOUNT_FORMAT_FILESYSTEMS", "MOUNT_UNMOUNT_FILESYSTEMS", "NFC", "PERSISTENT_ACTIVITY", "PROCESS_OUTGOING_CALLS", "READ_CALENDAR", "READ_CALL_LOG", "READ_CONTACTS", "READ_EXTERNAL_STORAGE", "READ_FRAME_BUFFER", "READ_HISTORY_BOOKMARKS", "READ_INPUT_STATE", "READ_LOGS", "READ_PHONE_STATE", "READ_PROFILE", "READ_SMS", "READ_SOCIAL_STREAM", "READ_SYNC_SETTINGS", "READ_SYNC_STATS", "READ_USER_DICTIONARY", "READ_VOICEMAIL", "REBOOT", "RECEIVE_BOOT_COMPLETED", "RECEIVE_MMS", "RECEIVE_SMS", "RECEIVE_WAP_PUSH", "RECORD_AUDIO", "REORDER_TASKS", "RESTART_PACKAGES", "SEND_RESPOND_VIA_MESSAGE", "SEND_SMS", "SET_ACTIVITY_WATCHER", "SET_ALARM", "SET_ALWAYS_FINISH", "SET_ANIMATION_SCALE", "SET_DEBUG_APP", "SET_ORIENTATION", "SET_POINTER_SPEED", "SET_PREFERRED_APPLICATIONS", "SET_PROCESS_LIMIT", "SET_TIME", "SET_TIME_ZONE", "SET_WALLPAPER", "SET_WALLPAPER_HINTS", "SIGNAL_PERSISTENT_PROCESSES", "STATUS_BAR", "SUBSCRIBED_FEEDS_READ", "SUBSCRIBED_FEEDS_WRITE", "SYSTEM_ALERT_WINDOW", "TRANSMIT_IR", "UNINSTALL_SHORTCUT", "UPDATE_DEVICE_STATS", "USE_CREDENTIALS", "USE_SIP", "VIBRATE", "WAKE_LOCK", "WRITE_APN_SETTINGS", "WRITE_CALENDAR", "WRITE_CALL_LOG", "WRITE_CONTACTS", "WRITE_EXTERNAL_STORAGE", "WRITE_GSERVICES", "WRITE_HISTORY_BOOKMARKS", "WRITE_PROFILE", "WRITE_SECURE_SETTINGS", "WRITE_SETTINGS", "WRITE_SMS", "WRITE_SOCIAL_STREAM", "WRITE_SYNC_SETTINGS", "WRITE_USER_DICTIONARY", "WRITE_VOICEMAIL"] + "items": [ + "ACCESS_CHECKIN_PROPERTIES", + "ACCESS_COARSE_LOCATION", + "ACCESS_FINE_LOCATION", + "ACCESS_LOCATION_EXTRA_COMMANDS", + "ACCESS_MOCK_LOCATION", + "ACCESS_NETWORK_STATE", + "ACCESS_SURFACE_FLINGER", + "ACCESS_WIFI_STATE", + "ACCOUNT_MANAGER", + "ADD_VOICEMAIL", + "AUTHENTICATE_ACCOUNTS", + "BATTERY_STATS", + "BIND_ACCESSIBILITY_SERVICE", + "BIND_APPWIDGET", + "BIND_CARRIER_MESSAGING_SERVICE", + "BIND_DEVICE_ADMIN", + "BIND_DREAM_SERVICE", + "BIND_INPUT_METHOD", + "BIND_NFC_SERVICE", + "BIND_NOTIFICATION_LISTENER_SERVICE", + "BIND_PRINT_SERVICE", + "BIND_REMOTEVIEWS", + "BIND_TEXT_SERVICE", + "BIND_TV_INPUT", + "BIND_VOICE_INTERACTION", + "BIND_VPN_SERVICE", + "BIND_WALLPAPER", + "BLUETOOTH", + "BLUETOOTH_ADMIN", + "BLUETOOTH_PRIVILEGED", + "BODY_SENSORS", + "BRICK", + "BROADCAST_PACKAGE_REMOVED", + "BROADCAST_SMS", + "BROADCAST_STICKY", + "BROADCAST_WAP_PUSH", + "CALL_PHONE", + "CALL_PRIVILEGED", + "CAMERA", + "CAPTURE_AUDIO_OUTPUT", + "CAPTURE_SECURE_VIDEO_OUTPUT", + "CAPTURE_VIDEO_OUTPUT", + "CHANGE_COMPONENT_ENABLED_STATE", + "CHANGE_CONFIGURATION", + "CHANGE_NETWORK_STATE", + "CHANGE_WIFI_MULTICAST_STATE", + "CHANGE_WIFI_STATE", + "CLEAR_APP_CACHE", + "CLEAR_APP_USER_DATA", + "CONTROL_LOCATION_UPDATES", + "DELETE_CACHE_FILES", + "DELETE_PACKAGES", + "DEVICE_POWER", + "DIAGNOSTIC", + "DISABLE_KEYGUARD", + "DUMP", + "EXPAND_STATUS_BAR", + "FACTORY_TEST", + "FLASHLIGHT", + "FORCE_BACK", + "GET_ACCOUNTS", + "GET_PACKAGE_SIZE", + "GET_TASKS", + "GET_TOP_ACTIVITY_INFO", + "GLOBAL_SEARCH", + "HARDWARE_TEST", + "INJECT_EVENTS", + "INSTALL_LOCATION_PROVIDER", + "INSTALL_PACKAGES", + "INSTALL_SHORTCUT", + "INTERNAL_SYSTEM_WINDOW", + "INTERNET", + "KILL_BACKGROUND_PROCESSES", + "LOCATION_HARDWARE", + "MANAGE_ACCOUNTS", + "MANAGE_APP_TOKENS", + "MANAGE_DOCUMENTS", + "MASTER_CLEAR", + "MEDIA_CONTENT_CONTROL", + "MODIFY_AUDIO_SETTINGS", + "MODIFY_PHONE_STATE", + "MOUNT_FORMAT_FILESYSTEMS", + "MOUNT_UNMOUNT_FILESYSTEMS", + "NFC", + "PERSISTENT_ACTIVITY", + "PROCESS_OUTGOING_CALLS", + "READ_CALENDAR", + "READ_CALL_LOG", + "READ_CONTACTS", + "READ_EXTERNAL_STORAGE", + "READ_FRAME_BUFFER", + "READ_HISTORY_BOOKMARKS", + "READ_INPUT_STATE", + "READ_LOGS", + "READ_PHONE_STATE", + "READ_PROFILE", + "READ_SMS", + "READ_SOCIAL_STREAM", + "READ_SYNC_SETTINGS", + "READ_SYNC_STATS", + "READ_USER_DICTIONARY", + "READ_VOICEMAIL", + "REBOOT", + "RECEIVE_BOOT_COMPLETED", + "RECEIVE_MMS", + "RECEIVE_SMS", + "RECEIVE_WAP_PUSH", + "RECORD_AUDIO", + "REORDER_TASKS", + "RESTART_PACKAGES", + "SEND_RESPOND_VIA_MESSAGE", + "SEND_SMS", + "SET_ACTIVITY_WATCHER", + "SET_ALARM", + "SET_ALWAYS_FINISH", + "SET_ANIMATION_SCALE", + "SET_DEBUG_APP", + "SET_ORIENTATION", + "SET_POINTER_SPEED", + "SET_PREFERRED_APPLICATIONS", + "SET_PROCESS_LIMIT", + "SET_TIME", + "SET_TIME_ZONE", + "SET_WALLPAPER", + "SET_WALLPAPER_HINTS", + "SIGNAL_PERSISTENT_PROCESSES", + "STATUS_BAR", + "SUBSCRIBED_FEEDS_READ", + "SUBSCRIBED_FEEDS_WRITE", + "SYSTEM_ALERT_WINDOW", + "TRANSMIT_IR", + "UNINSTALL_SHORTCUT", + "UPDATE_DEVICE_STATS", + "USE_CREDENTIALS", + "USE_SIP", + "VIBRATE", + "WAKE_LOCK", + "WRITE_APN_SETTINGS", + "WRITE_CALENDAR", + "WRITE_CALL_LOG", + "WRITE_CONTACTS", + "WRITE_EXTERNAL_STORAGE", + "WRITE_GSERVICES", + "WRITE_HISTORY_BOOKMARKS", + "WRITE_PROFILE", + "WRITE_SECURE_SETTINGS", + "WRITE_SETTINGS", + "WRITE_SMS", + "WRITE_SOCIAL_STREAM", + "WRITE_SYNC_SETTINGS", + "WRITE_USER_DICTIONARY", + "WRITE_VOICEMAIL" + ] }, { "type": "dict", @@ -17,7 +170,10 @@ "section": "app", "desc": "Use Android private/public storage", "key": "android.private_storage", - "options": {"False": "Public", "True": "Private"} + "options": { + "False": "Public", + "True": "Private" + } }, { "type": "string", @@ -32,7 +188,10 @@ "section": "app", "desc": "Indicate whether the screen should stay on. Don't forget to add the WAKE_LOCK permission if you set this to True", "key": "android.wakelock", - "options": {"False": "Disabled", "True": "Enabled"} + "options": { + "False": "Disabled", + "True": "Enabled" + } }, { "type": "list", @@ -111,7 +270,7 @@ "type": "string", "title": "OUYA Console icon", "section": "app", - "desc": "Filename of OUYA Console icon. It must be a 732x412 png image.\nExample: %(source.dir)s/data/ouya_icon.png", + "desc": "Filename of OUYA Console icon. It must be a 732x412 png image.\nExample: %(source.dir)s/assets/icons/ouya_icon.png", "key": "android.ouya.icon.filename" }, { @@ -264,4 +423,4 @@ "desc": "Copy library instead of making a libpymodules.so", "key": "android.copy_libs" } -] +] \ No newline at end of file diff --git a/designer/data/settings/buildozer_spec_app.json b/designer/tools/settings/buildozer_spec_app.json similarity index 59% rename from designer/data/settings/buildozer_spec_app.json rename to designer/tools/settings/buildozer_spec_app.json index 6b39fba..927e1d6 100644 --- a/designer/data/settings/buildozer_spec_app.json +++ b/designer/tools/settings/buildozer_spec_app.json @@ -28,14 +28,14 @@ "type": "string", "title": "Presplash of the application", "section": "app", - "desc": "Presplash image of the application.\nExample %(source.dir)s/data/logo.png", + "desc": "Presplash image of the application.\nExample %(source.dir)s/assets/icons/logo.png", "key": "presplash.filename" }, { "type": "string", "title": "Icon of the application", "section": "app", - "desc": "Icon of the application.\nExample %(source.dir)s/data/icon.png", + "desc": "Icon of the application.\nExample %(source.dir)s/assets/icons/icon.png", "key": "icon.filename" }, { @@ -48,14 +48,21 @@ "section": "app", "desc": "Application orientation", "key": "orientation", - "options": {"landscape": "Landscape", "portrait": "Portrait", "all": "Auto"} + "options": { + "landscape": "Landscape", + "portrait": "Portrait", + "all": "Auto" + } }, { "type": "bool", "title": "Fullscreen", "section": "app", "desc": "Fullscreen mode", - "values": ["Disabled", "Enabled"], + "values": [ + "Disabled", + "Enabled" + ], "key": "fullscreen" }, { @@ -76,7 +83,13 @@ "desc": "Source files to include (let empty to include all the files)", "key": "source.include_exts", "allow_custom": true, - "items": ["py","png","jpg","kv","atlas"] + "items": [ + "py", + "png", + "jpg", + "kv", + "atlas" + ] }, { "type": "list", @@ -85,7 +98,11 @@ "desc": "Source files to exclude (let empty to not exclude anything)", "key": "source.exclude_exts", "allow_custom": true, - "items": ["rar", "zip", "spec"] + "items": [ + "rar", + "zip", + "spec" + ] }, { "type": "list", @@ -94,7 +111,11 @@ "desc": "List of directory to exclude (let empty to not exclude anything)", "key": "source.exclude_dirs", "allow_custom": true, - "items": ["tests", "test", "bin"] + "items": [ + "tests", + "test", + "bin" + ] }, { "type": "list", @@ -103,7 +124,10 @@ "desc": "List of exclusions using pattern matching", "key": "source.exclude_patterns", "allow_custom": true, - "items": ["license","images/*/*.jpg"] + "items": [ + "license", + "images/*/*.jpg" + ] }, { "type": "list", @@ -112,7 +136,10 @@ "desc": "List of inclusions using pattern matching", "key": "source.include_patterns", "allow_custom": true, - "items": ["assets/*", "images/*.png"] + "items": [ + "assets/*", + "images/*.png" + ] }, { "type": "list", @@ -121,7 +148,10 @@ "desc": "List of services to declare", "key": "services", "allow_custom": true, - "items": ["NAME:ENTRYPOINT_TO_PY", "NAME2:ENTRYPOINT2_TO_PY"] + "items": [ + "NAME:ENTRYPOINT_TO_PY", + "NAME2:ENTRYPOINT2_TO_PY" + ] }, { "type": "title", @@ -158,7 +188,84 @@ "section": "app", "desc": "Application requirements.", "key": "requirements", - "items": ["apsw", "audiostream", "bidi", "boost", "c_igraph", "cherrypy", "cprotobuf", "cymunk", "django", "docutils", "ecdsa", "enum34", "evdev", "ffmpeg", "ffmpeg2", "ffpyplayer", "freetype", "gevent", "greenlet", "harfbuzz", "hostpython", "igraph", "jpeg", "kivent_core", "kivent_cymunk", "kivy", "leveldb", "libevent", "libpq", "libsodium", "libswift", "libtorrent", "libxml2", "libxslt", "libyaml", "lxml", "m2crypto", "midistream", "msgpack", "mysql_connector", "netifaces", "numpy", "opencv", "openssl", "paramiko", "pil", "plyer", "plyvel", "png", "polygon", "protobuf", "psutil", "psycopg2", "pyasn1", "pycrypto", "pygame", "pyjnius", "pylibpd", "pyopenssl", "pyparsing", "pyqrcode", "python", "pyyaml", "sdl", "setuptools", "six", "sqlalchemy", "sqlite3", "storm", "swift", "thrift", "twisted", "txws", "wokkel", "zeroconf", "zope"], + "items": [ + "apsw", + "audiostream", + "bidi", + "boost", + "c_igraph", + "cherrypy", + "cprotobuf", + "cymunk", + "django", + "docutils", + "ecdsa", + "enum34", + "evdev", + "ffmpeg", + "ffmpeg2", + "ffpyplayer", + "freetype", + "gevent", + "greenlet", + "harfbuzz", + "hostpython", + "igraph", + "jpeg", + "kivent_core", + "kivent_cymunk", + "kivy", + "leveldb", + "libevent", + "libpq", + "libsodium", + "libswift", + "libtorrent", + "libxml2", + "libxslt", + "libyaml", + "lxml", + "m2crypto", + "midistream", + "msgpack", + "mysql_connector", + "netifaces", + "numpy", + "opencv", + "openssl", + "paramiko", + "pil", + "plyer", + "plyvel", + "png", + "polygon", + "protobuf", + "psutil", + "psycopg2", + "pyasn1", + "pycrypto", + "pygame", + "pyjnius", + "pylibpd", + "pyopenssl", + "pyparsing", + "pyqrcode", + "python", + "pyyaml", + "sdl", + "setuptools", + "six", + "sqlalchemy", + "sqlite3", + "storm", + "swift", + "thrift", + "twisted", + "txws", + "wokkel", + "zeroconf", + "zope" + ], "allow_custom": true }, { @@ -168,6 +275,40 @@ "desc": "Application garden requirements.", "key": "garden_requirements", "allow_custom": true, - "items": ["androidtabs", "cefpython", "collider", "datetimepicker", "ddd", "desktopvideoplayer", "filebrowser", "filechooserthumbview", "gauge", "geartick", "graph", "knob", "magnet", "mapview", "modernmenu", "moretransitions", "navigationdrawer", "pagecurl", "particlesystem", "pizza", "progressspinner", "qrcode", "recycleview", "roulette", "roulettescroll", "scrolllabel", "segment", "smaa", "stiffscroll", "texturestack", "tickline", "tickmarker", "timeline"] + "items": [ + "androidtabs", + "cefpython", + "collider", + "datetimepicker", + "ddd", + "desktopvideoplayer", + "filebrowser", + "filechooserthumbview", + "gauge", + "geartick", + "graph", + "knob", + "magnet", + "mapview", + "modernmenu", + "moretransitions", + "navigationdrawer", + "pagecurl", + "particlesystem", + "pizza", + "progressspinner", + "qrcode", + "recycleview", + "roulette", + "roulettescroll", + "scrolllabel", + "segment", + "smaa", + "stiffscroll", + "texturestack", + "tickline", + "tickmarker", + "timeline" + ] } ] \ No newline at end of file diff --git a/designer/data/settings/buildozer_spec_buildozer.json b/designer/tools/settings/buildozer_spec_buildozer.json similarity index 100% rename from designer/data/settings/buildozer_spec_buildozer.json rename to designer/tools/settings/buildozer_spec_buildozer.json diff --git a/designer/data/settings/buildozer_spec_ios.json b/designer/tools/settings/buildozer_spec_ios.json similarity index 100% rename from designer/data/settings/buildozer_spec_ios.json rename to designer/tools/settings/buildozer_spec_ios.json diff --git a/designer/data/settings/designer_settings.json b/designer/tools/settings/designer_settings.json similarity index 100% rename from designer/data/settings/designer_settings.json rename to designer/tools/settings/designer_settings.json diff --git a/designer/data/settings/hanga_settings.json b/designer/tools/settings/hanga_settings.json similarity index 100% rename from designer/data/settings/hanga_settings.json rename to designer/tools/settings/hanga_settings.json diff --git a/designer/data/settings/proj_settings_proj_prop.json b/designer/tools/settings/proj_settings_proj_prop.json similarity index 100% rename from designer/data/settings/proj_settings_proj_prop.json rename to designer/tools/settings/proj_settings_proj_prop.json diff --git a/designer/data/settings/proj_settings_shell_env.json b/designer/tools/settings/proj_settings_shell_env.json similarity index 100% rename from designer/data/settings/proj_settings_shell_env.json rename to designer/tools/settings/proj_settings_shell_env.json diff --git a/designer/data/settings/shortcuts.json b/designer/tools/settings/shortcuts.json similarity index 100% rename from designer/data/settings/shortcuts.json rename to designer/tools/settings/shortcuts.json diff --git a/designer/data/new_templates/template_actionbar_carousel_kv b/designer/tools/templates/template_actionbar_carousel_kv similarity index 97% rename from designer/data/new_templates/template_actionbar_carousel_kv rename to designer/tools/templates/template_actionbar_carousel_kv index 4163c28..cbdc4bc 100644 --- a/designer/data/new_templates/template_actionbar_carousel_kv +++ b/designer/tools/templates/template_actionbar_carousel_kv @@ -6,7 +6,7 @@ #to your needs ActionBar: id: _action - size_hint: 1,0.1 + size_hint: 1, 0.1 pos_hint: {'top':1} ActionView: use_separator: True diff --git a/designer/data/new_templates/template_actionbar_carousel_py b/designer/tools/templates/template_actionbar_carousel_py similarity index 98% rename from designer/data/new_templates/template_actionbar_carousel_py rename to designer/tools/templates/template_actionbar_carousel_py index 684bd11..c90b162 100644 --- a/designer/data/new_templates/template_actionbar_carousel_py +++ b/designer/tools/templates/template_actionbar_carousel_py @@ -1,9 +1,7 @@ -from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.properties import ObjectProperty -from kivy.lang import Builder from kivy.uix import actionbar - +from kivy.app import App class RootWidget(FloatLayout): '''This is the class representing your root widget. diff --git a/designer/data/new_templates/template_actionbar_kv b/designer/tools/templates/template_actionbar_kv similarity index 96% rename from designer/data/new_templates/template_actionbar_kv rename to designer/tools/templates/template_actionbar_kv index 2c91aae..42065f6 100644 --- a/designer/data/new_templates/template_actionbar_kv +++ b/designer/tools/templates/template_actionbar_kv @@ -13,7 +13,7 @@ text: 'File' mode: 'spinner' size_hint_x: None - width: 90 + width: '90dp' ActionButton: text: 'New' ActionButton: diff --git a/designer/data/new_templates/template_actionbar_py b/designer/tools/templates/template_actionbar_py similarity index 100% rename from designer/data/new_templates/template_actionbar_py rename to designer/tools/templates/template_actionbar_py diff --git a/designer/data/new_templates/template_boxlayout_kv b/designer/tools/templates/template_boxlayout_kv similarity index 100% rename from designer/data/new_templates/template_boxlayout_kv rename to designer/tools/templates/template_boxlayout_kv diff --git a/designer/data/new_templates/template_boxlayout_py b/designer/tools/templates/template_boxlayout_py similarity index 100% rename from designer/data/new_templates/template_boxlayout_py rename to designer/tools/templates/template_boxlayout_py diff --git a/designer/data/new_templates/template_floatlayout_kv b/designer/tools/templates/template_floatlayout_kv similarity index 100% rename from designer/data/new_templates/template_floatlayout_kv rename to designer/tools/templates/template_floatlayout_kv diff --git a/designer/data/new_templates/template_floatlayout_py b/designer/tools/templates/template_floatlayout_py similarity index 100% rename from designer/data/new_templates/template_floatlayout_py rename to designer/tools/templates/template_floatlayout_py diff --git a/designer/data/new_templates/template_screen_manager_actionbar_kv b/designer/tools/templates/template_screen_manager_actionbar_kv similarity index 96% rename from designer/data/new_templates/template_screen_manager_actionbar_kv rename to designer/tools/templates/template_screen_manager_actionbar_kv index e49a07a..1adc154 100644 --- a/designer/data/new_templates/template_screen_manager_actionbar_kv +++ b/designer/tools/templates/template_screen_manager_actionbar_kv @@ -3,7 +3,7 @@ manager: manager ActionBar: id: _action - size_hint: 1,0.1 + size_hint: 1, 0.1 pos_hint: {'top':1} ActionView: use_separator: True diff --git a/designer/data/new_templates/template_screen_manager_actionbar_py b/designer/tools/templates/template_screen_manager_actionbar_py similarity index 87% rename from designer/data/new_templates/template_screen_manager_actionbar_py rename to designer/tools/templates/template_screen_manager_actionbar_py index 774a30a..cd36986 100644 --- a/designer/data/new_templates/template_screen_manager_actionbar_py +++ b/designer/tools/templates/template_screen_manager_actionbar_py @@ -1,10 +1,7 @@ from kivy.app import App -from kivy.uix.screenmanager import ScreenManager, Screen -from kivy.properties import NumericProperty, ObjectProperty -from kivy.lang import Builder +from kivy.properties import ObjectProperty from kivy.uix.floatlayout import FloatLayout - class RootWidget(FloatLayout): '''This the class representing your root widget. By default it is inherited from ScreenManager, diff --git a/designer/data/new_templates/template_screen_manager_kv b/designer/tools/templates/template_screen_manager_kv similarity index 100% rename from designer/data/new_templates/template_screen_manager_kv rename to designer/tools/templates/template_screen_manager_kv diff --git a/designer/data/new_templates/template_screen_manager_py b/designer/tools/templates/template_screen_manager_py similarity index 100% rename from designer/data/new_templates/template_screen_manager_py rename to designer/tools/templates/template_screen_manager_py diff --git a/designer/data/new_templates/template_tabbed_panel_kv b/designer/tools/templates/template_tabbed_panel_kv similarity index 100% rename from designer/data/new_templates/template_tabbed_panel_kv rename to designer/tools/templates/template_tabbed_panel_kv diff --git a/designer/data/new_templates/template_tabbed_panel_py b/designer/tools/templates/template_tabbed_panel_py similarity index 100% rename from designer/data/new_templates/template_tabbed_panel_py rename to designer/tools/templates/template_tabbed_panel_py diff --git a/designer/data/new_templates/template_textinput_scrollview_kv b/designer/tools/templates/template_textinput_scrollview_kv similarity index 100% rename from designer/data/new_templates/template_textinput_scrollview_kv rename to designer/tools/templates/template_textinput_scrollview_kv diff --git a/designer/data/new_templates/template_textinput_scrollview_py b/designer/tools/templates/template_textinput_scrollview_py similarity index 100% rename from designer/data/new_templates/template_textinput_scrollview_py rename to designer/tools/templates/template_textinput_scrollview_py diff --git a/designer/uix/action_items.py b/designer/uix/action_items.py index 3d1709d..30dc74c 100644 --- a/designer/uix/action_items.py +++ b/designer/uix/action_items.py @@ -16,9 +16,11 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + : info: info - background_normal: 'atlas://data/images/defaulttheme/action_bar' + background_normal: theme_atlas('action_bar') size_hint_x: None width: designer_action_width canvas.before: @@ -57,7 +59,7 @@ btn_layout: btn_layout _label: _label checkbox: checkbox - background_normal: 'atlas://data/images/defaulttheme/action_bar' + background_normal: theme_atlas('action_bar') size_hint: None, None height: '49sp' width: designer_action_width @@ -102,7 +104,7 @@ size_hint: 1, None width: designer_action_width height: '48sp' - background_normal: 'atlas://data/images/defaulttheme/action_bar' + background_normal: theme_atlas('action_bar') text_size: (self.width - sp(24), self.size[1]) valign: 'middle' diff --git a/designer/uix/code_find.py b/designer/uix/code_find.py index 819a5a8..77a9778 100644 --- a/designer/uix/code_find.py +++ b/designer/uix/code_find.py @@ -6,6 +6,8 @@ Builder.load_string(""" +#: import theme_atlas utils.utils.theme_atlas + : txt_query: txt_query size_hint_y: None @@ -63,7 +65,7 @@ size_hint_x: None width: '100dp' Image: - source: 'atlas://data/images/defaulttheme/close' + source: theme_atlas('close') size_hint: None, None size: designer_height, designer_height on_touch_down: if self.collide_point(*args[1].pos): root.dispatch('on_close') diff --git a/designer/utils/toolbox_widgets.py b/designer/utils/toolbox_widgets.py index fa2e27b..e412908 100644 --- a/designer/utils/toolbox_widgets.py +++ b/designer/utils/toolbox_widgets.py @@ -6,11 +6,13 @@ #: The third field represents initial widget values #: The fourth field are extra parameters used to display the widget while dragging +from utils.utils import icons + toolbox_widgets = [ ('Button', 'base', {'text': 'Button'}, {'size_hint': (None, None), 'size': ('150sp', '40sp')}), ('Carousel', 'base'), ('CheckBox', 'base', {'active': True}, {'size_hint': (None, None), 'size': ('50sp', '50sp')}), - ('Image', 'base', {'source': 'data/logo/kivy-icon-64.png'}, {'size_hint': (None, None), 'size': ('64dp', '64dp')}), + ('Image', 'base', {'source': icons('kivy-icon-64')}, {'size_hint': (None, None), 'size': ('64dp', '64dp')}), ('Label', 'base', {'text': 'Label'}, {'size_hint': (None, None), 'size': ('150sp', '40sp')}), ('ProgressBar', 'base', {}, {'size_hint': (None, None), 'size': ('150sp', '40sp')}), ('Screen', 'base'), diff --git a/designer/utils/utils.py b/designer/utils/utils.py index 382d835..138db82 100644 --- a/designer/utils/utils.py +++ b/designer/utils/utils.py @@ -32,6 +32,24 @@ def get_path(local): def icons(name, ext='.png'): return get_path(f'assets/icons/{name}{ext}') +def template_images(name, ext='.png'): + return get_path(f'assets/template_images/{name}{ext}') + +def template_file(name, ext=''): + return get_path(f'tools/templates/{name}{ext}') + +def config_path(name='', ext='.ini'): + if name != '': + return get_path(f'tools/{name}{ext}') + else: + return get_path('tools') + +def profiles_path(name='', ext='.ini'): + if name != '': + return get_path(f'tools/profiles/{name}{ext}') + else: + return get_path('tools/profiles') + def utils_source_rst(name, ext='.rst'): return get_path(f'utils/source/{name}{ext}') @@ -41,9 +59,6 @@ def utils_source_img(name, ext='.png'): class constants: DIR_NEW_TEMPLATE = 'new_templates' NEW_PROJECT_DIR_NAME_PREFIX = 'designer_' - NEW_TEMPLATE_IMAGE_PATH = os.path.join(DIR_NEW_TEMPLATE, 'images') - DIR_PROFILES = 'profiles' - DESIGNER_CONFIG_FILE_NAME = 'config.ini' class FakeSettingList(EventDispatcher): '''Fake Kivy Setting to use SettingList @@ -165,7 +180,7 @@ def get_kd_dir(): def get_kd_data_dir(): '''Return kivy designer's data path ''' - return os.path.join(get_kd_dir(), 'data') + return os.path.join(get_kd_dir(), 'tools') def show_alert(title, msg, width=500, height=200):