diff -r 60cb9d784005 -r 5b635dc8895f ExtensionIrc/ConfigurationPage/IrcPage.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtensionIrc/ConfigurationPage/IrcPage.py Fri Apr 18 18:36:48 2025 +0200 @@ -0,0 +1,263 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the IRC configuration page. +""" + +from eric7.Preferences.ConfigurationPages.ConfigurationPageBase import ( + ConfigurationPageBase, +) + +from .Ui_IrcPage import Ui_IrcPage + + +class IrcPage(ConfigurationPageBase, Ui_IrcPage): + """ + Class implementing the IRC configuration page. + """ + + TimeFormats = ["hh:mm", "hh:mm:ss", "h:mm ap", "h:mm:ss ap"] + DateFormats = [ + "yyyy-MM-dd", + "dd.MM.yyyy", + "MM/dd/yyyy", + "yyyy MMM. dd", + "dd MMM. yyyy", + "MMM. dd, yyyy", + ] + + def __init__(self, plugin): + """ + Constructor + + @param plugin reference to the plugin object + @type PluginPipxInterface + """ + super().__init__() + self.setupUi(self) + self.setObjectName("IrcPage") + + self.__plugin = plugin + + self.timeFormatCombo.addItems(IrcPage.TimeFormats) + self.dateFormatCombo.addItems(IrcPage.DateFormats) + + # set initial values + # timestamps + self.timestampGroup.setChecked(self.__plugin.getPreferences("ShowTimestamps")) + self.showDateCheckBox.setChecked( + self.__plugin.getPreferences("TimestampIncludeDate") + ) + self.timeFormatCombo.setCurrentIndex( + self.timeFormatCombo.findText(self.__plugin.getPreferences("TimeFormat")) + ) + self.dateFormatCombo.setCurrentIndex( + self.dateFormatCombo.findText(self.__plugin.getPreferences("DateFormat")) + ) + + # colours + self.initColour( + "NetworkMessageColour", + self.networkButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "ServerMessageColour", + self.serverButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "ErrorMessageColour", + self.errorButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "TimestampColour", + self.timestampButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "HyperlinkColour", + self.hyperlinkButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "ChannelMessageColour", + self.channelButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "OwnNickColour", + self.ownNickButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "NickColour", self.nickButton, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "JoinChannelColour", + self.joinButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "LeaveChannelColour", + self.leaveButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "ChannelInfoColour", + self.infoButton, + self.__plugin.getPreferences, + byName=True, + ) + + # notifications + self.notificationsGroup.setChecked( + self.__plugin.getPreferences("ShowNotifications") + ) + self.joinLeaveCheckBox.setChecked( + self.__plugin.getPreferences("NotifyJoinPart") + ) + self.messageCheckBox.setChecked(self.__plugin.getPreferences("NotifyMessage")) + self.ownNickCheckBox.setChecked(self.__plugin.getPreferences("NotifyNick")) + + # IRC text colors + self.initColour( + "IrcColor0", self.ircColor0Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor1", self.ircColor1Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor2", self.ircColor2Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor3", self.ircColor3Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor4", self.ircColor4Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor5", self.ircColor5Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor6", self.ircColor6Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor7", self.ircColor7Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor8", self.ircColor8Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor9", self.ircColor9Button, self.__plugin.getPreferences, byName=True + ) + self.initColour( + "IrcColor10", + self.ircColor10Button, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "IrcColor11", + self.ircColor11Button, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "IrcColor12", + self.ircColor12Button, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "IrcColor13", + self.ircColor13Button, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "IrcColor14", + self.ircColor14Button, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "IrcColor15", + self.ircColor15Button, + self.__plugin.getPreferences, + byName=True, + ) + + # Automatic User Information Lookup + self.whoGroup.setChecked(self.__plugin.getPreferences("AutoUserInfoLookup")) + self.whoUsersSpinBox.setValue(self.__plugin.getPreferences("AutoUserInfoMax")) + self.whoIntervalSpinBox.setValue( + self.__plugin.getPreferences("AutoUserInfoInterval") + ) + + # Markers + self.markWhenHiddenCheckBox.setChecked( + self.__plugin.getPreferences("MarkPositionWhenHidden") + ) + self.initColour( + "MarkerLineForegroundColour", + self.markerForegroundButton, + self.__plugin.getPreferences, + byName=True, + ) + self.initColour( + "MarkerLineBackgroundColour", + self.markerBackgroundButton, + self.__plugin.getPreferences, + byName=True, + ) + + def save(self): + """ + Public slot to save the IRC configuration. + """ + # timestamps + self.__plugin.setPreferences("ShowTimestamps", self.timestampGroup.isChecked()) + self.__plugin.setPreferences( + "TimestampIncludeDate", self.showDateCheckBox.isChecked() + ) + self.__plugin.setPreferences("TimeFormat", self.timeFormatCombo.currentText()) + self.__plugin.setPreferences("DateFormat", self.dateFormatCombo.currentText()) + + # notifications + self.__plugin.setPreferences( + "ShowNotifications", self.notificationsGroup.isChecked() + ) + self.__plugin.setPreferences( + "NotifyJoinPart", self.joinLeaveCheckBox.isChecked() + ) + self.__plugin.setPreferences("NotifyMessage", self.messageCheckBox.isChecked()) + self.__plugin.setPreferences("NotifyNick", self.ownNickCheckBox.isChecked()) + + # Automatic User Information Lookup + self.__plugin.setPreferences("AutoUserInfoLookup", self.whoGroup.isChecked()) + self.__plugin.setPreferences("AutoUserInfoMax", self.whoUsersSpinBox.value()) + self.__plugin.setPreferences( + "AutoUserInfoInterval", self.whoIntervalSpinBox.value() + ) + + # Markers + self.__plugin.setPreferences( + "MarkPositionWhenHidden", self.markWhenHiddenCheckBox.isChecked() + ) + + # colours + self.saveColours(self.__plugin.setPreferences)