eric6/WebBrowser/GreaseMonkey/GreaseMonkeyAddScriptDialog.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7229
53054eb5b15a
equal deleted inserted replaced
6941:f99d60d6b59b 6942:2602857055c5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6
7 """
8 Module implementing a dialog for adding GreaseMonkey scripts..
9 """
10
11 from __future__ import unicode_literals
12
13 import os
14
15 from PyQt5.QtCore import pyqtSlot, QDir, QFile
16 from PyQt5.QtWidgets import QDialog
17
18 from E5Gui import E5MessageBox
19
20 from .Ui_GreaseMonkeyAddScriptDialog import Ui_GreaseMonkeyAddScriptDialog
21
22 import UI.PixmapCache
23
24
25 class GreaseMonkeyAddScriptDialog(QDialog, Ui_GreaseMonkeyAddScriptDialog):
26 """
27 Class implementing a dialog for adding GreaseMonkey scripts..
28 """
29 def __init__(self, manager, script, parent=None):
30 """
31 Constructor
32
33 @param manager reference to the GreaseMonkey manager
34 (GreaseMonkeyManager)
35 @param script GreaseMonkey script to be added (GreaseMonkeyScript)
36 @param parent reference to the parent widget (QWidget)
37 """
38 super(GreaseMonkeyAddScriptDialog, self).__init__(parent)
39 self.setupUi(self)
40
41 self.iconLabel.setPixmap(
42 UI.PixmapCache.getPixmap("greaseMonkey48.png"))
43
44 self.__manager = manager
45 self.__script = script
46
47 runsAt = ""
48 doesNotRunAt = ""
49
50 include = script.include()
51 exclude = script.exclude()
52
53 if include:
54 runsAt = self.tr("<p>runs at:<br/><i>{0}</i></p>").format(
55 "<br/>".join(include))
56
57 if exclude:
58 doesNotRunAt = self.tr(
59 "<p>does not run at:<br/><i>{0}</i></p>").format(
60 "<br/>".join(exclude))
61
62 scriptInfoTxt = "<p><b>{0}</b> {1}<br/>{2}</p>{3}{4}".format(
63 script.name(), script.version(), script.description(), runsAt,
64 doesNotRunAt)
65 self.scriptInfo.setHtml(scriptInfoTxt)
66
67 self.accepted.connect(self.__accepted)
68
69 @pyqtSlot()
70 def on_showScriptSourceButton_clicked(self):
71 """
72 Private slot to show an editor window with the source code.
73 """
74 from WebBrowser.Tools import WebBrowserTools
75
76 tmpFileName = WebBrowserTools.ensureUniqueFilename(
77 os.path.join(QDir.tempPath(), "tmp-userscript.js"))
78 if QFile.copy(self.__script.fileName(), tmpFileName):
79 from QScintilla.MiniEditor import MiniEditor
80 editor = MiniEditor(tmpFileName, "JavaScript", self)
81 editor.show()
82
83 def __accepted(self):
84 """
85 Private slot handling the accepted signal.
86 """
87 if self.__manager.addScript(self.__script):
88 msg = self.tr(
89 "<p><b>{0}</b> installed successfully.</p>").format(
90 self.__script.name())
91 success = True
92 else:
93 msg = self.tr("<p>Cannot install script.</p>")
94 success = False
95
96 from WebBrowser.WebBrowserWindow import WebBrowserWindow
97 if success and WebBrowserWindow.notificationsEnabled():
98 WebBrowserWindow.showNotification(
99 UI.PixmapCache.getPixmap("greaseMonkey48.png"),
100 self.tr("GreaseMonkey Script Installation"),
101 msg)
102 else:
103 E5MessageBox.information(
104 self,
105 self.tr("GreaseMonkey Script Installation"),
106 msg)

eric ide

mercurial