<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7501024c8490908522a8b65a9c070bb87a1c73ab">https://github.com/macports/macports-ports/commit/7501024c8490908522a8b65a9c070bb87a1c73ab</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 7501024  psi: update version 0.14->1.4
</span>7501024 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7501024c8490908522a8b65a9c070bb87a1c73ab
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Thu Nov 22 09:24:11 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    psi: update version 0.14->1.4
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes https://trac.macports.org/ticket/22563
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes https://trac.macports.org/ticket/26032
</span>---
 net/psi/Portfile                                   | 113 ++++++++-----
 net/psi/files/patch-configure.diff                 | 110 ------------
 net/psi/files/patch-qt4-compat.diff                |  11 ++
 net/psi/files/patch-src-applicationinfo.cpp.diff   |  14 --
 net/psi/files/patch-src-pluginhost.cpp.diff        | 133 ---------------
 net/psi/files/patch-src-pluginhost.h.diff          |  42 -----
 net/psi/files/patch-src-pluginmanager.cpp.diff     | 186 ---------------------
 net/psi/files/patch-src-pluginmanager.h.diff       |  41 -----
 .../patch-src-plugins-include-eventfilter.h.diff   |  21 ---
 .../patch-src-plugins-include-iqfilter.h.diff      |  12 --
 .../patch-src-plugins-include-psiplugin.h.diff     |  20 ---
 .../patch-src-plugins-include-stanzasender.h.diff  |  12 --
 net/psi/files/patch-src-psiaccount.cpp.diff        | 146 ----------------
 net/psi/files/patch-src-psichatdlg.cpp.diff        |  53 ------
 net/psi/files/patch-src-psichatdlg.h.diff          |  15 --
 net/psi/files/patch-src-src.pro.diff               |  13 --
 net/psi/files/patch-src_src_pro.diff               |  16 ++
 17 files changed, 95 insertions(+), 863 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/Portfile b/net/psi/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 627f9f3..3cb43be 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/psi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,70 +1,93 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem          1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           qt4 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cxx11 1.1
</span> 
 name                psi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             0.14
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             1.4
</span> categories          net chat
 maintainers         {rowue @rowue}
 description         jabber-based instant messaging client
 long_description \
     Psi is a capable Jabber client aimed at experienced users.  Its design \
     goals are simplicity and stability.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+license             GPL-2+
