diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bcb704366cb5e333a626c18c308c7e0448a8e69f (patch) | |
tree | f0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /ksirc/ioBroadcast.cpp | |
download | tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksirc/ioBroadcast.cpp')
-rw-r--r-- | ksirc/ioBroadcast.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/ksirc/ioBroadcast.cpp b/ksirc/ioBroadcast.cpp new file mode 100644 index 00000000..9bac4e30 --- /dev/null +++ b/ksirc/ioBroadcast.cpp @@ -0,0 +1,101 @@ +/********************************************************************** + + The IO Broadcaster + + $$Id$$ + + The IO broadcaster bassed on the ksircmessage receiver takes a + message and send it all ksircmessage receivers, except of course it + self. + + It does the same with control_messages. + + Implementation: + + Make a QDictIterator, iterate over the windows sedning to each + broadcaster that's not itself. + + *** NOTE! don't have 2 broadcasters or else they'll broadcast forever! + +**********************************************************************/ + +#include "ioBroadcast.h" +#include "ksircprocess.h" + + +KSircIOBroadcast::~KSircIOBroadcast() +{ +} + +void KSircIOBroadcast::sirc_receive(QCString str, bool) +{ + + QDictIterator<KSircMessageReceiver> it(proc->getWindowList()); + + KSircMessageReceiver *dflt = (proc->getWindowList())["!default"]; + if(dflt->getBroadcast() == TRUE) + dflt->sirc_receive(str, true); + + it.toFirst(); + + while(it.current()){ + if((it.current()->getBroadcast() == TRUE) && (it.current() != dflt)) + it.current()->sirc_receive(str, true); + ++it; + } + +} + +void KSircIOBroadcast::control_message(int command, QString str) +{ + + QDictIterator<KSircMessageReceiver> it(proc->getWindowList()); + + it.toFirst(); + + while(it.current()){ + if(it.current() != this) + it.current()->control_message(command, str); + ++it; + } +} + + +filterRuleList *KSircIOBroadcast::defaultRules() +{ + filterRule *fr; + filterRuleList *frl = new filterRuleList(); + frl->setAutoDelete(TRUE); + fr = new filterRule(); + fr->desc = "Inverse to KSIRC inverse"; + fr->search = ".*"; + fr->from = "(?g)\\x16"; + fr->to = "~r"; + frl->append(fr); + fr = new filterRule(); + fr->desc = "Underline to KSIRC underline"; + fr->search = ".*"; + fr->from = "(?g)\\x1f"; + fr->to = "~u"; + frl->append(fr); + fr = new filterRule(); + fr->desc = "Bold to KSIRC bold"; + fr->search = ".*"; + fr->from = "(?g)\\x02"; + fr->to = "~b"; + frl->append(fr); + fr = new filterRule(); + fr->desc = "Beep to KSIRC beep"; + fr->search = ".*"; + fr->from = "(?g)\\x07"; + fr->to = "~g"; + frl->append(fr); + fr = new filterRule(); + fr->desc = "Ordinary to KSIRC ordinary"; + fr->search = ".*"; + fr->from = "(?g)\\x0f"; + fr->to = "~c"; + frl->append(fr); + return frl; + +} |