From ffdbc01e7f2590dba0c7d0a993294adb05ef3224 Mon Sep 17 00:00:00 2001 From: Aditya Mehra Date: Sun, 6 Jun 2021 16:21:33 +0530 Subject: [PATCH] Implement a GUI only workflow for pairing skill --- __init__.py | 230 ++++++------------ locale/en-us/TestKeyword.voc | 1 - locale/en-us/backend.dialog | 1 - locale/en-us/backend.voc | 17 -- locale/en-us/choice-failed.dialog | 1 - locale/en-us/choose_backend.dialog | 1 - locale/en-us/confirm-gui.dialog | 1 - locale/en-us/confirm.dialog | 1 - locale/en-us/confirm_backend.dialog | 1 - locale/en-us/confirm_stt.dialog | 1 - locale/en-us/no_backend.voc | 31 --- locale/en-us/no_understand.dialog | 1 - locale/en-us/select_backend.dialog | 1 - locale/en-us/select_backend_gui.dialog | 1 + locale/en-us/select_mycroft_stt.dialog | 1 - locale/en-us/select_mycroft_stt_gui.dialog | 1 + ...alog => selected_local_backend_gui.dialog} | 2 +- ...og => selected_mycroft_backend_gui.dialog} | 2 +- pairing.gif | Bin 107312 -> 0 bytes ui/BackendLocal.qml | 12 +- ui/BackendLocalConfig.qml | 101 ++++---- ui/BackendLocalRestart.qml | 10 +- ui/BackendMycroft.qml | 12 +- ui/BackendSelect.qml | 20 +- ui/InstallingSkills.qml | 12 +- ui/LoadingScreen.qml | 15 +- ui/{pairing.qml => Pairing.qml} | 13 +- ui/PairingDone.qml | 95 ++++++++ ui/{pairing_start.qml => PairingStart.qml} | 13 +- ui/ProcessLoader.qml | 26 ++ ui/{status.qml => Status.qml} | 11 +- ui/pairing_done.qml | 90 ------- 32 files changed, 311 insertions(+), 414 deletions(-) delete mode 100644 locale/en-us/TestKeyword.voc delete mode 100644 locale/en-us/backend.dialog delete mode 100644 locale/en-us/backend.voc delete mode 100644 locale/en-us/choice-failed.dialog delete mode 100644 locale/en-us/choose_backend.dialog delete mode 100644 locale/en-us/confirm-gui.dialog delete mode 100644 locale/en-us/confirm.dialog delete mode 100644 locale/en-us/confirm_backend.dialog delete mode 100644 locale/en-us/confirm_stt.dialog delete mode 100644 locale/en-us/no_backend.voc delete mode 100644 locale/en-us/no_understand.dialog delete mode 100644 locale/en-us/select_backend.dialog create mode 100644 locale/en-us/select_backend_gui.dialog delete mode 100644 locale/en-us/select_mycroft_stt.dialog create mode 100644 locale/en-us/select_mycroft_stt_gui.dialog rename locale/en-us/{selected_local_backend.dialog => selected_local_backend_gui.dialog} (59%) rename locale/en-us/{selected_mycroft_backend.dialog => selected_mycroft_backend_gui.dialog} (55%) delete mode 100644 pairing.gif rename ui/{pairing.qml => Pairing.qml} (94%) create mode 100644 ui/PairingDone.qml rename ui/{pairing_start.qml => PairingStart.qml} (93%) create mode 100644 ui/ProcessLoader.qml rename ui/{status.qml => Status.qml} (93%) delete mode 100644 ui/pairing_done.qml diff --git a/__init__.py b/__init__.py index 1ad250a..7e58a7b 100755 --- a/__init__.py +++ b/__init__.py @@ -28,6 +28,7 @@ from ovos_utils.configuration import update_mycroft_config from ovos_utils.skills import blacklist_skill, make_priority_skill +from ovos_utils.system import system_reboot from ovos_workshop.skills.decorators import killable_intent, killable_event from ovos_workshop.skills import OVOSSkill from ovos_local_backend.configuration import CONFIGURATION @@ -53,9 +54,7 @@ def __init__(self): self.nato_dict = None self.mycroft_ready = False self.num_failed_codes = 0 - self.pairing_process_state = 0 - self.in_pairing = False # specific vendors can override this if "pairing_url" not in self.settings: self.settings["pairing_url"] = "home.mycroft.ai" @@ -63,13 +62,8 @@ def __init__(self): self.settings["color"] = "#FF0000" self.initial_stt = self.config_core["stt"]["module"] - self.in_confirmation = False - self.selection_done = False - self.confirm_selection_done = False - self.confirm_stt_selection_done = False - self.confirmation_counter = 0 self.using_mock = self.config_core["server"][ - "url"] != "https://api.mycroft.ai" + "url"] != "https://api.mycroft.ai" # startup def initialize(self): @@ -110,7 +104,9 @@ def initialize(self): # show loading screen once wifi setup ends if not connected(): - self.bus.once("ovos.wifi.setup.completed", self.show_loading_screen) + self.bus.once( + "ovos.wifi.setup.completed", + self.show_loading_screen) elif paired: # show loading screen right away # device has been paired and there is internet, @@ -120,7 +116,7 @@ def initialize(self): self.show_loading_screen() def show_loading_screen(self, message=None): - self.gui.show_page("LoadingScreen.qml", override_animations=True) + self.handle_display_manager("LoadingScreen") def send_stop_signal(self, stop_event=None, should_sleep=True): # stop the previous event execution @@ -134,12 +130,9 @@ def send_stop_signal(self, stop_event=None, should_sleep=True): self.bus.emit(Message('mycroft.mic.mute')) sleep(0.5) # if TTS had not yet started self.bus.emit(Message("mycroft.audio.speech.stop")) - sleep(1.5) # the silence from muting should make STT stop recording + sleep(1.5) self.bus.emit(Message('mycroft.mic.unmute')) - def handle_intent_aborted(self): - self.log.info("killing all dialogs") - def not_paired(self, message): if not message.data.get('quiet', True): self.speak_dialog("pairing.not.paired") @@ -149,29 +142,19 @@ def handle_mycroft_ready(self, message): """Catch info that skills are loaded and ready.""" self.mycroft_ready = True self.reload_skill = True - self.gui.remove_page("InstallingSkills.qml") - #don't do a full release because of bug with using self.gui.clear() in self.gui.release() - #self.gui.release() - #call mycroft.gui.screen.close directly over messagebus + self.gui.remove_page("ProcessLoader.qml") self.bus.emit(Message("mycroft.gui.screen.close", {"skill_id": self.skill_id})) - #Tell OVOS-GUI to finally collect resting screens - self.bus.emit(Message("ovos.pairing.set.backend", {"backend": "mycroft"})) + # Tell OVOS-GUI to finally collect resting screens + self.bus.emit( + Message( + "ovos.pairing.set.backend", { + "backend": "mycroft"})) self.bus.emit(Message("ovos.pairing.process.completed")) - # voice events - def converse(self, utterances, lang=None): - if self.in_pairing: - # capture all utterances until paired - # prompts from this skill are handled with get_response - return True - return False - @intent_handler(IntentBuilder("PairingIntent") .require("PairingKeyword").require("DeviceKeyword")) def handle_pairing(self, message=None): - self.in_pairing = True - if self.initial_stt == "mycroft": # STT not available, temporarily set chromium plugin self.change_to_plugin() @@ -183,8 +166,7 @@ def handle_pairing(self, message=None): # Already paired! Just tell user self.speak_dialog("already.paired") elif not self.data: - self.pairing_process_state = 1 - self.in_confirmation = True + self.log.info("Being Called Here") self.handle_backend_menu() # config handling @@ -210,7 +192,16 @@ def change_to_plugin(self): time.sleep(5) # allow STT to reload def change_to_kaldi(self): - self.log.info("not implemented") + config = { + "stt": { + "module": "vosk_streaming_stt_plug", + "vosk_streaming_stt_plug": { + "model": "http://alphacephei.com/.....zip" + } + } + } + update_mycroft_config(config) + self.bus.emit(Message("configuration.patch", {"config": config})) def enable_selene(self): self.change_to_default() @@ -248,102 +239,47 @@ def enable_mock(self): self.using_mock = True self.bus.emit(Message("configuration.patch", {"config": config})) - # Pairing GUI events - #### Backend selection menu - @killable_event(msg="pairing.backend.menu.stop") - def handle_backend_menu(self, wait=0): - self.gui.show_page("BackendSelect.qml", override_idle=True, - override_animations=True) - self.send_stop_signal("pairing.confirmation.stop") - sleep(int(wait)) - self.speak_dialog("select_backend", wait=True) - self.speak_dialog("backend", wait=True) - sleep(1) - answer = self.get_response("choose_backend", num_retries=0) - if answer: - self.log.info("ANSWER: " + answer) - if self.voc_match(answer, "no_backend"): - self.bus.emit(Message("mycroft.device.set.backend", - {"backend": "local"})) - return - elif self.voc_match(answer, "backend"): - self.bus.emit(Message("mycroft.device.set.backend", - {"backend": "selene"})) - return - else: - self.speak_dialog("no_understand", wait=True) + def handle_display_manager(self, state): + self.gui["state"] = state + self.gui.show_page( + "ProcessLoader.qml", + override_idle=True, + override_animations=True) - sleep(1) # time for abort to kick in - # (answer will be None and return before this is killed) - self.handle_backend_menu(wait=15) + # Pairing GUI events + # Backend selection menu + def handle_backend_menu(self): + self.handle_display_manager("BackendSelect") + self.speak_dialog("select_backend_gui") def handle_backend_selected_event(self, message): - self.send_stop_signal("pairing.backend.menu.stop", should_sleep=False) - self.in_confirmation = False - self.confirmation_counter = 0 - self.selection_done = True - self.pairing_process_state = 2 + self.bus.emit(Message("mycroft.audio.speech.stop")) + time.sleep(2) self.handle_backend_confirmation(message.data["backend"]) def handle_return_event(self, message): - self.send_stop_signal("pairing.confirmation.stop", should_sleep=False) - page = message.data["page"] - self.in_confirmation = False - self.selection_done = False - self.confirmation_counter = 0 + page = message.data.get("page", "") if page == "selene": - self.gui.remove_page("BackendMycroft.qml") - else: - self.gui.remove_page("BackendLocal.qml") - self.handle_backend_menu() + self.bus.emit(Message("mycroft.audio.speech.stop")) + time.sleep(1) + self.handle_backend_menu() - ### Backend confirmation - @killable_event(msg="pairing.confirmation.stop", - callback=handle_intent_aborted) - def handle_backend_confirmation(self, selection): - self.log.info("SELECTED: " + selection) - self.gui.remove_page("BackendSelect.qml") - if selection == "local": - self.gui.show_page("BackendLocal.qml", override_idle=True, - override_animations=True) else: - self.gui.show_page("BackendMycroft.qml", override_idle=True, - override_animations=True) + self.bus.emit(Message("mycroft.audio.speech.stop")) + time.sleep(1) + self.handle_backend_menu() + # Backend confirmation + def handle_backend_confirmation(self, selection): if selection == "selene": - self.speak_dialog("selected_mycroft_backend", wait=True) - # NOTE response might be None - answer = self.ask_yesno("confirm_backend", - {"backend": "mycroft"}) - if answer == "yes": - self.bus.emit(Message("mycroft.device.confirm.backend", - {"backend": "selene"})) - return - elif answer == "no": - self.bus.emit(Message("mycroft.return.select.backend", - {"page": "local"})) - return + self.handle_display_manager("BackendMycroft") + self.speak_dialog("selected_mycroft_backend_gui") + elif selection == "local": - self.speak_dialog("selected_local_backend", wait=True) - # NOTE response might be None - answer = self.ask_yesno("confirm_backend", - {"backend": "local"}) - if answer == "yes": - self.bus.emit(Message("mycroft.device.confirm.backend", - {"backend": "local"})) - return - if answer == "no": - self.bus.emit(Message("mycroft.return.select.backend", - {"page": "selene"})) - return - sleep(5) # time for abort to kick in - # (answer will be None and return before this is killed) - self.handle_backend_confirmation(selection) + self.handle_display_manager("BackendLocal") + self.speak_dialog("selected_local_backend_gui") def handle_backend_confirmation_event(self, message): - self.send_stop_signal("pairing.confirmation.stop") - self.in_confirmation = False - self.confirmation_counter = 0 if message.data["backend"] == "local": self.select_local() else: @@ -351,9 +287,6 @@ def handle_backend_confirmation_event(self, message): def select_selene(self): # selene selected - - self.gui.remove_page("BackendMycroft.qml") - self.confirmation_counter = 0 if self.using_mock: self.enable_selene() self.data = None @@ -364,34 +297,20 @@ def select_selene(self): if check_remote_pairing(ignore_errors=True): # Already paired! Just tell user self.speak_dialog("already.paired") - self.in_pairing = False elif not self.data: # continue to normal pairing process self.kickoff_pairing() def select_local(self, message=None): # mock backend selected - self.data = None self.handle_stt_menu() - ### STT selection - @killable_event(msg="pairing.stt.menu.stop", - callback=handle_intent_aborted) + # STT selection def handle_stt_menu(self): - self.gui.remove_page("BackendLocal.qml") - self.gui.show_page("BackendLocalConfig.qml", override_idle=True, - override_animations=True) + self.handle_display_manager("BackendLocalConfig") self.send_stop_signal("pairing.confirmation.stop") - - self.speak_dialog("select_mycroft_stt") - if self.ask_yesno("confirm_stt", {"stt": "google"}) == "yes": - self.select_stt(selection="google") - elif self.ask_yesno("confirm_stt", {"stt": "kaldi"}) == "yes": - self.select_stt(selection="kaldi") - else: - self.speak_dialog("choice-failed") - self.handle_stt_menu() + self.speak_dialog("select_mycroft_stt_gui") def select_stt(self, selection=None): self.send_stop_signal("pairing.stt.menu.stop") @@ -399,15 +318,15 @@ def select_stt(self, selection=None): self.change_to_plugin() elif selection == "kaldi": self.change_to_kaldi() - self.confirmation_counter = 0 - self.gui.remove_page("BackendLocalConfig.qml") - self.gui.show_page("BackendLocalRestart.qml", override_idle=True, - override_animations=True) - self.bus.emit(Message("ovos.pairing.set.backend", {"backend": "local"})) + self.handle_display_manager("BackendLocalRestart") + self.bus.emit( + Message( + "ovos.pairing.set.backend", { + "backend": "local"})) if not self.using_mock: self.enable_mock() - # TODO restart - self.in_pairing = False + time.sleep(5) + system_reboot() # pairing def kickoff_pairing(self): @@ -545,7 +464,6 @@ def end_pairing(self, error_dialog): self.data = None self.count = -1 - self.in_pairing = False def abort_and_restart(self, quiet=False): # restart pairing sequence @@ -587,40 +505,42 @@ def show_pairing_start(self): # Make sure code stays on display self.enclosure.deactivate_mouth_events() self.enclosure.mouth_text(self.settings["pairing_url"] + " ") - self.gui.show_page("pairing_start.qml", override_idle=True, - override_animations=True) + self.handle_display_manager("PairingStart") + # self.gui.show_page("pairing_start.qml", override_idle=True, + # override_animations=True) def show_pairing(self, code): - self.gui.remove_page("pairing_start.qml") + # self.gui.remove_page("pairing_start.qml") self.enclosure.deactivate_mouth_events() self.enclosure.mouth_text(code) self.gui["txtcolor"] = self.settings["color"] self.gui["backendurl"] = self.settings["pairing_url"] self.gui["code"] = code - self.gui.show_page("pairing.qml", override_idle=True, - override_animations=True) + self.handle_display_manager("Pairing") + # self.gui.show_page("pairing.qml", override_idle=True, + # override_animations=True) def show_pairing_success(self): self.enclosure.activate_mouth_events() # clears the display - self.gui.remove_page("pairing.qml") + # self.gui.remove_page("pairing.qml") self.gui["status"] = "Success" self.gui["label"] = "Device Paired" self.gui["bgColor"] = "#40DBB0" - self.gui.show_page("status.qml", override_idle=True, - override_animations=True) + # self.gui.show_page("status.qml", override_idle=True, + # override_animations=True) + self.handle_display_manager("Status") # allow GUI to linger around for a bit sleep(5) - self.gui.remove_page("status.qml") - self.gui.show_page("InstallingSkills.qml", override_idle=True, override_animations=True) + # self.gui.remove_page("status.qml") + self.handle_display_manager("InstallingSkills") def show_pairing_fail(self): self.gui.release() self.gui["status"] = "Failed" self.gui["label"] = "Pairing Failed" self.gui["bgColor"] = "#FF0000" - self.gui.show_page("status.qml", override_animations=True) + self.handle_display_manager("Status") sleep(5) - self.gui.remove_page("status.qml") def shutdown(self): with self.activator_lock: diff --git a/locale/en-us/TestKeyword.voc b/locale/en-us/TestKeyword.voc deleted file mode 100644 index 30d74d2..0000000 --- a/locale/en-us/TestKeyword.voc +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file diff --git a/locale/en-us/backend.dialog b/locale/en-us/backend.dialog deleted file mode 100644 index 21075de..0000000 --- a/locale/en-us/backend.dialog +++ /dev/null @@ -1 +0,0 @@ -The backend provides services used by mycroft core to manage your device \ No newline at end of file diff --git a/locale/en-us/backend.voc b/locale/en-us/backend.voc deleted file mode 100644 index 3818cb4..0000000 --- a/locale/en-us/backend.voc +++ /dev/null @@ -1,17 +0,0 @@ -option 1 -option one -first option -cloud -mycroft -backend -back-end -back end -online -selene -pair -pairing -minecraft -microsoft -mike roft -microsoft back-end -microsoft backend \ No newline at end of file diff --git a/locale/en-us/choice-failed.dialog b/locale/en-us/choice-failed.dialog deleted file mode 100644 index fc56fe8..0000000 --- a/locale/en-us/choice-failed.dialog +++ /dev/null @@ -1 +0,0 @@ -I failed to get a valid response, please tap an option on the screen to continue diff --git a/locale/en-us/choose_backend.dialog b/locale/en-us/choose_backend.dialog deleted file mode 100644 index 3d563ee..0000000 --- a/locale/en-us/choose_backend.dialog +++ /dev/null @@ -1 +0,0 @@ -do you want to pair with mycroft backend or run locally \ No newline at end of file diff --git a/locale/en-us/confirm-gui.dialog b/locale/en-us/confirm-gui.dialog deleted file mode 100644 index 5e32424..0000000 --- a/locale/en-us/confirm-gui.dialog +++ /dev/null @@ -1 +0,0 @@ -did i understand correctly that you want to use {backend} backend diff --git a/locale/en-us/confirm.dialog b/locale/en-us/confirm.dialog deleted file mode 100644 index da55539..0000000 --- a/locale/en-us/confirm.dialog +++ /dev/null @@ -1 +0,0 @@ -did i understand correctly that you want to use {backend} backend \ No newline at end of file diff --git a/locale/en-us/confirm_backend.dialog b/locale/en-us/confirm_backend.dialog deleted file mode 100644 index c5b7d5b..0000000 --- a/locale/en-us/confirm_backend.dialog +++ /dev/null @@ -1 +0,0 @@ -Did i understand correctly you want to use the {backend} backend diff --git a/locale/en-us/confirm_stt.dialog b/locale/en-us/confirm_stt.dialog deleted file mode 100644 index c5a544c..0000000 --- a/locale/en-us/confirm_stt.dialog +++ /dev/null @@ -1 +0,0 @@ -should I confirm you want to use the {stt} speech to text engine diff --git a/locale/en-us/no_backend.voc b/locale/en-us/no_backend.voc deleted file mode 100644 index ceff765..0000000 --- a/locale/en-us/no_backend.voc +++ /dev/null @@ -1,31 +0,0 @@ -option 2 -option two -second option -local -locally -no backend -no back-end -no back end -offline -device -no pair -no pairing -do not pair -don't pair -don't use backend -not use backend -no use backend -don't use back end -not use back end -no use back end -don't use back-end -not use back-end -no use back-end -not mycroft -not microsoft -not mike roft -no microsoft -no mike roft -no minecraft -not minecraft -privacy \ No newline at end of file diff --git a/locale/en-us/no_understand.dialog b/locale/en-us/no_understand.dialog deleted file mode 100644 index f7b2727..0000000 --- a/locale/en-us/no_understand.dialog +++ /dev/null @@ -1 +0,0 @@ -I am not sure what backend i should use \ No newline at end of file diff --git a/locale/en-us/select_backend.dialog b/locale/en-us/select_backend.dialog deleted file mode 100644 index e9c3080..0000000 --- a/locale/en-us/select_backend.dialog +++ /dev/null @@ -1 +0,0 @@ -Open voice OS supports multiple backends \ No newline at end of file diff --git a/locale/en-us/select_backend_gui.dialog b/locale/en-us/select_backend_gui.dialog new file mode 100644 index 0000000..2ca7643 --- /dev/null +++ b/locale/en-us/select_backend_gui.dialog @@ -0,0 +1 @@ +Open voice OS supports multiple backends, The backend provides services used by mycroft core to manage your device, you can choose to pair with the mycroft backend or run locally, select an option on the screen to learn more about the backend diff --git a/locale/en-us/select_mycroft_stt.dialog b/locale/en-us/select_mycroft_stt.dialog deleted file mode 100644 index b476c20..0000000 --- a/locale/en-us/select_mycroft_stt.dialog +++ /dev/null @@ -1 +0,0 @@ -local backend requires you to select and configure either an online or on device speech to text engine diff --git a/locale/en-us/select_mycroft_stt_gui.dialog b/locale/en-us/select_mycroft_stt_gui.dialog new file mode 100644 index 0000000..27622f4 --- /dev/null +++ b/locale/en-us/select_mycroft_stt_gui.dialog @@ -0,0 +1 @@ +local backend requires you to select and configure either an online or on device speech to text engine, select an option on the screen to continue diff --git a/locale/en-us/selected_local_backend.dialog b/locale/en-us/selected_local_backend_gui.dialog similarity index 59% rename from locale/en-us/selected_local_backend.dialog rename to locale/en-us/selected_local_backend_gui.dialog index 113aa99..cbe69bd 100644 --- a/locale/en-us/selected_local_backend.dialog +++ b/locale/en-us/selected_local_backend_gui.dialog @@ -1 +1 @@ -The local backend is meant for personal usage and does not require pairing, it allows you to run fully offline without a web interface. +The local backend is meant for personal usage and does not require pairing, it allows you to run fully offline without a web interface. To select the local backend, press the confirm button displayed on the screen diff --git a/locale/en-us/selected_mycroft_backend.dialog b/locale/en-us/selected_mycroft_backend_gui.dialog similarity index 55% rename from locale/en-us/selected_mycroft_backend.dialog rename to locale/en-us/selected_mycroft_backend_gui.dialog index 85df9fa..cab28c4 100644 --- a/locale/en-us/selected_mycroft_backend.dialog +++ b/locale/en-us/selected_mycroft_backend_gui.dialog @@ -1 +1 @@ -Selene is the official backend provided by Mycroft AI. This requires pairing and provides a web interface for skill settings and device configuration. +Selene is the official backend provided by Mycroft AI. This requires pairing and provides a web interface for skill settings and device configuration. To select the mycroft backend, press the confirm button displayed on the screen. diff --git a/pairing.gif b/pairing.gif deleted file mode 100644 index 27dec55845f349b4f342b92aefd3dd23d0fa6440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107312 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 aHLrj6E$^;3Kz3+iN=!HIIkuetmA?T26@b0~ diff --git a/ui/BackendLocal.qml b/ui/BackendLocal.qml index 18997e3..26c0ec6 100644 --- a/ui/BackendLocal.qml +++ b/ui/BackendLocal.qml @@ -22,14 +22,14 @@ import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.core 2.0 as PlasmaCore import Mycroft 1.0 as Mycroft -Mycroft.Delegate { +Item { id: backendView anchors.fill: parent - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) property bool horizontalMode: backendView.width > backendView.height ? 1 :0 ListModel { diff --git a/ui/BackendLocalConfig.qml b/ui/BackendLocalConfig.qml index 79cb62b..00d60f7 100644 --- a/ui/BackendLocalConfig.qml +++ b/ui/BackendLocalConfig.qml @@ -22,71 +22,65 @@ import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.core 2.0 as PlasmaCore import Mycroft 1.0 as Mycroft -Mycroft.Delegate { +Item { id: backendView anchors.fill: parent - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 + property bool horizontalMode: backendView.width > backendView.height ? 1 :0 Rectangle { - color: "#000000" + color: Qt.rgba(0, 0, 0, 1) anchors.fill: parent - - Item { - id: topArea - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.leftMargin: Kirigami.Units.largeSpacing - anchors.rightMargin: Kirigami.Units.largeSpacing - height: Kirigami.Units.gridUnit * 2 - - Kirigami.Heading { - id: brightnessSettingPageTextHeading - level: 1 - wrapMode: Text.WordWrap - anchors.centerIn: parent - font.bold: true - text: "Configure Your STT Engine" - color: "#ff0000" - } - } + anchors.margins: Mycroft.Units.gridUnit * 2 + + GridLayout { + anchors.fill: parent + z: 1 + columns: horizontalMode ? 2 : 1 + columnSpacing: Kirigami.Units.largeSpacing + Layout.alignment: horizontalMode ? Qt.AlignVCenter : Qt.AlignTop - Item { - anchors.top: topArea.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.margins: Kirigami.Units.largeSpacing - ColumnLayout { - anchors.fill: parent - spacing: Kirigami.Units.smallSpacing - + Layout.maximumWidth: horizontalMode ? parent.width / 2 : parent.width + Layout.preferredHeight: horizontalMode ? parent.height : parent.height / 2 + Layout.alignment: horizontalMode ? Qt.AlignVCenter : Qt.AlignTop + Label { - id: warnText + id: configureSttEngineText Layout.fillWidth: true wrapMode: Text.WordWrap - font.pixelSize: width * 0.05 - text: "Speech-To-Text (STT) is the process of converting audio of spoken words into strings of text. Select and configure Online or On-Device engines" + font.bold: true + font.pixelSize: backendView.width * 0.05 + color: "#ff0000" + text: "Configure Your STT Engine" } - - Item { + + Label { + id: warnText Layout.fillWidth: true - Layout.preferredHeight: Kirigami.Units.largeSpacing + Layout.alignment: Qt.AlignTop + wrapMode: Text.WordWrap + font.pixelSize: backendView.width * 0.04 + color: "white" + text: "Speech-To-Text (STT) is the process of converting audio of spoken words into strings of text" } - + } + + ColumnLayout { + Layout.fillWidth: true + Layout.fillHeight: true + Button { id: bt1 Layout.fillWidth: true Layout.fillHeight: true - + background: Rectangle { - color: bt1.down ? "#14415E" : "#34a4eb" + color: bt1.down ? "#14415E" : "#34a4fc" + border.width: 6 + border.color: Qt.darker("#34a4fc", 1.2) + radius: 10 } - + contentItem: Kirigami.Heading { width: parent.width height: parent.height @@ -97,21 +91,24 @@ Mycroft.Delegate { level: 3 text: "Google STT" } - + onClicked: { triggerGuiEvent("mycroft.device.confirm.stt", {"engine": "google"}) } } - + Button { id: bt2 Layout.fillWidth: true Layout.fillHeight: true - + background: Rectangle { - color: bt2.down ? "#BC4729" : "#eb5934" + color: bt2.down ? "#BC4729" : "#ee5534" + border.width: 6 + border.color: Qt.darker("#ee5534", 1.2) + radius: 10 } - + contentItem: Kirigami.Heading { width: parent.width height: parent.height @@ -122,7 +119,7 @@ Mycroft.Delegate { level: 3 text: "Kaldi STT" } - + onClicked: { triggerGuiEvent("mycroft.device.confirm.stt", {"engine": "kaldi"}) diff --git a/ui/BackendLocalRestart.qml b/ui/BackendLocalRestart.qml index a0bf425..0ff2d67 100644 --- a/ui/BackendLocalRestart.qml +++ b/ui/BackendLocalRestart.qml @@ -6,12 +6,12 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -Mycroft.Delegate { +Item { id: root - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 Rectangle { anchors.fill: parent diff --git a/ui/BackendMycroft.qml b/ui/BackendMycroft.qml index cc5c309..8f890d1 100644 --- a/ui/BackendMycroft.qml +++ b/ui/BackendMycroft.qml @@ -22,14 +22,14 @@ import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.core 2.0 as PlasmaCore import Mycroft 1.0 as Mycroft -Mycroft.Delegate { +Item { id: backendView anchors.fill: parent - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) property bool horizontalMode: root.width > root.height ? 1 :0 ListModel { diff --git a/ui/BackendSelect.qml b/ui/BackendSelect.qml index 92df784..40117c6 100644 --- a/ui/BackendSelect.qml +++ b/ui/BackendSelect.qml @@ -22,14 +22,14 @@ import org.kde.kirigami 2.5 as Kirigami import org.kde.plasma.core 2.0 as PlasmaCore import Mycroft 1.0 as Mycroft -Mycroft.Delegate { +Item { id: backendView anchors.fill: parent - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) property bool horizontalMode: backendView.width > backendView.height ? 1 :0 Rectangle { @@ -80,7 +80,9 @@ Mycroft.Delegate { Layout.fillHeight: true background: Rectangle { - color: bt1.down ? "#14415E" : "#22a7f0" + color: bt1.down ? "#14415E" : "#34a4fc" + border.width: 6 + border.color: Qt.darker("#34a4fc", 1.2) radius: 10 } @@ -107,7 +109,9 @@ Mycroft.Delegate { Layout.fillHeight: true background: Rectangle { - color: bt2.down ? "#BC4729" : "#eb4934" + color: bt2.down ? "#BC4729" : "#ee5534" + border.width: 6 + border.color: Qt.darker("#ee5534", 1.2) radius: 10 } diff --git a/ui/InstallingSkills.qml b/ui/InstallingSkills.qml index 94e5fb4..cc19630 100644 --- a/ui/InstallingSkills.qml +++ b/ui/InstallingSkills.qml @@ -6,13 +6,13 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -Mycroft.Delegate { +Item { id: root - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) Rectangle { anchors.fill: parent diff --git a/ui/LoadingScreen.qml b/ui/LoadingScreen.qml index 0ded55a..c64e09e 100644 --- a/ui/LoadingScreen.qml +++ b/ui/LoadingScreen.qml @@ -6,14 +6,13 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -Mycroft.Delegate { - id: mainLoaderView - - property var pageType: sessionData.page_type - leftPadding: 0 - rightPadding: 0 - bottomPadding: 0 - topPadding: 0 +Item { + id: loadingScreen + anchors.fill: parent +// leftPadding: 0 +// rightPadding: 0 +// bottomPadding: 0 +// topPadding: 0 Rectangle { anchors.fill: parent diff --git a/ui/pairing.qml b/ui/Pairing.qml similarity index 94% rename from ui/pairing.qml rename to ui/Pairing.qml index 30e097b..45525c9 100644 --- a/ui/pairing.qml +++ b/ui/Pairing.qml @@ -22,16 +22,17 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft -Mycroft.Delegate { +Item { id: root property var code: sessionData.code property var txtcolor: sessionData.txtcolor property var backendurl: sessionData.backendurl - leftPadding: 0 - rightPadding: 0 - bottomPadding: 0 - topPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) +// leftPadding: 0 +// rightPadding: 0 +// bottomPadding: 0 +// topPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) + anchors.fill: parent property bool horizontalMode: root.width > root.height ? 1 :0 Rectangle { diff --git a/ui/PairingDone.qml b/ui/PairingDone.qml new file mode 100644 index 0000000..e7bb020 --- /dev/null +++ b/ui/PairingDone.qml @@ -0,0 +1,95 @@ +/* + * Copyright 2018 by Aditya Mehra + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft + +Item { + id: root + anchors.fill: parent + + Rectangle { + color: "black" + anchors.fill: parent + + ColumnLayout { + anchors.fill: parent + + Kirigami.Heading { + id: hey + Layout.fillWidth: true + Layout.alignment: Qt.AlignLeft + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: 70 + visible: !content.visible + color: "#22a7f0" + text: "Hey Mycroft" + } + Kirigami.Heading { + id: example1 + Layout.fillWidth: true + Layout.alignment: Qt.AlignLeft + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: 55 + visible: !content.visible + text: "What's the\nweather?" + } + Kirigami.Heading { + id: example2 + Layout.fillWidth: true + Layout.alignment: Qt.AlignLeft + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: 55 + visible: !content.visible + text: "Tell me about\nAbraham Lincoln" + } + Kirigami.Heading { + id: example3 + Layout.fillWidth: true + Layout.alignment: Qt.AlignLeft + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: 55 + visible: !content.visible + text: "Play the News" + } + } + } +} diff --git a/ui/pairing_start.qml b/ui/PairingStart.qml similarity index 93% rename from ui/pairing_start.qml rename to ui/PairingStart.qml index 7f0fc55..42ac251 100644 --- a/ui/pairing_start.qml +++ b/ui/PairingStart.qml @@ -23,13 +23,14 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -Mycroft.Delegate { +Item { id: root - leftPadding: 0 - rightPadding: 0 - bottomPadding: 0 - topPadding: 0 - skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) + anchors.fill: parent +// leftPadding: 0 +// rightPadding: 0 +// bottomPadding: 0 +// topPadding: 0 +// skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) Rectangle { color: "#000000" diff --git a/ui/ProcessLoader.qml b/ui/ProcessLoader.qml new file mode 100644 index 0000000..4e65861 --- /dev/null +++ b/ui/ProcessLoader.qml @@ -0,0 +1,26 @@ +import QtQuick.Layouts 1.12 +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import org.kde.kirigami 2.1 as Kirigami +import Mycroft 1.0 as Mycroft + +Mycroft.Delegate { + id: mainLoaderView + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + skillBackgroundColorOverlay: Qt.rgba(0, 0, 0, 1) + + property var pageToLoad: sessionData.state + + contentItem: Loader { + id: rootLoader + } + + onPageToLoadChanged: { + console.log(sessionData.state) + rootLoader.setSource(sessionData.state + ".qml") + } +} + diff --git a/ui/status.qml b/ui/Status.qml similarity index 93% rename from ui/status.qml rename to ui/Status.qml index ba0bd9f..1959175 100644 --- a/ui/status.qml +++ b/ui/Status.qml @@ -6,13 +6,14 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -Mycroft.Delegate { +Item { id: root property var success: sessionData.status - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 + anchors.fill: parent +// leftPadding: 0 +// rightPadding: 0 +// topPadding: 0 +// bottomPadding: 0 function checkstatus(status) { if(status == "Success") { diff --git a/ui/pairing_done.qml b/ui/pairing_done.qml deleted file mode 100644 index 5ad6b90..0000000 --- a/ui/pairing_done.qml +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2018 by Aditya Mehra - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -import QtQuick.Layouts 1.4 -import QtQuick 2.4 -import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami - -import Mycroft 1.0 as Mycroft - -Mycroft.Delegate { - id: root - property var code: sessionData.code - - ColumnLayout { - anchors.fill: parent - - Kirigami.Heading { - id: hey - Layout.fillWidth: true - Layout.alignment: Qt.AlignLeft - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: 70 - visible: !content.visible - color: "#22a7f0" - text: "Hey Mycroft" - } - Kirigami.Heading { - id: example1 - Layout.fillWidth: true - Layout.alignment: Qt.AlignLeft - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: 55 - visible: !content.visible - text: "What's the\nweather?" - } - Kirigami.Heading { - id: example2 - Layout.fillWidth: true - Layout.alignment: Qt.AlignLeft - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: 55 - visible: !content.visible - text: "Tell me about\nAbraham Lincoln" - } - Kirigami.Heading { - id: example3 - Layout.fillWidth: true - Layout.alignment: Qt.AlignLeft - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: 55 - visible: !content.visible - text: "Play the News" - } - } -}