</span> 
 platforms           darwin
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            http://psi.affinix.com/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://psi-im.org/
</span> master_sites        sourceforge
<span style='display:block; white-space:pre;background:#ffe0e0;'>-use_bzip2           yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz              yes
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           md5     9d7dcce3bcab53b741a712199bd986be \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha1    f5f8e1a427339a4e9113b5fa513b01a42ae1be4b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  0c4a07726c2f9819da0f8aa8f1982e939f1fc20f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  2f047baa0e2af16c949f6bb33667124253e231e4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  761934c1c62daf69215f085ba24d7f9cd4db05ef0ad735383d68fb03d21571ad \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    2119840
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args      --qtdir=${qt_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args      --bindir=${applications_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-growl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-xss \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --enable-webkit
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 755 -d ${destroot}${applications_dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file copy ${worksrcpath}/src/psi.app ${destroot}${applications_dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system "strip \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot}${applications_dir}/psi.app/Contents/MacOS/psi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --qtdir=${qt_dir}
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant externalqca description {Use external qca} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append    patch-qt4-compat.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append   --disable-bundled-qca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append      port:qca-ossl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:qca-gnupg \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:qca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append   port:libidn \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     port:minizip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # install themes (see end of src/src.pro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy ${worksrcpath}/themes ${destroot}${applications_dir}/psi.app/Contents/Resources
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Currently, the qconf build system does not work well the the MacPorts system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# For now, use the extraconf configure argument for bare minimum configuration.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Further research is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+universal_variant    no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt4 conflicts qt5 description "build Qt4 version of ${name}" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup qt4 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:qca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # port requires C++11 compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set extra_conf "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            QMAKE_CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append --extraconf="[join ${extra_conf} \n]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt5 conflicts qt4 description "build Qt5 version of ${name}" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup qt5 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:qca-qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    qt5.depends_component \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    qtmultimedia \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    qtwebengine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # avoid crash at startup (allow psi to look for MacPorts Qt plugins)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set extra_conf "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        QMAKE_CXXFLAGS+=-DALLOW_QT_PLUGINS_DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append --extraconf="[join ${extra_conf} \n]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# variant ipv6 description {Add ipv6 support} { 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# patchfiles-append      patch-src-src.pro.diff 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant plugins description {Build with experimental Plugin Support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patch.pre_args          -p1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append       patch-configure.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-applicationinfo.cpp.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-pluginhost.cpp.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-pluginhost.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-pluginmanager.cpp.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-pluginmanager.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-plugins-include-eventfilter.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-plugins-include-iqfilter.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-plugins-include-psiplugin.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-plugins-include-stanzasender.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-psiaccount.cpp.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-psichatdlg.cpp.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-psichatdlg.h.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-src-src.pro.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args-append   --enable-plugins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# somewhat arbitrary boundary for Qt versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ![variant_isset qt4] && ![variant_isset qt5] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} >= 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append +qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append +qt4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-configure.diff b/net/psi/files/patch-configure.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 43da28a..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,110 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/configure b/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a5bdd58..d56acea 100755
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -48,6 +48,9 @@ Dependency options:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --with-aspell-inc=[path]     Path to Aspell include files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --with-aspell-lib=[path]     Path to Aspell library files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --disable-enchant            Disable use of enchant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --disable-plugins            Disable use of Plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-plugins             Enable Psi Plugin support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -274,6 +277,16 @@ while [ $# -gt 0 ]; do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   shift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        --disable-plugins)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            QC_DISABLE_plugins="Y"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            shift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        --enable-plugins)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            QC_ENABLE_PLUGINS="Y"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            shift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           --verbose)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   QC_VERBOSE="Y"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   shift
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -318,6 +331,8 @@ echo QC_DISABLE_aspell=$QC_DISABLE_aspell
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo QC_WITH_ASPELL_INC=$QC_WITH_ASPELL_INC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo QC_WITH_ASPELL_LIB=$QC_WITH_ASPELL_LIB
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo QC_DISABLE_enchant=$QC_DISABLE_enchant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+echo QC_DISABLE_plugins=$QC_DISABLE_plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+echo QC_ENABLE_PLUGINS=$QC_ENABLE_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1614,6 +1629,48 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 1 "plugins.qcm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-----BEGIN QCMOD-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+name: Plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+arg: enable-plugins,Enable Psi Plugin support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-----END QCMOD-----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//----------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// qc_plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//----------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class qc_plugins : public ConfObj
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   qc_plugins(Conf *c) : ConfObj(c) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   QString name() const { return "Plugins"; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   QString shortname() const { return "Plugins"; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   bool exec()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       QString s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       // Check if Jingle was enabled explicitly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       s = conf->getenv("QC_ENABLE_PLUGINS");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       if(s.isEmpty())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+           return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       conf->addDefine("PSI_PLUGINS");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       // Finish
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       conf->addExtra("CONFIG += psi_plugins");                              
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("        !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("        PLUGIN SUPPORT IS STILL UNFINISHED !!!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("        THE PLUGIN INTERFACE /WILL/ CHANGE !!!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       qWarning("        USE AT YOUR OWN RISK !!!");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cat >$1/modules_new.cpp <<EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1665,6 +1722,10 @@ cat >$1/modules_new.cpp <<EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     o = new qc_conf(conf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     o->required = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     o->disabled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  o = new qc_plugins(conf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  o->required = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  o->disabled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cat >$1/conf4.h <<EOT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2710,6 +2771,9 @@ export QC_WITH_ASPELL_INC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- export QC_WITH_ASPELL_LIB
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- export QC_DISABLE_enchant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- export QC_VERBOSE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+export QC_DISABLE_plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+export QC_ENABLE_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rm -rf .qconftemp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   mkdir .qconftemp
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-qt4-compat.diff b/net/psi/files/patch-qt4-compat.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..91e3b63
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/psi/files/patch-qt4-compat.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/systeminfo.cpp.orig        2018-11-01 17:15:39.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/systeminfo.cpp     2018-11-18 00:46:30.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,7 +207,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (v < QSysInfo::MV_10_7) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           os_name_str_ = "Mac OS X";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  else if(v >= QSysInfo::MV_10_12) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if(v >= 0x000E) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           os_name_str_ = "macOS";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   switch (v) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-applicationinfo.cpp.diff b/net/psi/files/patch-src-applicationinfo.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b95f2c9..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-applicationinfo.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/applicationinfo.cpp b/src/applicationinfo.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b3cbc09..39a0d42 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/applicationinfo.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/applicationinfo.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26,8 +26,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Should also be overridable through an optional file.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define PROG_NAME "Psi"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //#define PROG_VERSION "0.14-dev" " (" __DATE__ ")"; //CVS Builds are dated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#define PROG_VERSION "0.14";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define PROG_VERSION "0.14-patched";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define PROG_CAPS_NODE "http://psi-im.org/caps";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define PROG_CAPS_VERSION "caps-b75d8d2b25";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define PROG_IPC_NAME "org.psi-im.Psi"  // must not contain '\\' character on Windows
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-pluginhost.cpp.diff b/net/psi/files/patch-src-pluginhost.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 498424d..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-pluginhost.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,133 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/pluginhost.cpp b/src/pluginhost.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b3ff446..06e5260 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/pluginhost.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/pluginhost.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,6 +17,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "iqnamespacefilter.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "eventfilter.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "optionaccessor.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "applicationinfo.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \brief Constructs a host/wrapper for a plugin.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32,12 +33,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PluginHost::PluginHost(PluginManager* manager, const QString& pluginFile)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   : manager_(manager)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  , file_(pluginFile)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   , plugin_(0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , file_(pluginFile)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , name_()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , shortName_()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , version_()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   , loader_(0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , valid_(false)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   , connected_(false)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   , enabled_(false)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  , valid_(false)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , iqNsFilters_()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  , iqNsxFilters_()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   load(); // reads plugin name, etc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   unload();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -250,6 +256,12 @@ bool PluginHost::enable()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           qDebug("connecting option accessor");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           o->setOptionAccessingHost(this);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            PsiPlugin* p = qobject_cast<PsiPlugin*>(plugin_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                p->setHomeDir(ApplicationInfo::homeDir());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   connected_ = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -396,7 +408,8 @@ bool PluginHost::processEvent(int account, const QDomElement& e)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \param subject Message subject
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \return Continue processing the event; true if the stanza should be silently discarded.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--bool PluginHost::processMessage(int account, const QString& jidFrom, const QString& body, const QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginHost::processMessage(int account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                QString& body, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   EventFilter *ef = qobject_cast<EventFilter*>(plugin_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -406,6 +419,28 @@ bool PluginHost::processMessage(int account, const QString& jidFrom, const QStri
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginHost::processMessage(int account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                QDomElement& htmlBody, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  EventFilter *ef = qobject_cast<EventFilter*>(plugin_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (ef && ef->processMessage(account, jidFrom, htmlBody, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginHost::processOutgoingMessage(int account, const QString& jidTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                        QString& body, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  EventFilter *ef = qobject_cast<EventFilter*>(plugin_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (ef && ef->processOutgoingMessage(account, jidTo, body, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //-- StanzaSender ---------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -564,6 +599,8 @@ void PluginHost::removeIqNamespaceFilter(const QRegExp &ns, IqNamespaceFilter *f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PluginHost::setPluginOption( const QString& option, const QVariant& value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Q_UNUSED(option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Q_UNUSED(value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   // TODO(mck)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //PsiPlugin* plugin=NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -587,6 +624,7 @@ void PluginHost::setPluginOption( const QString& option, const QVariant& value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QVariant PluginHost::getPluginOption(const QString& option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Q_UNUSED(option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return QVariant();      // TODO(mck)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -617,6 +655,31 @@ QVariant PluginHost::getGlobalOption(const QString& option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginHost::logout(int account)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  qobject_cast<PsiPlugin*>(plugin_)->logout(account);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginHost::contactOnline(int account, const QString& jid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  qobject_cast<PsiPlugin*>(plugin_)->contactOnline(account, jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginHost::contactOffline(int account, const QString& jid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  qobject_cast<PsiPlugin*>(plugin_)->contactOffline(account, jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+QAction* PluginHost::getChatDlgMenuEntries(QWidget* parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           int account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           const QString& otherJid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return qobject_cast<PsiPlugin*>(plugin_)->getChatDlgMenuEntries(parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                    account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                    otherJid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //-- helpers --------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static bool operator<(const QRegExp &a, const QRegExp &b)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-pluginhost.h.diff b/net/psi/files/patch-src-pluginhost.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9a8f718..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-pluginhost.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,42 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/pluginhost.h b/src/pluginhost.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 41f68d7..535b6a9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/pluginhost.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/pluginhost.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,6 +17,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class QWidget;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class QPluginLoader;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class QAction;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class PluginManager;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class IqNamespaceFilter;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -54,7 +55,13 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   // for EventFilter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool processEvent(int account, const QDomElement& e);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  bool processMessage(int account, const QString& jidFrom, const QString& body, const QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processMessage(int account, const QString& jidFrom, 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      QString& body, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processMessage(int account, const QString& jidFrom, 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      QDomElement& body, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processOutgoingMessage(int account, const QString& jidTo, 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              QString& body, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   // StanzaSendingHost
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void sendStanza(int account, const QDomElement& xml);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -74,6 +81,14 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void setGlobalOption(const QString& option, const QVariant& value);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QVariant getGlobalOption(const QString& option);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void logout(int account);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void contactOnline(int account, const QString& jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void contactOffline(int account, const QString& jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    QAction* getChatDlgMenuEntries(QWidget* parent, int account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                   const QString& otherJid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PluginManager* manager_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QObject* plugin_;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-pluginmanager.cpp.diff b/net/psi/files/patch-src-pluginmanager.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index b50da97..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-pluginmanager.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,186 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/pluginmanager.cpp b/src/pluginmanager.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c08aab4..babedd3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/pluginmanager.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/pluginmanager.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -147,6 +147,7 @@ void PluginManager::loadEnabledPlugins()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PluginManager::optionChanged(const QString& option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Q_UNUSED(option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //QString("%1.%2").arg(loadOptionPrefix).arg(shortNames_[plugin]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //TODO(mck): implement this... for now, enabling/disabling requires psi restart
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -236,7 +237,7 @@ QStringList PluginManager::availablePlugins()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QWidget* PluginManager::optionsWidget(const QString& plugin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QWidget* widget = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (hosts_.contains(plugin)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (hosts_.contains(plugin) && hosts_[plugin]->isEnabled()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           widget = hosts_[plugin]->optionsWidget();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           qWarning("Attempting to get options for %s which doesn't exist", qPrintable(plugin));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -254,19 +255,60 @@ QWidget* PluginManager::optionsWidget(const QString& plugin)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \param event Incoming event
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \return Continue processing the event; true if the event should be silently discarded.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--bool PluginManager::processMessage(const PsiAccount* account, const QString& jidFrom, const QString& body, const QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginManager::processMessage(const PsiAccount* account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                   QString& body, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   foreach (PluginHost* host, hosts_.values()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          if (host->processMessage(accountIds_[account], jidFrom, body, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              if (host->processMessage(accountIds_[account], jidFrom, body, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginManager::processMessage(const PsiAccount* account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                   QDomElement& htmlBody, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  foreach (PluginHost* host, hosts_.values()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              if (host->processMessage(accountIds_[account], jidFrom, htmlBody, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * process an outgoing message
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool PluginManager::processOutgoingMessage(const PsiAccount* account, const QString& jidTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           QString& body, QString& subject)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  foreach (PluginHost* host, hosts_.values()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              if (host->processOutgoingMessage(accountIds_[account], jidTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                               body, subject)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * \brief Give each plugin the opportunity to process the incoming event
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Each plugin is passed the event in turn. Any plugin may then modify the event
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -280,10 +322,13 @@ bool PluginManager::processEvent(const PsiAccount* account, QDomElement& event)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   foreach (PluginHost* host, hosts_.values()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          if (host->processEvent(accountIds_[account], event)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              if (host->processEvent(accountIds_[account], event)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -304,10 +349,13 @@ bool PluginManager::incomingXml(int account, const QDomElement &xml)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool handled = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   foreach (PluginHost* host, hosts_.values()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          if (host->incomingXml(account, xml)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              if (host->incomingXml(account, xml)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  handled = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return handled;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -369,6 +417,62 @@ bool PluginManager::verifyStanza(const QString& stanza)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginManager::logout(const PsiAccount* account)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  foreach (PluginHost* host, hosts_.values())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              host->logout(accountIds_[account]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginManager::contactOnline(const PsiAccount* account, const QString& jid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  foreach (PluginHost* host, hosts_.values())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              host->contactOnline(accountIds_[account], jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void PluginManager::contactOffline(const PsiAccount* account, const QString& jid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  foreach (PluginHost* host, hosts_.values())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              host->contactOffline(accountIds_[account], jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+QList<QAction*> PluginManager::getChatDlgMenuEntries(QWidget* parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                     const PsiAccount* account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                     const QString& otherJid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    QList<QAction*> res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    foreach(PluginHost* host, hosts_.values())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (host->isEnabled())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            QAction* m = host->getChatDlgMenuEntries(parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                     accountIds_[account],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                     otherJid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (m)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                res.append(m);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- PluginManager* PluginManager::instance_ = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const QString PluginManager::loadOptionPrefix = "plugins.auto-load";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const QString PluginManager::pluginOptionPrefix = "plugins.options";
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-pluginmanager.h.diff b/net/psi/files/patch-src-pluginmanager.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6721ae0..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-pluginmanager.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,41 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/pluginmanager.h b/src/pluginmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2c485e8..090d8b9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/pluginmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/pluginmanager.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,6 +13,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QDomElement>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class QPluginLoader;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+class QAction;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class PsiAccount;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class PsiPlugin;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -46,11 +47,26 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QWidget* optionsWidget(const QString& plugin);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool processEvent(const PsiAccount* account, QDomElement& eventXml);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  bool processMessage(const PsiAccount* account, const QString& jidFrom, const QString& body, const QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processMessage(const PsiAccount* account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      QString& body, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processMessage(const PsiAccount* account, const QString& jidFrom,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      QDomElement& htmlBody, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool processOutgoingMessage(const PsiAccount* account, const QString& jidTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              QString& body, QString& subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void logout(const PsiAccount* account);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void contactOnline(const PsiAccount* account, const QString& jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  void contactOffline(const PsiAccount* account, const QString& jid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static const QString loadOptionPrefix;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static const QString pluginOptionPrefix;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    QList<QAction*> getChatDlgMenuEntries(QWidget* parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                          const PsiAccount* account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                          const QString& otherjid);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PluginManager();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   void loadAllPlugins();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-plugins-include-eventfilter.h.diff b/net/psi/files/patch-src-plugins-include-eventfilter.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index e0c12f8..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-plugins-include-eventfilter.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,21 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/include/eventfilter.h b/src/plugins/include/eventfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c16908d..453542c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/plugins/include/eventfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/plugins/include/eventfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11,7 +11,15 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   // true = handled, don't pass to next handler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     virtual bool processEvent(int account, const QDomElement& e) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  virtual bool processMessage(int account, const QString& fromJid, const QString& body, const QString& subject) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual bool processMessage(int account, const QString& fromJid,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              QString& body, QString& subject) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual bool processMessage(int account, const QString& fromJid,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              QDomElement& body, QString& subject) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual bool processOutgoingMessage(int account, const QString& toJid,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                      QString& body, QString& subject) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_INTERFACE(EventFilter, "org.psi-im.EventFilter/0.1");
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-plugins-include-iqfilter.h.diff b/net/psi/files/patch-src-plugins-include-iqfilter.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 57244a1..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-plugins-include-iqfilter.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/include/iqfilter.h b/src/plugins/include/iqfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1c3f355..95c6e99 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/plugins/include/iqfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/plugins/include/iqfilter.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,4 +13,5 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_INTERFACE(IqFilter, "org.psi-im.IqFilter/0.1");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-\ No newline at end of file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-plugins-include-psiplugin.h.diff b/net/psi/files/patch-src-plugins-include-psiplugin.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 5d15c6e..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-plugins-include-psiplugin.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/include/psiplugin.h b/src/plugins/include/psiplugin.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 85a835a..f85cd89 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/plugins/include/psiplugin.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/plugins/include/psiplugin.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -87,6 +87,15 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   virtual bool disable() = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual void logout(int account) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual void contactOnline(int account, const QString& jid) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  virtual void contactOffline(int account, const QString& jid) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    virtual QAction* getChatDlgMenuEntries(QWidget* parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           int account,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           const QString& otherJid) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    virtual void setHomeDir(const QString& dir) = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_INTERFACE(PsiPlugin, "org.psi-im.PsiPlugin/0.3");
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-plugins-include-stanzasender.h.diff b/net/psi/files/patch-src-plugins-include-stanzasender.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6bbffc6..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-plugins-include-stanzasender.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/include/stanzasender.h b/src/plugins/include/stanzasender.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8e10960..96ee26e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/plugins/include/stanzasender.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/plugins/include/stanzasender.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,4 +13,5 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_INTERFACE(StanzaSender, "org.psi-im.StanzaSender/0.1");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-\ No newline at end of file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-psiaccount.cpp.diff b/net/psi/files/patch-src-psiaccount.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 217a776..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-psiaccount.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,146 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/psiaccount.cpp b/src/psiaccount.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 98aa922..945d411 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/psiaccount.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/psiaccount.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1286,6 +1286,10 @@ void PsiAccount::login()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // disconnect or stop reconnecting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PsiAccount::logout(bool fast, const Status &s)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    PluginManager::instance()->logout(this);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if(!isActive())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1887,6 +1891,10 @@ void PsiAccount::client_resourceAvailable(const Jid &j, const Resource &r)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           UserResourceList::Iterator rit = u->userResourceList().find(j.resource());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           bool found = (rit == u->userResourceList().end()) ? false: true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if(!found) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  PluginManager::instance()->contactOnline(this, j.node() + "@" + j.domain());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   popupType = PopupOnline;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   UserResource ur(r);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2043,6 +2051,10 @@ void PsiAccount::client_resourceUnavailable(const Jid &j, const Resource &r)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           PsiGrowlNotifier::instance()->popup(this, PsiPopup::AlertOffline, j, r, u);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  PluginManager::instance()->contactOffline(this, j.node() + "@" + j.domain());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PsiAccount::client_presenceError(const Jid &j, int, const QString &str)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3001,7 +3013,6 @@ ChatDlg *PsiAccount::ensureChatDlg(const Jid &j)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   if(!pp.isNull())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           p = pp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef __GNUC__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#warning "Removed reparenting call from qwextend"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   //reparent_good(window, 0, false);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   if(!p.isNull())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3638,6 +3649,25 @@ void PsiAccount::dj_sendMessage(const Message &m, bool log)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (nm.type() != "groupchat" && !nm.body().isEmpty())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          QString body = nm.body();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          QString subject = nm.subject();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          PluginManager::instance()->processOutgoingMessage(this, nm.to().full(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                            body, subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if (body != nm.body())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  nm.setBody(body);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if (subject != nm.subject())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  nm.setSubject(subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   d->client->sendMessage(nm);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   // only toggle if not an invite or body is not empty
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3913,6 +3943,53 @@ void PsiAccount::handleEvent(PsiEvent* e, ActivationType activationType)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //FIXME(KIS): must now cause the event to be recreated from this xml or such. Horrid.   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if(e->type() == PsiEvent::Message)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        MessageEvent* messageEvent = (MessageEvent*) e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          Message message = messageEvent->message();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if (message.type() != "groupchat")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  bool discard = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  if (message.containsHTML() && !message.html().text().isEmpty())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          HTMLElement htmlElement = message.html();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          QDomElement htmlBody = htmlElement.body();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          QString subject = message.subject();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          discard = PluginManager::instance()->processMessage(this, e->from().full(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                          htmlBody, subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          htmlElement.setBody(htmlBody);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          message.setHTML(htmlElement, message.lang());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          message.setBody(htmlElement.text());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          message.setSubject(subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  else if (!message.body().isEmpty())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          QString body = message.body();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          QString subject = message.subject();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          discard = PluginManager::instance()->processMessage(this, e->from().full(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                          body, subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          message.setBody(body);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          message.setSubject(subject);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  if (discard)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          delete e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  messageEvent->setMessage(message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if(d->acc.opt_log && activationType != FromXml) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if(e->type() == PsiEvent::Message || e->type() == PsiEvent::Auth) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3926,20 +4003,6 @@ void PsiAccount::handleEvent(PsiEvent* e, ActivationType activationType)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           MessageEvent *me = (MessageEvent *)e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           const Message &m = me->message();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          //TODO(mck): clean up
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          //UserListItem *ulItem=NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          //if ( !ul.isEmpty() )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          //      ulItem=ul.first();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          if (PluginManager::instance()->processMessage(this, e->from().full(), m.body(), m.subject())) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  delete e;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                  return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--          //PluginManager::instance()->message(this,e->from(),ulItem,((MessageEvent*)e)->message().body());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           // Pass message events to chat window
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if ((m.containsEvents() || m.chatState() != StateNone) && m.body().isEmpty()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   if (PsiOptions::instance()->getOption("options.messages.send-composing-events").toBool()) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-psichatdlg.cpp.diff b/net/psi/files/patch-src-psichatdlg.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index f4ec9cb..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-psichatdlg.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,53 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/psichatdlg.cpp b/src/psichatdlg.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ac1ddea..59c0d0d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/psichatdlg.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/psichatdlg.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,6 +40,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "jidutil.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "textutil.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "xmpp_tasks.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "pluginmanager.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "lastactivitytask.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -326,6 +327,12 @@ void PsiChatDlg::initToolButtons()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   act_compact_ = new IconAction(tr("Toggle Compact/Full Size"), "psi/compact", tr("Toggle Compact/Full Size"), 0, this);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   connect(act_compact_, SIGNAL(triggered()), SLOT(toggleSmallChat()));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    act_plugins_ = PluginManager::instance()->getChatDlgMenuEntries(this,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                    account(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                                                    jid().full());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PsiChatDlg::initToolBar()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -344,6 +351,13 @@ void PsiChatDlg::initToolBar()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (account()->voiceCaller()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           ui_.toolbar->addAction(act_voice_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    foreach (QAction* i, act_plugins_ )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        ui_.toolbar->addAction(i);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PsiChatDlg::contextMenuEvent(QContextMenuEvent *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -501,6 +515,13 @@ void PsiChatDlg::buildMenu()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pm_settings_->addAction(act_info_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pm_settings_->addAction(act_history_);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    foreach (QAction* a, act_plugins_)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        pm_settings_->insertSeparator();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        pm_settings_->addAction(a);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void PsiChatDlg::updateCounter()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-psichatdlg.h.diff b/net/psi/files/patch-src-psichatdlg.h.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 394e951..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-psichatdlg.h.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,15 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/psichatdlg.h b/src/psichatdlg.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6fb026a..6a1a05e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/psichatdlg.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/psichatdlg.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -77,6 +77,10 @@ private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   IconAction* act_file_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   IconAction* act_compact_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   IconAction* act_voice_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef PSI_PLUGINS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    QList<QAction*> act_plugins_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QAction *act_mini_cmd_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src-src.pro.diff b/net/psi/files/patch-src-src.pro.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 580b2c7..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/psi/files/patch-src-src.pro.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/src.pro b/src/src.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index fb573a0..a8b32ed 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/src.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/src.pro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10,7 +10,7 @@ CONFIG  += qt thread x11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #CONFIG += use_crash
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CONFIG += pep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #CONFIG += whiteboarding
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#CONFIG += psi_plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+CONFIG += psi_plugins
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DEFINES += QT_STATICPLUGIN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DEFINES += QT3_SUPPORT_WARNINGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/psi/files/patch-src_src_pro.diff b/net/psi/files/patch-src_src_pro.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5f286fc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/psi/files/patch-src_src_pro.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/src.pro.orig       2018-11-01 17:15:39.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/src.pro    2018-11-19 06:15:43.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,10 +176,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           QMAKE_MAC_SDK=/Developer/SDKs/MacOSX10.5.sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QMAKE_MACOSX_DEPLOYMENT_TARGET=__MACPORTS_MACOSX_DEPLOYMENT_TARGET__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        QMAKE_MAC_SDK=__MACPORTS_MAC_SDK__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Frameworks are specified in src.pri
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QMAKE_INFO_PLIST = ../mac/Info.plist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   RC_FILE = ../mac/application.icns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QMAKE_POST_LINK = cp -R ../certs ../iconsets ../sound `dirname $(TARGET)`/../Resources ; echo "APPLpsi " > `dirname $(TARGET)`/../PkgInfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QMAKE_POST_LINK = cp -R ../certs ../iconsets ../sound ../themes `dirname $(TARGET)`/../Resources ; echo "APPLpsi " > `dirname $(TARGET)`/../PkgInfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>

</pre>