PluginAiOllama.py

Thu, 08 Aug 2024 18:33:49 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 08 Aug 2024 18:33:49 +0200
changeset 7
eb1dec15b2f0
parent 5
6e8af43d537d
child 8
3118d16e526e
permissions
-rw-r--r--

Implemented a menu, dialog and actions to start a local 'ollama' server with the capability to monitor its log output.

1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the ollama Interface plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
10 import os
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
11
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
12 from PyQt6.QtCore import QObject, Qt, QTranslator, pyqtSignal
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
13 from PyQt6.QtGui import QKeySequence
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
14
5
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
15 from eric7 import Globals, Preferences
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
16 from eric7.EricGui import EricPixmapCache
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
17 from eric7.EricGui.EricAction import EricAction
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
18 from eric7.EricWidgets.EricApplication import ericApp
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
20 try:
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
21 from eric7.UI.UserInterface import UserInterfaceSide
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
22
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
23 _Side = UserInterfaceSide.Right
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
24 except ImportError:
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
25 # backward compatibility for eric < 24.2
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
26 from eric7.UI.UserInterface import UserInterface
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
27
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
28 _Side = UserInterface.RightSide
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
29
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 # Start-Of-Header
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 __header__ = {
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 "name": "ollama Interface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 "author": "Detlev Offenbach <detlev@die-offenbachs.de>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 "autoactivate": True,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 "deactivateable": True,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 "version": "10.0.0",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37 "className": "PluginOllamaInterface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38 "packageName": "OllamaInterface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 "shortDescription": "Grapgical 'ollama' client for eric-ide.",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 "longDescription": (
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41 "Plug-in implementing an 'ollama' client and interface widgets."
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42 ),
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 "needsRestart": False,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 "pyqtApi": 2,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 }
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46 # End-Of-Header
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 error = "" # noqa: U200
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
50 ollamaInterfacePluginObject = None
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
51
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 def pageCreationFunction(configDlg):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
54 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
55 Function to create the Translator configuration page.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
56
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
57 @param configDlg reference to the configuration dialog
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
58 @type ConfigurationWidget
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
59 @return reference to the configuration page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
60 @rtype TranslatorPage
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
61 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
63 page = None # change this line to create the configuration page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
64 return page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 def getConfigData():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69 Function returning data as required by the configuration dialog.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71 @return dictionary containing the relevant data
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 @rtype dict
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
73 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
74 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 return {
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 "<unique key>": [
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 "<display string>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78 "<pixmap filename>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 pageCreationFunction,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 None,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
81 None,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 ],
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83 }
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86 def prepareUninstall():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 Function to prepare for an un-installation.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 Preferences.getSettings().remove(PluginOllamaInterface.PreferencesKey)
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 def clearPrivateData():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
95 Function to clear the private data of the plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
96 """
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
97 if ollamaInterfacePluginObject is not None:
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
98 widget = ollamaInterfacePluginObject.getWidget()
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
99 if widget is not None:
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
100 widget.clearHistory()
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 class PluginOllamaInterface(QObject):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
104 """
3
ca28466a186d Implemented the ollama client object (not tested yet).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
105 Class implementing the ollama Interface plug-in.
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
106
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
107 @signal preferencesChanged() emitted to signal a change of preferences. This
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
108 signal is simply relayed from the main UI.
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
109 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
110
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
111 PreferencesKey = "Ollama"
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
113 preferencesChanged = pyqtSignal()
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
114
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
115 def __init__(self, ui):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
116 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
117 Constructor
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 @param ui reference to the user interface object
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 @type UI.UserInterface
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122 super().__init__(ui)
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 self.__ui = ui
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
124 self.__initialize()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
125
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
126 self.__defaults = {
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
127 "OllamaScheme": "http",
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
128 "OllamaHost": "localhost",
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
129 "OllamaPort": 11434,
7
eb1dec15b2f0 Implemented a menu, dialog and actions to start a local 'ollama' server with the capability to monitor its log output.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
130 "OllamaLocalPort": 11435, # port for locally started ollama server
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
131 "OllamaHeartbeatInterval": 5, # 5 seconds heartbeat time; 0 = disabled
5
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
132 "StreamingChatResponse": True,
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
133 }
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
134
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
135 self.__translator = None
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
136 self.__loadTranslator()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
137
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
138 def __initialize(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
139 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
140 Private slot to (re)initialize the plugin.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
141 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
142 self.__widget = None
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 def activate(self):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 Public method to activate this plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 @return tuple of None and activation status
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 @rtype bool
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
150 """
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
151 from OllamaInterface.OllamaWidget import OllamaWidget
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
152
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
153 global error, ollamaInterfacePluginObject
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
154 error = "" # clear previous error
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
155 ollamaInterfacePluginObject = self
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
156
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
157 usesDarkPalette = ericApp().usesDarkPalette()
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
158 iconSuffix = "dark" if usesDarkPalette else "light"
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
159
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
160 self.__widget = OllamaWidget(self, fromEric=True)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
161 iconName = (
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
162 "sbOllama96"
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
163 if self.__ui.getLayoutType() == "Sidebars"
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
164 else "ollama22-{0}".format(iconSuffix)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
165 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
166 self.__ui.addSideWidget(
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
167 _Side,
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
168 self.__widget,
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
169 EricPixmapCache.getIcon(os.path.join("OllamaInterface", "icons", iconName)),
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
170 self.tr("ollama AI Interface"),
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
171 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
172
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
173 self.__activateAct = EricAction(
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
174 self.tr("ollama AI Interface"),
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
175 self.tr("ollama AI Interface"),
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
176 QKeySequence(self.tr("Ctrl+Alt+Shift+O")),
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
177 0,
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
178 self,
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
179 "ollama_interface_activate",
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
180 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
181 self.__activateAct.setStatusTip(
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
182 self.tr("Switch the input focus to the ollama AI window.")
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
183 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
184 self.__activateAct.setWhatsThis(
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
185 self.tr(
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
186 """<b>Activate ollama AI Interface</b>"""
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
187 """<p>This switches the input focus to the ollama AI window.</p>"""
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
188 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
189 )
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
190 self.__activateAct.triggered.connect(self.__activateWidget)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
191
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
192 self.__ui.addEricActions([self.__activateAct], "ui")
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
193 menu = self.__ui.getMenu("subwindow")
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
194 menu.addAction(self.__activateAct)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
195
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
196 self.__ui.preferencesChanged.connect(self.preferencesChanged)
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
197
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
198 return None, True
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
199
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
200 def deactivate(self):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
201 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
202 Public method to deactivate this plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
203 """
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
204 self.__ui.preferencesChanged.disconnect(self.preferencesChanged)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
205
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
206 menu = self.__ui.getMenu("subwindow")
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
207 menu.removeAction(self.__activateAct)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
208 self.__ui.removeEricActions([self.__activateAct], "ui")
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
209 self.__ui.removeSideWidget(self.__widget)
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
210
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
211 self.__initialize()
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
212
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
213 def __loadTranslator(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
214 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
215 Private method to load the translation file.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
216 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
217 if self.__ui is not None:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
218 loc = self.__ui.getLocale()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
219 if loc and loc != "C":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
220 locale_dir = os.path.join(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
221 os.path.dirname(__file__), "OllamaInterface", "i18n"
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
222 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
223 translation = "ollama_{0}".format(loc)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
224 translator = QTranslator(None)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
225 loaded = translator.load(translation, locale_dir)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
226 if loaded:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
227 self.__translator = translator
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
228 ericApp().installTranslator(self.__translator)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
229 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
230 print(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
231 "Warning: translation file '{0}' could not be"
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
232 " loaded.".format(translation)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
233 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
234 print("Using default.")
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
235
4
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
236 def getWidget(self):
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
237 """
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
238 Public method to get a reference to the 'ollama' widget.
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
239
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
240 @return reference to the 'ollama' widget
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
241 @rtype OllamaWidget
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
242 """
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
243 return self.__widget
7dd1b9cd3150 Implemented most of the Chat History widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
244
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
245 def __activateWidget(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
246 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
247 Private slot to handle the activation of the pipx interface.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
248 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
249 uiLayoutType = self.__ui.getLayoutType()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
250
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
251 if uiLayoutType == "Toolboxes":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
252 self.__ui.rToolboxDock.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
253 self.__ui.rToolbox.setCurrentWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
254 elif uiLayoutType == "Sidebars":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
255 try:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
256 self.__ui.activateLeftRightSidebarWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
257 except AttributeError:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
258 self.__activateLeftRightSidebarWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
259 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
260 self.__widget.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
261 self.__widget.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
262
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
263 def getPreferences(self, key):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
264 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
265 Public method to retrieve the various settings values.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
266
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
267 @param key the key of the value to get
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
268 @type str
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
269 @return the requested setting value
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
270 @rtype Any
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
271 """
7
eb1dec15b2f0 Implemented a menu, dialog and actions to start a local 'ollama' server with the capability to monitor its log output.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
272 if key in ("OllamaPort", "OllamaLocalPort", "OllamaHeartbeatInterval"):
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
273 return int(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
274 Preferences.Prefs.settings.value(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
275 self.PreferencesKey + "/" + key, self.__defaults[key]
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
276 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
277 )
5
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
278 elif key in ("StreamingChatResponse",):
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
279 return Globals.toBool(
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
280 Preferences.Prefs.settings.value(
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
281 self.PreferencesKey + "/" + key, self.__defaults[key]
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
282 )
6e8af43d537d Implemented the 'chat' functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
283 )
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
284 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
285 return Preferences.Prefs.settings.value(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
286 self.PreferencesKey + "/" + key, self.__defaults[key]
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
287 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
288
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
289 return None
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
290
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
291 def setPreferences(self, key, value):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
292 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
293 Public method to store the various settings values.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
294
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
295 @param key the key of the setting to be set
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
296 @type str
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
297 @param value the value to be set
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
298 @type Any
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
299 """
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
300 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
301
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
302 ############################################################################
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
303 ## Methods for backward compatibility with eric-ide < 24.9
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
304 ############################################################################
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
305
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
306 def __activateLeftRightSidebarWidget(self, widget):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
307 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
308 Private method to activate the given widget in the left or right
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
309 sidebar.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
310
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
311 @param widget reference to the widget to be activated
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
312 @type QWidget
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
313 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
314 # This is for backward compatibility with eric-ide < 24.9.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
315 sidebar = (
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
316 self.__ui.leftSidebar
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
317 if Preferences.getUI("CombinedLeftRightSidebar")
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
318 else self.__ui.rightSidebar
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
319 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
320 sidebar.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
321 sidebar.setCurrentWidget(widget)
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
322
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
323
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
324 #
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
325 # eflag: noqa = M801, U200

eric ide

mercurial