mirror of
https://github.com/yusufipk/dikte.git
synced 2026-09-11 19:06:11 +00:00
Merge pull request #77 from yusufipk/claude/download-start-indicator-4e6835
Say the download started before the first byte arrives
This commit is contained in:
@@ -793,6 +793,7 @@ TR = {
|
|||||||
"İndirildi, sürüm {version}. Vulkan sürümü yoktu, bu sürüm işlemcide çalışıyor.",
|
"İndirildi, sürüm {version}. Vulkan sürümü yoktu, bu sürüm işlemcide çalışıyor.",
|
||||||
"Fetching the model list…": "Model listesi çekiliyor…",
|
"Fetching the model list…": "Model listesi çekiliyor…",
|
||||||
"Downloading…": "İndiriliyor…",
|
"Downloading…": "İndiriliyor…",
|
||||||
|
"Starting the download…": "İndirme başlatılıyor…",
|
||||||
"Downloading: {done} of {total}{share}": "İndiriliyor: {done} / {total}{share}",
|
"Downloading: {done} of {total}{share}": "İndiriliyor: {done} / {total}{share}",
|
||||||
"Download stopped.": "İndirme durduruldu.",
|
"Download stopped.": "İndirme durduruldu.",
|
||||||
"Ready: {name}.": "Hazır: {name}.",
|
"Ready: {name}.": "Hazır: {name}.",
|
||||||
|
|||||||
@@ -701,12 +701,21 @@ class LocalModelBox(QGroupBox):
|
|||||||
def _download(self):
|
def _download(self):
|
||||||
if self._downloading:
|
if self._downloading:
|
||||||
self._stop = True
|
self._stop = True
|
||||||
|
# The flag is only read between blocks, and the wait for the server
|
||||||
|
# to answer is not between blocks: a click during it changes
|
||||||
|
# nothing on screen for as long as the connection takes.
|
||||||
|
self.status.setText(t("Stopping…"))
|
||||||
return
|
return
|
||||||
item = self._current_item()
|
item = self._current_item()
|
||||||
if item is None:
|
if item is None:
|
||||||
return
|
return
|
||||||
self._downloading, self._stop = True, False
|
self._downloading, self._stop = True, False
|
||||||
self._refresh_buttons()
|
self._refresh_buttons()
|
||||||
|
# Opening the connection can take ten or twenty seconds, and the first
|
||||||
|
# byte counts are what the line below would otherwise wait for. Left
|
||||||
|
# saying "not downloaded yet" beside a button that now reads Stop, a
|
||||||
|
# download that started looks like a click that did not register.
|
||||||
|
self.status.setText(t("Starting the download…"))
|
||||||
|
|
||||||
def work():
|
def work():
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -1336,6 +1336,28 @@ class LocalModels(DikteTest):
|
|||||||
self.assertIn("10", box.program_label.text())
|
self.assertIn("10", box.program_label.text())
|
||||||
self.assertIn("20", box.status.text())
|
self.assertIn("20", box.status.text())
|
||||||
|
|
||||||
|
def test_a_download_says_something_before_the_first_byte(self):
|
||||||
|
# Opening the connection takes ten or twenty seconds, and the byte
|
||||||
|
# counts only start after it. The line underneath still read "has not
|
||||||
|
# been downloaded yet" beside a button that now said Stop, so a
|
||||||
|
# download that had started looked like a click that had not landed.
|
||||||
|
box = self.window(cfg.Config()).local_llm
|
||||||
|
box.load("", "ggml-org/SmolLM3-3B-GGUF")
|
||||||
|
box.repo.blockSignals(True)
|
||||||
|
box.repo.setCurrentText("ggml-org/SmolLM3-3B-GGUF")
|
||||||
|
box.repo.blockSignals(False)
|
||||||
|
box._on_listed([("models", [self._item("SmolLM3-Q4_K_M.gguf")],
|
||||||
|
"ggml-org/SmolLM3-3B-GGUF")], "")
|
||||||
|
with mock.patch.object(settings_ui.threading, "Thread"):
|
||||||
|
box._download()
|
||||||
|
self.assertIn("Starting", box.status.text())
|
||||||
|
# And the same again for the stop, which is read between blocks and so
|
||||||
|
# not read at all while the connection is still being opened.
|
||||||
|
with mock.patch.object(settings_ui.threading, "Thread"):
|
||||||
|
box._download()
|
||||||
|
self.assertTrue(box._stop)
|
||||||
|
self.assertIn("Stopping", box.status.text())
|
||||||
|
|
||||||
def test_a_long_model_name_is_not_cut_in_half(self):
|
def test_a_long_model_name_is_not_cut_in_half(self):
|
||||||
# The list under a combo box takes the box's width and elides what does
|
# The list under a combo box takes the box's width and elides what does
|
||||||
# not fit, in the middle: "ggml-org/Qwen....7B-Base-GGUF".
|
# not fit, in the middle: "ggml-org/Qwen....7B-Base-GGUF".
|
||||||
|
|||||||
Reference in New Issue
Block a user