Tue, 10 Dec 2024 15:48:48 +0100
Updated copyright for 2025.
11
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
67
3c2bcbf7eeaf
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11
diff
changeset
|
3 | # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
11
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog showing the progress of a model pull action.. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt6.QtCore import Qt, pyqtSignal, pyqtSlot |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from PyQt6.QtWidgets import ( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | QAbstractButton, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | QDialog, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | QDialogButtonBox, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | QProgressBar, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | QTreeWidgetItem, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | ) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from eric7 import Globals |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | from .Ui_OllamaPullProgressDialog import Ui_OllamaPullProgressDialog |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | class OllamaPullProgressBar(QProgressBar): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Class implementing a progress bar allowing values outside the standard range. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | def __init__(self, parent=None): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Constructor |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param parent reference to the parent widget (defaults to None) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @type QWidget (optional) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | super().__init__(parent) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | self.__maximum = 100 |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__minimum = 0 |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.__value = 0 |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | def maximum(self): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | Public method to get the maximum value. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | @return maximum value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | @rtype int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | return self.__maximum |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | def setMaximum(self, value): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | Public method to set the maximum value. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | @param value new maximum value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @type int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | if value != self.__maximum: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.__maximum = value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.setValue(self.__value) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | def value(self): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | Public method to get the current value. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | @return current value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @rtype int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | return self.__value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | def setValue(self, value): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | Public method to set the current value. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | @param value new value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | @type int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | if value != self.__value: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | self.__value = value |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | super().setValue(self.__value * 100 // self.__maximum) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | class OllamaPullProgressDialog(QDialog, Ui_OllamaPullProgressDialog): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | Class implementing a dialog showing the progress of a model pull action. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | @signal abortPull() emitted to abort the current model pull operation |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | abortPull = pyqtSignal() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | def __init__(self, parent=None): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | Constructor |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @param parent reference to the parent widget (defaults to None) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | @type QWidget (optional) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | super().__init__(parent) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self.setupUi(self) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | self.header.clear() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self.__progressBarItems = {} |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.setFinished(True) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | @pyqtSlot(QAbstractButton) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | def on_buttonBox_clicked(self, button): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | Private slot handling a button of the button box being clicked. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | @param button reference to the clicked button |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | @type QAbstractButton |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self.abortPull.emit() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | self.close() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | def closeEvent(self, evt): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | Protected method to handle a close event. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | @param evt reference to the close event object |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | @type QCloseEvent |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | if not self.__finished: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | evt.ignore() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | def setModel(self, model): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | Public method to show the model name in the header. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | @param model model name |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | @type str |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.header.setText( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | self.tr("<p>Installing model <b>{0}</b>.</p>").format(model) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | ) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | def clear(self): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | Public method to clear the progress information. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | self.__progressBarItems.clear() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | self.progressList.clear() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | def setStatus(self, status, idStr, total, completed): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | Public method to show the status update. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | @param status status message reported by the 'ollama' server |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | @type str |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | @param idStr ID of the file being pulled or empty |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @type str |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @param total size of the file being pulled or 0 in case of an empty ID |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | @type int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | @param completed downloaded bytes or 0 in case of an empty ID |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | @type int |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.setFinished(False) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | if idStr: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | try: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | itm = self.__progressBarItems[idStr] |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | except KeyError: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | itm = QTreeWidgetItem(self.progressList, [status, "", ""]) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | itm.setTextAlignment(2, Qt.AlignmentFlag.AlignCenter) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | self.progressList.resizeColumnToContents(0) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | bar = OllamaPullProgressBar() |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | bar.setMaximum(total) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.progressList.setItemWidget(itm, 1, bar) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.__progressBarItems[idStr] = itm |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | if completed == total: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | itm.setText(2, Globals.dataString(total)) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | else: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | itm.setText( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | 2, |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | self.tr("{0} / {1}", "completed / total").format( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | Globals.dataString(completed), Globals.dataString(total) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | ), |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | ) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | self.progressList.itemWidget(itm, 1).setValue(completed) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | else: |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | itm = QTreeWidgetItem(self.progressList, [status]) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | itm.setFirstColumnSpanned(True) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | if status == "success": |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | self.setFinished(True) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | def showError(self, errMsg): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | Public method to show an error message reported by the server. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | @param errMsg error message |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | @type str |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | itm = QTreeWidgetItem(self.progressList, [self.tr("Error: {0}").format(errMsg)]) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | itm.setFirstColumnSpanned(True) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | def setFinished(self, finished): |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | Public method to set the finished state. |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | @param finished flag indicating the finished state |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | @type bool |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | """ |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | self.__finished = finished |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | finished |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | ) |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled( |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | not finished |
3641ea6b55d5
Implemented the 'Install Model' menu action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | ) |