OllamaInterface/OllamaWidget.py

changeset 24
f4d5108e90fe
parent 21
22245a10b118
child 34
2b3ed778af64
diff -r d807aa8c1bd8 -r f4d5108e90fe OllamaInterface/OllamaWidget.py
--- a/OllamaInterface/OllamaWidget.py	Tue Sep 03 15:51:28 2024 +0200
+++ b/OllamaInterface/OllamaWidget.py	Tue Sep 03 17:06:05 2024 +0200
@@ -693,7 +693,8 @@
         )
         self.__modelMenu.addSeparator()
         self.__modelMenu.addAction(
-            self.tr("Show Model Library"), self.__showModelLibrary
+            self.tr("Show Model Library"),
+            lambda: self.__showOllamaUrl("OllamaModelLibraryUrl"),
         )
         self.__modelMenu.addSeparator()
         self.__pullModelAct = self.__modelMenu.addAction(
@@ -720,6 +721,24 @@
         )
 
         ###################################################################
+        ## Menu with 'ollama' URL related actions
+        ###################################################################
+
+        self.__urlsMenu = QMenu(self.tr("ollama URLs"))
+        self.__urlsMenu.addAction(
+            self.tr("Model Library"),
+            lambda: self.__showOllamaUrl("OllamaModelLibraryUrl"),
+        )
+        self.__urlsMenu.addAction(
+            self.tr("Download"),
+            lambda: self.__showOllamaUrl("OllamaDownloadUrl"),
+        )
+        self.__urlsMenu.addAction(
+            self.tr("Blog"),
+            lambda: self.__showOllamaUrl("OllamaBlogUrl"),
+        )
+
+        ###################################################################
         ## Main menu
         ###################################################################
 
@@ -730,6 +749,8 @@
         self.__ollamaMenu.addSeparator()
         self.__ollamaMenu.addMenu(self.__localServerMenu)
         self.__ollamaMenu.addSeparator()
+        self.__ollamaMenu.addMenu(self.__urlsMenu)
+        self.__ollamaMenu.addSeparator()
         self.__ollamaMenu.addAction(self.tr("Configure..."), self.__ollamaConfigure)
 
         self.__ollamaMenu.aboutToShow.connect(self.__aboutToShowOllamaMenu)
@@ -978,15 +999,6 @@
             )
 
     @pyqtSlot()
-    def __showModelLibrary(self):
-        """
-        Private slot to open the 'ollama' model librayr web site.
-        """
-        urlStr = self.__plugin.getPreferences("OllamaModelLibraryUrl")
-        url = QUrl.fromUserInput(urlStr)
-        QDesktopServices.openUrl(url)
-
-    @pyqtSlot()
     def __pullModel(self):
         """
         Private slot to download a model from the 'ollama' model library.
@@ -1079,6 +1091,17 @@
                         ).format(modelName),
                     )
 
+    def __showOllamaUrl(self, urlKey):
+        """
+        Private method to open an 'ollama' URL given by its configuration key.
+
+        @param urlKey URL configuration key
+        @type str
+        """
+        urlStr = self.__plugin.getPreferences(urlKey)
+        url = QUrl.fromUserInput(urlStr)
+        QDesktopServices.openUrl(url)
+
     @pyqtSlot(str)
     def __handleClientError(self, errMsg):
         """

eric ide

mercurial