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): """