PluginAssistantEric.py

Sun, 23 Apr 2017 17:27:23 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 23 Apr 2017 17:27:23 +0200
changeset 138
e5f860436ab9
parent 136
5cfe53b474a9
child 140
a0ea7418d433
permissions
-rw-r--r--

Removed the outdated check for the correct eric version.

2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
135
08cb4f36ad47 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 132
diff changeset
3 # Copyright (c) 2008 - 2017 Detlev Offenbach <detlev@die-offenbachs.de>
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Eric assistant plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
93
9e323efeffcf python2Compatible flag added.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 89
diff changeset
10 from __future__ import unicode_literals
76
add31149e0b1 Python 2 compatibility for Eric 5
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 71
diff changeset
11
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
14 from PyQt5.QtCore import QObject, QTranslator, QCoreApplication
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui.E5Application import e5App
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import Preferences
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from AssistantEric.Assistant import AcsAPIs, AcsProject
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 # Start-Of-Header
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 name = "Assistant Eric Plugin"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 autoactivate = True
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 deactivateable = True
138
e5f860436ab9 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
27 version = "3.2.3"
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 className = "AssistantEricPlugin"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 packageName = "AssistantEric"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 shortDescription = "Alternative autocompletion and calltips provider."
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
31 longDescription = \
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
32 """This plugin implements an alternative autocompletion and""" \
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """ calltips provider."""
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 needsRestart = True
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 pyqtApi = 2
93
9e323efeffcf python2Compatible flag added.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 89
diff changeset
36 python2Compatible = True
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 # End-Of-Header
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 error = ""
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 assistantEricPluginObject = None
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
43
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 def createAutoCompletionPage(configDlg):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Module function to create the autocompletion configuration page.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
48 @param configDlg reference to the configuration dialog
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @return reference to the configuration page
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 global assistantEricPluginObject
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 from AssistantEric.ConfigurationPages.AutoCompletionEricPage \
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 import AutoCompletionEricPage
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 page = AutoCompletionEricPage(assistantEricPluginObject)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 return page
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
57
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def createCallTipsPage(configDlg):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Module function to create the calltips configuration page.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
62 @param configDlg reference to the configuration dialog
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @return reference to the configuration page
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 global assistantEricPluginObject
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 from AssistantEric.ConfigurationPages.CallTipsEricPage \
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 import CallTipsEricPage
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 page = CallTipsEricPage(assistantEricPluginObject)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return page
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
71
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def getConfigData():
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 Module function returning data as required by the configuration dialog.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @return dictionary containing the relevant data
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 return {
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
79 "ericAutoCompletionPage": [
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
80 QCoreApplication.translate("AssistantEricPlugin", "Eric"),
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
81 os.path.join("AssistantEric", "ConfigurationPages",
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
82 "eric.png"),
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
83 createAutoCompletionPage, "editorAutocompletionPage", None],
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
84 "ericCallTipsPage": [
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
85 QCoreApplication.translate("AssistantEricPlugin", "Eric"),
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
86 os.path.join("AssistantEric", "ConfigurationPages",
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
87 "eric.png"),
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
88 createCallTipsPage, "editorCalltipsPage", None],
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 }
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
91
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def prepareUninstall():
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Module function to prepare for an uninstallation.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
96 Preferences.Prefs.settings.remove(AssistantEricPlugin.PreferencesKey)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
98
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 class AssistantEricPlugin(QObject):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 Class implementing the Eric assistant plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
103 PreferencesKey = "AssistantEric"
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
104
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 def __init__(self, ui):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 Constructor
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 @param ui reference to the user interface object (UI.UserInterface)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 QObject.__init__(self, ui)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.__ui = ui
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.__initialize()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.__defaults = {
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
116 "AutoCompletionEnabled": False,
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
117 "AutoCompletionSource": AcsAPIs | AcsProject,
54
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
118 "AutoCompletionFollowHierarchy": False,
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
119 "CalltipsEnabled": False,
33
4d89fb0f8b0e Changed a settings variable from int to bool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
120 "CallTipsContextShown": True,
54
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
121 "CallTipsFollowHierarchy": False,
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 }
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self.__translator = None
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 self.__loadTranslator()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 def __initialize(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 Private slot to (re)initialize the plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.__object = None
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def __checkQSql(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Private method to perform some checks on QSql.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @return flag indicating QSql is ok (boolean)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 global error
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 try:
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
142 from PyQt5.QtSql import QSqlDatabase
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 except ImportError:
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
144 error = self.tr("PyQt5.QtSql is not available.")
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 return False
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 drivers = QSqlDatabase.drivers()
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
148 if "QSQLITE" not in drivers:
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
149 error = self.tr("The SQLite database driver is not available.")
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 return False
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
151
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
152 return True
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 def activate(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 Public method to activate this plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @return tuple of None and activation status (boolean)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 global error
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 error = "" # clear previous error
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
138
e5f860436ab9 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
163 if not self.__checkQSql():
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 return None, False
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 global assistantEricPluginObject
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 assistantEricPluginObject = self
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 from AssistantEric.Assistant import Assistant
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
171 self.__object = Assistant(self, self.__ui)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 e5App().registerPluginObject("AssistantEric", self.__object)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.__object.activate()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 return None, True
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 def deactivate(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 Public method to deactivate this plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 e5App().unregisterPluginObject("AssistantEric")
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.__object.deactivate()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.__initialize()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 def __loadTranslator(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 Private method to load the translation file.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 if self.__ui is not None:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 loc = self.__ui.getLocale()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 if loc and loc != "C":
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
195 locale_dir = os.path.join(
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
196 os.path.dirname(__file__), "AssistantEric", "i18n")
17
8f33c2f5bfbd Did some string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
197 translation = "assistant_{0}".format(loc)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 translator = QTranslator(None)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 loaded = translator.load(translation, locale_dir)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 if loaded:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 self.__translator = translator
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 e5App().installTranslator(self.__translator)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 else:
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
204 print("Warning: translation file '{0}' could not be"
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
205 " loaded.".format(translation))
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 print("Using default.")
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 def getPreferences(self, key):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 Public method to retrieve the various refactoring settings.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 @param key the key of the value to get
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 @return the requested refactoring setting
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 """
54
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
215 if key in ["AutoCompletionEnabled", "AutoCompletionFollowHierarchy",
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
216 "CalltipsEnabled", "CallTipsContextShown",
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
217 "CallTipsFollowHierarchy"]:
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 return Preferences.toBool(Preferences.Prefs.settings.value(
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
219 self.PreferencesKey + "/" + key, self.__defaults[key]))
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 else:
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
221 return int(Preferences.Prefs.settings.value(
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
222 self.PreferencesKey + "/" + key, self.__defaults[key]))
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 def setPreferences(self, key, value):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 Public method to store the various refactoring settings.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 @param key the key of the setting to be set (string)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 @param value the value to be set
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 """
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
231 Preferences.Prefs.settings.setValue(
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
232 self.PreferencesKey + "/" + key, value)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 if key in ["AutoCompletionEnabled", "CalltipsEnabled"]:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 self.__object.setEnabled(key, value)
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
236
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
237 #
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
238 # eflag: noqa = M801

eric ide

mercurial