代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/anaconda 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From 4bf4ba6d9a11cfd652ce48cdaea86bd617b6332a Mon Sep 17 00:00:00 2001
From: Vladimir Slavik <vslavik@redhat.com>
Date: Tue, 28 Apr 2020 14:40:53 +0200
Subject: [PATCH] Show warning message when entered size is not valid
Requires also reordering checks such that the identical text test comes later.
Resolves: rhbz#1809573
---
pyanaconda/ui/gui/spokes/custom_storage.py | 31 ++++++++++++++-----
.../gui/spokes/lib/custom_storage_helpers.py | 10 ++++++
2 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/custom_storage.py b/pyanaconda/ui/gui/spokes/custom_storage.py
index 08e62cc40..f3755c48c 100644
--- a/pyanaconda/ui/gui/spokes/custom_storage.py
+++ b/pyanaconda/ui/gui/spokes/custom_storage.py
@@ -63,7 +63,8 @@ from pyanaconda.ui.gui.spokes.lib.custom_storage_helpers import get_size_from_en
get_selected_raid_level, get_default_raid_level, get_container_type, AddDialog,\
ConfirmDeleteDialog, DisksDialog, ContainerDialog, NOTEBOOK_LABEL_PAGE, NOTEBOOK_DETAILS_PAGE,\
NOTEBOOK_LUKS_PAGE, NOTEBOOK_UNEDITABLE_PAGE, NOTEBOOK_INCOMPLETE_PAGE, NEW_CONTAINER_TEXT,\
- CONTAINER_TOOLTIP, get_supported_device_raid_levels, generate_request_description
+ CONTAINER_TOOLTIP, DESIRED_CAPACITY_ERROR, get_supported_device_raid_levels, \
+ generate_request_description
from pyanaconda.ui.gui.spokes.lib.passphrase import PassphraseDialog
from pyanaconda.ui.gui.spokes.lib.refresh import RefreshDialog
from pyanaconda.ui.gui.spokes.lib.summary import ActionSummaryDialog
@@ -1552,23 +1553,37 @@ class CustomPartitioningSpoke(NormalSpoke, StorageCheckHandler):
self._request.device_raid_level = get_selected_raid_level(self._raidLevelCombo)
self.on_value_changed()
- def on_size_changed(self, widget):
+ @timed_action(750, 1500, False)
+ def on_size_changed(self, *args):
+ """Callback for text change in "desired capacity" widget"""
if not self._sizeEntry.get_sensitive():
return
- current_size = Size(self._request.device_size)
- displayed_size = current_size.human_readable(max_places=self.MAX_SIZE_PLACES)
-
- if displayed_size == self._sizeEntry.get_text():
- return
-
size = get_size_from_entry(
self._sizeEntry,
lower_bound=self.MIN_SIZE_ENTRY,
units=SIZE_UNITS_DEFAULT
)
+ # Show warning if the size string is invalid. Field self._error is used as a "flag" that
+ # the last error was the same. This is done because this warning can fire on every change,
+ # so it would keep flickering at the bottom as you type.
if size is None:
+ if self._error != DESIRED_CAPACITY_ERROR:
+ self.clear_errors()
+ self.set_detailed_warning(
+ _("Invalid input. Specify the Desired Capacity in whole or decimal numbers, "
+ "with an appropriate unit."),
+ _(DESIRED_CAPACITY_ERROR)
+ )
+ return
+ elif self._error == DESIRED_CAPACITY_ERROR:
+ self.clear_errors()
+
+ current_size = Size(self._request.device_size)
+ displayed_size = current_size.human_readable(max_places=self.MAX_SIZE_PLACES)
+
+ if displayed_size == self._sizeEntry.get_text():
return
self._request.device_size = size.get_bytes()
diff --git a/pyanaconda/ui/gui/spokes/lib/custom_storage_helpers.py b/pyanaconda/ui/gui/spokes/lib/custom_storage_helpers.py
index f7ae6cfa3..0dffaf0f7 100644
--- a/pyanaconda/ui/gui/spokes/lib/custom_storage_helpers.py
+++ b/pyanaconda/ui/gui/spokes/lib/custom_storage_helpers.py
@@ -49,6 +49,16 @@ CONTAINER_TOOLTIP = N_("Create or select %(container_type)s")
CONTAINER_DIALOG_TITLE = N_("CONFIGURE %(container_type)s")
CONTAINER_DIALOG_TEXT = N_("Please create a name for this %(container_type)s "
"and select at least one disk below.")
+DESIRED_CAPACITY_ERROR = N_(
+ "Specify the Desired Capacity in whole or decimal numbers, with an appropriate unit.\n\n"
+ "Spaces separating digit groups are not allowed. Units consist of a decimal or binary "
+ "prefix, and optionally the letter B. Letter case does not matter for units. The default "
+ "unit used when units are left out is MiB.\n\n"
+ "Examples of valid input:\n"
+ "'100 GiB' = 100 gibibytes\n"
+ "'512m' = 512 megabytes\n"
+ "'123456789' = 123 terabytes and a bit less than a half\n"
+)
ContainerType = namedtuple("ContainerType", ["name", "label"])
--
2.23.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。