Store in preferences if the user wants to hide the message

This commit is contained in:
ChrisTerBeke 2019-09-13 10:45:42 +02:00
parent d9af8bd6b0
commit e8b48a299b

View file

@ -2,7 +2,7 @@
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM import i18nCatalog from UM import i18nCatalog
from UM.Message import Message from UM.Message import Message
from cura.CuraApplication import CuraApplication
I18N_CATALOG = i18nCatalog("cura") I18N_CATALOG = i18nCatalog("cura")
@ -13,16 +13,25 @@ class CloudPrinterDetectedMessage(Message):
# Singleton used to prevent duplicate messages of this type at the same time. # Singleton used to prevent duplicate messages of this type at the same time.
__is_visible = False __is_visible = False
# Store in preferences to hide this message in the future.
_preference_key = "cloud/block_new_printers_popup"
def __init__(self) -> None: def __init__(self) -> None:
super().__init__( super().__init__(
title=I18N_CATALOG.i18nc("@info:title", "New cloud printers found"), title=I18N_CATALOG.i18nc("@info:title", "New cloud printers found"),
text=I18N_CATALOG.i18nc("@info:message", "New printers have been found connected to your account, " text=I18N_CATALOG.i18nc("@info:message", "New printers have been found connected to your account, "
"you can find them in your list of discovered printers."), "you can find them in your list of discovered printers."),
lifetime=10, lifetime=0,
dismissable=True dismissable=True,
option_state=False,
option_text=I18N_CATALOG.i18nc("@info:option_text", "Do not show this message again")
) )
self.optionToggled.connect(self._onDontAskMeAgain)
CuraApplication.getInstance().getPreferences().addPreference(self._preference_key, False)
def show(self) -> None: def show(self) -> None:
if CuraApplication.getInstance().getPreferences().getValue(self._preference_key):
return
if CloudPrinterDetectedMessage.__is_visible: if CloudPrinterDetectedMessage.__is_visible:
return return
super().show() super().show()
@ -31,3 +40,6 @@ class CloudPrinterDetectedMessage(Message):
def hide(self, send_signal = True) -> None: def hide(self, send_signal = True) -> None:
super().hide(send_signal) super().hide(send_signal)
CloudPrinterDetectedMessage.__is_visible = False CloudPrinterDetectedMessage.__is_visible = False
def _onDontAskMeAgain(self, checked: bool) -> None:
CuraApplication.getInstance().getPreferences().setValue(self._preference_key, checked)