- Mar 23, 2023
-
-
segfault authored
It doesn't contain any useful information.
-
segfault authored
To ensure that the result of an Activate/Deactivate call is either the expected state or an error (which nudges users to send a bug report).
-
segfault authored
-
segfault authored
Changes of the IsActive and IsEnabled properties were signaled with the same PropertiesChanged signal, causing the UI to briefly display an "inconsisteng state" error. We now signal changes of IsEnabled, IsActive and HasData all with the same signal.
-
segfault authored
-
segfault authored
Move the sync call after the mount call to ensure that we still raise a MountException first which is what the tests check for.
-
segfault authored
-
segfault authored
Activation errors are now encoded by IsEnabled being true and IsActive being false.
-
segfault authored
-
segfault authored
The methods should be idempotent now, so instead of refreshing the state at the beginning (which is quite costly) and raising an error, just do the activation/deactivation again.
-
segfault authored
-
segfault authored
The semantic is similar to systemd units: * IsEnabled means the feature is configured to be activated on boot * IsActive means it's currently active
-
segfault authored
This required: * Adding a translatable name to the features in the backend * Making the greeter able to translate to the currently selected language via a global gettext function which now lives in config.gettext. This was required because before, all translations were really only done by TranslatableWindow which translates all its labels automatically - but it translates the full label string, which doesn't work when the label is composed of multiple strings which must be translated separately, like the feature names we want to include in the message (because we can't make translators translate the complete error message for all possible combinations of features).
-
segfault authored
And use the subtitle of the HdyActionRow.
-
segfault authored
And remove the GtkExpander. It still doesn't look good, the space between the first and second row is too big but we can't change that unless we stop using HdyActionRow.
-
segfault authored
-
segfault authored
Closes #19368
-
segfault authored
It was confusing for users that the error message said "Failed to activate the Persistent Storage" even though most of the Persistent Storage features worked as expected.
-
segfault authored
-
segfault authored
-
segfault authored
-
segfault authored
-
segfault authored
For consistency with GNOME (e.g. GNOME Settings) and other Tails apps (e.g. TCA) we also use the unicode character … instead of three period characters in button names.
-
segfault authored
-
segfault authored
-
segfault authored
-
segfault authored
Adding an expander to the row above makes it more clear that the row with the Delete Data button belongs to the row above.
-
segfault authored
refs #8447
-
segfault authored
Closes #19291
-
segfault authored
Clicking the button when the feature was inactive caused the app to crash.
-
segfault authored
Else the tps backend fails to (re-)start when there is inconsistent state.
-
segfault authored
-
segfault authored
... without running the on-deactivated hooks in between. That might happen when a feature that's deactivated and activated again is in inconsistent state. The only hooks which did not behave as expected when run twice were the add-gnome-bookmarks hooks, which added the bookmarks twice. They now only add the bookmarks when the bookmarks don't exist yet.
-
segfault authored
-
segfault authored
-
segfault authored
-
segfault authored
This reverts commit 136a7030, which was a workaround for one case where the bad handling of inconsistent state in the refresh_is_active method lead to a bug. Commit "tps: Fix activation of feature with inconsistent state" is a more general solution, which makes the workaround unnecessary: refresh_is_active will not set IsActive for any features whose bindings are not active, so it's a no-op after a call to Unlock (unless a symlink feature is enabled in the config file and there are still valid symlinks, in which case it's correct that the feature is treated as active).
-
segfault authored
We used to set Feature.IsActive property only based on whether the feature is in the config file. That meant that we set it to True even if the mounts were not all active, which led to errors when activating a feature which was in inconsistent state (the feature being in the config file but not all mounts being active). This should also avoid (potential) issues where after a method call that failed or was cancelled, a feature would have IsActive set to True (because it's in the config file) but the mounts not being active, causing the feature to be displayed as active in the UI but the user's data not actually being stored. We now set IsActive to False in that case. Closes #19376
-
intrigeri authored
Persistent Storage design docs Closes #19223 See merge request tails/tails!1035
-