diff -r f98d019645f9 -r d1af35d0bcc6 PluginExtensionIrc.py --- a/PluginExtensionIrc.py Sat May 03 16:23:18 2025 +0200 +++ b/PluginExtensionIrc.py Wed May 07 18:04:16 2025 +0200 @@ -16,6 +16,7 @@ from eric7 import EricUtilities, Preferences from eric7.EricGui import EricPixmapCache from eric7.EricGui.EricAction import EricAction +from eric7.EricWidgets import EricMessageBox from eric7.EricWidgets.EricApplication import ericApp from eric7.UI.UserInterface import UserInterfaceSide @@ -25,7 +26,7 @@ "author": "Detlev Offenbach <detlev@die-offenbachs.de>", "autoactivate": True, "deactivateable": True, - "version": "10.0.1", + "version": "10.0.2", "className": "IrcExtensionPlugin", "packageName": "ExtensionIrc", "shortDescription": "This plug-in adds a widget to communicate via IRC messa", @@ -87,7 +88,7 @@ class IrcExtensionPlugin(QObject): """ - Class documentation goes here. + Class implementing a plug-in providing IRC communication capability. """ PreferencesKey = "IRC" @@ -168,51 +169,67 @@ error = "" # clear previous error ircExtensionPluginObject = self - # Create the IRC user interface - logging.getLogger(__name__).debug("Creating IRC Widget...") - from ExtensionIrc.IrcWidget import IrcWidget # noqa: I-101, I-102 + if self.__ui.versionIsNewer("25.4"): + # Create the IRC user interface + logging.getLogger(__name__).debug("Creating IRC Widget...") + from ExtensionIrc.IrcWidget import IrcWidget # noqa: I-101, I-102 - usesDarkPalette = ericApp().usesDarkPalette() - self.__iconType = "dark" if usesDarkPalette else "light" + usesDarkPalette = ericApp().usesDarkPalette() + self.__iconType = "dark" if usesDarkPalette else "light" - self.__irc = IrcWidget(plugin=self) - iconName = "sbIrc96" if self.__ui.getLayoutType() == "Sidebars" else "irc" - self.__ui.addSideWidget( - UserInterfaceSide.Right, - self.__irc, - self.getIcon(iconName), - self.tr("IRC"), - ) + self.__irc = IrcWidget(plugin=self) + iconName = "sbIrc96" if self.__ui.getLayoutType() == "Sidebars" else "irc" + self.__ui.addSideWidget( + UserInterfaceSide.Right, + self.__irc, + self.getIcon(iconName), + self.tr("IRC"), + ) - self.__activateAct = EricAction( - self.tr("IRC"), - self.tr("&IRC"), - QKeySequence(self.tr("Ctrl+Alt+Shift+I")), - 0, - self, - "irc_widget_activate", - ) - self.__activateAct.setStatusTip( - self.tr("Switch the input focus to the IRC window.") - ) - self.__activateAct.setWhatsThis( - self.tr( - """<b>Activate IRC</b>""" - """<p>This switches the input focus to the IRC window.</p>""" + self.__activateAct = EricAction( + self.tr("IRC"), + self.tr("&IRC"), + QKeySequence(self.tr("Ctrl+Alt+Shift+I")), + 0, + self, + "irc_widget_activate", + ) + self.__activateAct.setStatusTip( + self.tr("Switch the input focus to the IRC window.") + ) + self.__activateAct.setWhatsThis( + self.tr( + """<b>Activate IRC</b>""" + """<p>This switches the input focus to the IRC window.</p>""" + ) ) - ) - self.__activateAct.triggered.connect(self.__activateWidget) + self.__activateAct.triggered.connect(self.__activateWidget) - self.__ui.addEricActions([self.__activateAct], "ui") - menu = self.__ui.getMenu("subwindow") - menu.addAction(self.__activateAct) + self.__ui.addEricActions([self.__activateAct], "ui") + menu = self.__ui.getMenu("subwindow") + menu.addAction(self.__activateAct) + + ericApp().getObject("PluginManager").shutdown.connect(self.__irc.shutdown) + + self.__irc.autoConnected.connect(self.__activateWidget) + self.__irc.autoConnect() - ericApp().getObject("PluginManager").shutdown.connect(self.__irc.shutdown) + return None, True + else: + EricMessageBox.warning( + self.__ui, + self.tr("IRC Extension"), + self.tr( + "The IRC extension cannot be activated because it requires eric7" + " 25.5 or newer." + ), + ) + error = self.tr( + "The IRC extension cannot be activated because it requires eric7 25.5" + " or newer." + ) - self.__irc.autoConnected.connect(self.__activateWidget) - self.__irc.autoConnect() - - return None, True + return None, False def deactivate(self): """ @@ -300,7 +317,7 @@ def __activateWidget(self): """ - Private slot to handle the activation of the MQTT Monitor. + Private slot to handle the activation of the IRC widget. """ uiLayoutType = self.__ui.getLayoutType()