Hello community,

here is the log from the commit of package kdeaddons3 for openSUSE:Factory
checked in at Thu Sep 22 12:55:45 CEST 2011.



--------
New Changes file:

--- /dev/null   2010-08-26 16:28:41.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdeaddons3/kdeaddons3.changes  2010-07-30 
16:45:36.000000000 +0200
@@ -0,0 +1,772 @@
+-------------------------------------------------------------------
+Fri Jul 30 16:44:56 CEST 2010 - [email protected]
+
+- fix gcc 4.5 build
+
+-------------------------------------------------------------------
+Wed Aug 20 18:24:34 CEST 2008 - [email protected]
+
+- update to 3.5.10
+  * bugfixes, translations
+
+-------------------------------------------------------------------
+Fri May  9 10:30:07 CEST 2008 - [email protected]
+
+- 3_5_BRANCH.diff update:
+  * fix popup in babelfish plugin
+
+-------------------------------------------------------------------
+Thu Mar 13 11:12:51 CET 2008 - [email protected]
+
+- update 3_5_BRANCH diff:
+  * fix crash in kate tabbar extension (bko#157834)
+
+-------------------------------------------------------------------
+Wed Feb 13 23:29:20 CET 2008 - [email protected]
+
+- update to 3.5.9:
+  * bugfixes, translation update
+
+-------------------------------------------------------------------
+Thu Nov 15 19:01:59 CET 2007 - [email protected]
+
+- update 3.5 branch diff to fix gcc 4.3 compilation 
+
+-------------------------------------------------------------------
+Sat Oct 20 15:37:25 CEST 2007 - [email protected]
+
+- update to 3.5 branch to fix gcc 4.3 compilation
+
+-------------------------------------------------------------------
+Tue Oct  9 16:12:03 CEST 2007 - [email protected]
+
+- update to 3.5.8: performance improvements for dirfilter plugin
+
+-------------------------------------------------------------------
+Fri Sep 28 15:55:13 CEST 2007 - [email protected]
+
+- fix quoting in realmedia handler (#326912) 
+
+-------------------------------------------------------------------
+Sat Aug  4 18:57:28 CEST 2007 - [email protected]
+
+- add 3_5_BRANCH.diff
+
+-------------------------------------------------------------------
+Tue Jul 17 12:27:24 CEST 2007 - [email protected]
+
+- remove fsview.desktop
+
+-------------------------------------------------------------------
+Mon Jun  4 13:40:54 CEST 2007 - [email protected]
+
+- move kde_post_install
+
+-------------------------------------------------------------------
+Wed May 23 21:56:08 CEST 2007 - [email protected]
+
+- adapt BuildRequires after kdegames3-devel split-off
+
+-------------------------------------------------------------------
+Mon May 14 23:12:15 CEST 2007 - [email protected]
+
+- update to 3.5.7
+   * Kate Symbol Viewer: Improved C++ and Java support. 
+   * Bugfixes in the web archiver and web validator plugins
+
+-------------------------------------------------------------------
+Fri Apr 20 16:21:19 CEST 2007 - [email protected]
+
+- use C version of db
+
+-------------------------------------------------------------------
+Fri Jan 26 09:57:15 CET 2007 - [email protected]
+
+- add 3_5_BRANCH.diff to fix minor privacy issue in webarchiver
+
+-------------------------------------------------------------------
+Tue Jan 16 15:36:42 CET 2007 - [email protected]
+
+- update to 3.5.6 release:
+   * several bugfixes to Konqueror plugins
+
+-------------------------------------------------------------------
+Fri Dec  1 14:52:10 CET 2006 - [email protected]
+
+- fix possible crash of KonquerorDirFilterPlugin (#223957)
+
+-------------------------------------------------------------------
+Wed Nov  8 16:51:38 CET 2006 - [email protected]
+
+- remove historic "Provides:" (#218798)
+
+-------------------------------------------------------------------
+Tue Oct 31 16:20:00 CET 2006 - [email protected]
+
+- add 3_5_BRANCH.diff:
+   - Fix 7zip support
+   - Changing default save location for webarchiv plugin
+   - translation update
+
+-------------------------------------------------------------------
+Mon Oct  9 12:56:22 CEST 2006 - [email protected]
+
+- fix konqueror blocks while opening a profile with more than
+  one windows (#210147)
+
+-------------------------------------------------------------------
+Tue Oct  3 10:29:01 CEST 2006 - [email protected]
+
+- update to 3.5.5 release tarball
+
+-------------------------------------------------------------------
+Tue Sep 19 13:44:33 CEST 2006 - [email protected]
+
+- fix previous commit/regression and remember last view mode
+
+-------------------------------------------------------------------
+Mon Sep 11 21:40:21 CEST 2006 - [email protected]
+
+- backporting patch from opensuse contributor kling-kde to fix
+  konqueror crashes (#204388, #204369)
+
+-------------------------------------------------------------------
+Fri Sep  1 17:25:51 CEST 2006 - [email protected]
+
+- improve permanent-searchbar.diff (synchronious check, other icon)
+
+-------------------------------------------------------------------
+Wed Aug 23 11:17:43 CEST 2006 - [email protected]
+
+- update 3_5_BRANCH.diff (Akregator and Kate plugin fixes)
+
+-------------------------------------------------------------------
+Sun Jul 23 22:12:59 CEST 2006 - [email protected]
+
+- update to KDE 3.5.4:
+   * Konqueror searchbar plugin: hint the selected search provider
+
+-------------------------------------------------------------------
+Tue Jul 11 15:52:26 CEST 2006 - [email protected]
+
+- permanent visible searchbar in file mode offering Beagle search
+  (if beagled is running) and filtering of current file view
+
+-------------------------------------------------------------------
+Mon Jun 19 15:01:13 CEST 2006 - [email protected]
+
+- add 3.5 branch diff for searchbar click hint texts
+- add configuration menu for Google Suggest usage
+
+-------------------------------------------------------------------
+Thu Jun  8 18:25:21 CEST 2006 - [email protected]
+
+- use Google Suggest in web search bar (only used for Google)
+
+-------------------------------------------------------------------
+Mon May 29 23:28:21 CEST 2006 - [email protected]
+
+- fix build for openSUSE build service
+
+-------------------------------------------------------------------
+Wed May 24 10:14:24 CEST 2006 - [email protected]
+
+- update to version 3.5.3
+   * domtreeviewer: fix crash when reopening dialog
+   * metabar: fix problem with <nobr> tag
+   * ktimemon: backport of iowait support
+   * arkplugin: fix crash caused by caching KFileItems
+ 
+-------------------------------------------------------------------
+Mon Mar 20 14:59:40 CET 2006 - [email protected]
+
+- update to version 3.5.2
+   * kuickcopy: disable 'Contact' entry if there are no contacts
+   * arkplugin: fix mimetype detection and popup menu
+   * metabar: fixed translation issues
+
+-------------------------------------------------------------------
+Fri Mar 17 14:01:59 CET 2006 - [email protected]
+
+- don't fall back to 'unknown' but enhanced_browsing icon in
+  searchbar if search provider favicon is not fetched yet
+
+-------------------------------------------------------------------
+Tue Feb 28 11:40:22 CET 2006 - [email protected]
+
+- add upstream patch to disable Kuick's "Contacts" if empty
++++ 575 more lines (skipped)
++++ between /dev/null
++++ and /mounts/work_src_done/STABLE/kdeaddons3/kdeaddons3.changes

calling whatdependson for head-i586


New:
----
  3_5_BRANCH.diff
  disable-lnk.diff
  fix-kimgalleryplugin-output.diff
  google-suggest.diff
  kdeaddons-3.5.10-gcc45.diff
  kdeaddons-3.5.10.tar.bz2
  kdeaddons3.changes
  kdeaddons3.spec
  permanent-searchbar.diff
  use-db.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdeaddons3.spec ++++++
++++ 699 lines (skipped)

++++++ 3_5_BRANCH.diff ++++++
package: kdeaddons-3.5.10.tar.bz2
kdemod: kdeaddons
--- BRANCH_STATUS
+++ BRANCH_STATUS
@@ -0,0 +1,2 @@
+current HEAD:
+svn di between //tags/KDE/3.5.10/kdeaddons and //branches/KDE/3.5/kdeaddons

Eigenschaftsänderungen: .
___________________________________________________________________
Gelöscht: svn:mergeinfo
Hinzugefügt: svn:externals
   + admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin


++++++ disable-lnk.diff ++++++
--- kfile-plugins/Makefile.am
+++ kfile-plugins/Makefile.am   2005/01/26 12:11:06
@@ -2,4 +2,4 @@
 CERT_SUBDIR=cert
 endif
 
-SUBDIRS=txt html desktop folder lnk $(CERT_SUBDIR) mhtml
+SUBDIRS=txt html desktop folder $(CERT_SUBDIR) mhtml
++++++ fix-kimgalleryplugin-output.diff ++++++
Index: konq-plugins/kimgalleryplugin/imgalleryplugin.cpp
===================================================================
--- konq-plugins/kimgalleryplugin/imgalleryplugin.cpp   (revision 485498)
+++ konq-plugins/kimgalleryplugin/imgalleryplugin.cpp   (working copy)
@@ -126,7 +126,7 @@
     stream << "<head>" << endl;
     stream << "<title>" << QStyleSheet::escape(m_configDlg->getTitle()) << 
"</title>" << endl;
     stream << "<meta http-equiv=\"content-type\" content=\"text/html; 
charset=" << chsetName << "\"/>" << endl;
-    stream << "<meta name=\"GENERATOR\" content=\"KDE Konqueror KImgallery 
plugin version " KDE_VERSION_STRING "\"/>" << endl;
+    stream << "<meta name=\"GENERATOR\" content=\"KDE Konqueror KImgallery 
plugin version " << KDE_VERSION_MAJOR << "." <<  KDE_VERSION_MINOR << "." << 
KDE_VERSION_RELEASE << "\"/>" << endl;
     createCSSSection(stream);
     stream << "</head>" << endl;
 }
++++++ google-suggest.diff ++++++
Index: searchbar.h
===================================================================
--- konq-plugins/searchbar/searchbar.h  (revision 552886)
+++ konq-plugins/searchbar/searchbar.h  (working copy)
@@ -1,4 +1,6 @@
 /* This file is part of the KDE project
+   Copyright (C) 2005 by Tobi Vollebregt <[email protected]>
+   Copyright (C) 2004 by Vinay Khaitan <[email protected]>
    Copyright (C) 2004 Arend van Beelen jr. <[email protected]>
 
    This program is free software; you can redistribute it and/or
@@ -32,6 +34,7 @@
 class KHTMLPart;
 class KProcess;
 class QPopupMenu;
+class QTimer;
 
 /**
  * Combo box which catches mouse clicks on the pixmap.
@@ -149,6 +152,22 @@
                void updateComboVisibility();
 
                void focusSearchbar();
+
+               // Google Suggest private slots
+               void selectGoogleSuggestMode();
+               void gsStartDelay();
+               void gsMakeCompletionList();
+               void gsDataArrived(KIO::Job*, const QByteArray& data);
+               void gsJobFinished(KIO::Job* job);
+               void gsSetCompletedText(const QString& text);
+               void gsPutTextInBox(const QString& text);
+
+       signals:
+
+               // Google Suggest signals
+
+               void gsCompleteDelayed();
+
        private:
                void nextSearchEntry();
                void previousSearchEntry();
@@ -157,12 +176,20 @@
                SearchBarCombo        *m_searchCombo;
                 KWidgetAction         *m_searchComboAction;
                QPopupMenu            *m_popupMenu;
+               KSelectAction         *m_googleMenu;
                QPixmap                m_searchIcon;
                SearchModes            m_searchMode;
                QString                m_providerName;
                bool                   m_urlEnterLock;
                QString                m_currentEngine;
                QStringList            m_searchEngines;
+
+               // Google Suggest private members
+
+               QTimer                 m_gsTimer;
+               QString                m_gsData;
+               enum GoogleMode        {GoogleOnly,ForAll,Never};
+               GoogleMode             m_googleMode;
 };
 
 #endif // SEARCHBAR_PLUGIN
Index: searchbar.cpp
===================================================================
--- konq-plugins/searchbar/searchbar.cpp        (revision 552890)
+++ konq-plugins/searchbar/searchbar.cpp        (working copy)
@@ -1,4 +1,6 @@
 /* This file is part of the KDE project
+   Copyright (C) 2005 by Tobi Vollebregt <[email protected]>
+   Copyright (C) 2004 by Vinay Khaitan <[email protected]>
    Copyright (C) 2004 Arend van Beelen jr. <[email protected]>
 
    This program is free software; you can redistribute it and/or
@@ -33,10 +35,13 @@
 #include <klocale.h>
 #include <kmimetype.h>
 #include <kprocess.h>
+#include <kprotocolinfo.h>
 #include <kprotocolmanager.h>
 #include <kstandarddirs.h>
 #include <kurifilter.h>
 
+#include <kio/job.h>
+
 #include <kparts/mainwindow.h>
 #include <kparts/partmanager.h>
 
@@ -57,7 +62,9 @@
   KParts::Plugin(parent, name),
   m_searchCombo(0),
   m_searchMode(UseSearchProvider),
-  m_urlEnterLock(false)
+  m_urlEnterLock(false),
+  m_gsTimer(this),
+  m_googleMode(GoogleOnly)
 {
        m_searchCombo = new SearchBarCombo(0L, "search combo");
        m_searchCombo->setDuplicatesEnabled(false);
@@ -65,8 +72,10 @@
        m_searchCombo->setFixedWidth(180);
        m_searchCombo->setLineEdit(new KLineEdit(m_searchCombo));
        m_searchCombo->lineEdit()->installEventFilter(this);
+       m_searchCombo->listBox()->setFocusProxy(m_searchCombo);
 
        m_popupMenu = 0;
+       m_googleMenu = 0;
 
        m_searchComboAction = new KWidgetAction(m_searchCombo, i18n("Search 
Bar"), 0,
                                                             0, 0, 
actionCollection(), "toolbar_search_bar");
@@ -95,6 +104,11 @@
                                 SLOT  (partChanged      (KParts::Part*)));
                partChanged(partMan->activePart());
        }
+
+       connect(this, SIGNAL(gsCompleteDelayed()), SLOT(gsStartDelay()));
+       connect(&m_gsTimer, SIGNAL(timeout()), SLOT(gsMakeCompletionList()));
+       connect(m_searchCombo->listBox(), SIGNAL(highlighted(const QString&)), 
SLOT(gsSetCompletedText(const QString&)));
+       connect(m_searchCombo, SIGNAL(activated(const QString&)), 
SLOT(gsPutTextInBox(const QString&)));
 }
 
 SearchBarPlugin::~SearchBarPlugin()
@@ -103,6 +117,7 @@
        config->setGroup("SearchBar");
        config->writeEntry("Mode", (int) m_searchMode);
        config->writeEntry("CurrentEngine", m_currentEngine);
+       config->writeEntry("GoogleSuggestMode", m_googleMode);
 
        delete m_searchCombo;
        m_searchCombo = 0L;
@@ -120,6 +135,14 @@
        if( o==m_searchCombo->lineEdit() && e->type() == QEvent::KeyPress ) 
        {
                QKeyEvent *k = (QKeyEvent *)e;
+               QString text = k->text();
+               if(!text.isEmpty())
+               {
+                       if(k->key() != Qt::Key_Return && k->key() != Key_Enter 
&& k->key() != Key_Escape)
+                       {
+                               emit gsCompleteDelayed();
+                       }
+               }
                if(k->state() & ControlButton)
                {
                        if(k->key()==Key_Down)
@@ -133,6 +156,36 @@
                                return true;
                        }
                }
+               else
+               {
+                       if (k->key() == Key_Up || k->key() == Key_Down)
+                       {
+                               if(m_searchCombo->listBox()->isVisible())
+                               {
+                                       
qApp->sendEvent(m_searchCombo->listBox(), e);
+                                       return true;
+                               }
+                       }
+               }
+               if (k->key() == Key_Enter || k->key() == Key_Return)
+               {
+                       /*- Fix a bug which caused the searchbar to search for 
the completed
+                           input instead of the literal input when enter was 
pressed and
+                           the listbox was visible.
+                       if(m_searchCombo->listBox()->isVisible())
+                       {
+                               qApp->sendEvent(m_searchCombo->listBox(),e);
+                       }*/
+               }
+               if (k->key() == Key_Escape)
+               {
+                       m_searchCombo->listBox()->hide();
+                       if (m_searchCombo->lineEdit()->hasSelectedText())
+                       {
+                               
m_searchCombo->lineEdit()->setText(m_searchCombo->currentText().left(m_searchCombo->lineEdit()->selectionStart()));
+                       }
+                       m_gsTimer.stop();
+               }
        }
        return false;
 }
@@ -197,11 +250,16 @@
        setIcon();
 }
 
-void SearchBarPlugin::startSearch(const QString &search)
+void SearchBarPlugin::startSearch(const QString &_search)
 {
-       if(m_urlEnterLock || search.isEmpty() || !m_part)
+       if(m_urlEnterLock || _search.isEmpty() || !m_part)
                return;
 
+       m_gsTimer.stop();
+       m_searchCombo->listBox()->hide();
+
+       QString search = _search.section('(', 0, 0).stripWhiteSpace();
+
        if(m_searchMode == FindInThisPage)
        {
                m_part->findText(search, 0);
@@ -355,10 +413,16 @@
                }
 
                m_popupMenu->insertSeparator();
+               m_googleMenu = new KSelectAction(i18n("Use Google Suggest"), 
SmallIconSet("ktip"), 0, this, SLOT(selectGoogleSuggestMode()), m_popupMenu);
+               QStringList google_modes;
+                google_modes << i18n("For Google Only") << i18n("For All 
Searches") << i18n("Never");
+               m_googleMenu->setItems(google_modes);
+               m_googleMenu->plug(m_popupMenu);
                m_popupMenu->insertItem(SmallIcon("enhanced_browsing"), 
i18n("Select Search Engines..."),
                        this, SLOT(selectSearchEngines()), 0, 1000);
                connect(m_popupMenu, SIGNAL(activated(int)), 
SLOT(useSearchProvider(int)));
        }
+       m_googleMenu->setCurrentItem(m_googleMode);
        m_popupMenu->popup(m_searchCombo->mapToGlobal(QPoint(0, 
m_searchCombo->height() + 1)), 0);
 }
 
@@ -441,6 +505,7 @@
        config->setGroup("SearchBar");
        m_searchMode = (SearchModes) config->readNumEntry("Mode", (int) 
UseSearchProvider);
        m_currentEngine = config->readEntry("CurrentEngine", engine);
+       m_googleMode=(GoogleMode)config->readNumEntry("GoogleSuggestMode", 
GoogleOnly);
 
        if ( m_currentEngine.isEmpty() )
            m_currentEngine = "google";
@@ -553,4 +618,116 @@
        }
 }
 
+// Google Suggest code
+
+void SearchBarPlugin::selectGoogleSuggestMode()
+{
+       m_googleMode = (GoogleMode)m_googleMenu->currentItem();
+       KConfig *config = kapp->config();
+       config->setGroup("SearchBar");
+       config->writeEntry("GoogleSuggestMode", m_googleMode);
+       config->sync();
+}
+
+// adapted and modified by Tobi Vollebregt
+// original code from Googlebar by Vinay Khaitan
+
+void SearchBarPlugin::gsStartDelay()
+{
+       m_gsTimer.stop();
+       m_searchCombo->listBox()->hide();
+       // FIXME: make configurable
+       m_gsTimer.start(500, true);
+}
+
+void SearchBarPlugin::gsMakeCompletionList()
+{
+       if ((m_googleMode==GoogleOnly && m_currentEngine != "google") || 
m_googleMode==Never)
+               return;
+
+       if (!m_searchCombo->currentText().isEmpty())
+       {
+               KIO::TransferJob* tj =
+                               
KIO::get(KURL("http://www.google.com/complete/search?hl=en&js=true&qu="; + 
m_searchCombo->currentText()), false, false);
+               connect(tj, SIGNAL(data(KIO::Job*, const QByteArray&)), this, 
SLOT(gsDataArrived(KIO::Job*, const QByteArray&)));
+               connect(tj, SIGNAL(result(KIO::Job*)), this, 
SLOT(gsJobFinished(KIO::Job*)));
+       }
+}
+
+void SearchBarPlugin::gsDataArrived(KIO::Job*, const QByteArray& data)
+{
+       m_gsData += QString::fromUtf8(data.data());
+}
+
+static QString reformatNumber(const QString& number)
+{
+       static const char suffix[] = { 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y' };
+       QString s = number.stripWhiteSpace();
+       uint c = 0;
+       for (int i = s.length() - 1; i > 0 && s[i] == '0'; --i) ++c;
+       c /= 3;
+       if (c >= sizeof(suffix)/sizeof(suffix[0]))
+               c = sizeof(suffix)/sizeof(suffix[0]) - 1;
+       s = s.left(s.length() - c * 3) + suffix[c];
+       return s;
+}
+
+void SearchBarPlugin::gsJobFinished(KIO::Job* job)
+{
+       if (((KIO::TransferJob*)job)->error() == 0)
+       {
+               QString temp;
+               temp = m_gsData.mid(m_gsData.find('(') + 1, 
m_gsData.findRev(')') - m_gsData.find('(') - 1);
+               temp = temp.mid(temp.find('(') + 1, temp.find(')') - 
temp.find('(') - 1);
+               temp.remove('"');
+               QStringList compList1 = QStringList::split(',', temp);
+               temp = m_gsData.mid(m_gsData.find(')') + 1, 
m_gsData.findRev(')') - m_gsData.find('(') - 1);
+               temp = temp.mid(temp.find('(') + 1, temp.find(')') - 
temp.find('(') - 1);
+               temp.remove('"');
+               temp.remove(',');
+               temp.remove('s');
+               QStringList compList2 = QStringList::split("reult", temp);
+               QStringList finalList;
+               for(uint j = 0; j < compList1.count(); j++)
+               {
+                       if (m_googleMode!=ForAll || m_currentEngine == "google")
+                               finalList.append(compList1[j].stripWhiteSpace() 
+ " (" + reformatNumber(compList2[j]) + ")");
+                       else
+                               
finalList.append(compList1[j].stripWhiteSpace());
+               }
+               //store text so that we can restore it if it gets erased after 
GS returns no results
+               temp = m_searchCombo->currentText();
+               m_searchCombo->listBox()->clear();
+               m_searchCombo->listBox()->insertStringList(finalList);
+               m_searchCombo->setIcon(m_searchIcon);
+               //restore text
+               m_searchCombo->lineEdit()->setText(temp);
+               if (finalList.count() != 0 && !m_gsTimer.isActive())
+               {
+                       m_searchCombo->popup();
+               }
+       }
+       m_gsData = "";
+}
+
+void SearchBarPlugin::gsSetCompletedText(const QString& text)
+{
+       QString currentText;
+       if (m_searchCombo->lineEdit()->hasSelectedText())
+               currentText = 
m_searchCombo->currentText().left(m_searchCombo->lineEdit()->selectionStart());
+       else
+               currentText = m_searchCombo->currentText();
+       if (currentText == text.left(currentText.length()))
+       {
+               m_searchCombo->lineEdit()->setText(text.left(text.find('(') - 
1));
+               
m_searchCombo->lineEdit()->setCursorPosition(currentText.length());
+               m_searchCombo->lineEdit()->setSelection(currentText.length(), 
m_searchCombo->currentText().length() - currentText.length());
+       }
+}
+
+void SearchBarPlugin::gsPutTextInBox(const QString& text)
+{
+       m_searchCombo->lineEdit()->setText(text.section('(', 0, 
0).stripWhiteSpace());
+}
+
 #include "searchbar.moc"
++++++ kdeaddons-3.5.10-gcc45.diff ++++++
--- kate/tabbarextension/plugin_katetabbarextension.h~  2008-08-19 
20:10:36.000000000 +0200
+++ kate/tabbarextension/plugin_katetabbarextension.h   2010-07-30 
16:38:48.169601926 +0200
@@ -53,7 +53,7 @@ class KateTabBarButton;
 class MyPtrList : public QPtrList <KateTabBarButton>
 {
   public:
-  MyPtrList() { QPtrList<KateTabBarButton>::QPtrList(); }
+  MyPtrList() { QPtrList<KateTabBarButton>(); }
 
   virtual int compareItems ( QPtrCollection::Item item1_, QPtrCollection::Item 
item2_ );
 };
++++++ permanent-searchbar.diff ++++++
--- ./konq-plugins/dirfilter/dirfilterplugin.cpp        2006/12/01 10:54:21     
1.1
+++ ./konq-plugins/dirfilter/dirfilterplugin.cpp        2006/12/01 13:51:40
@@ -19,6 +19,8 @@
 #include <unistd.h>
 #include <sys/types.h>
 
+#include <qpainter.h>
+#include <qstyle.h>
 #include <qtimer.h>
 #include <qapplication.h>
 #include <qlabel.h>
@@ -45,6 +47,7 @@
 #include <kstaticdeleter.h>
 #include <kgenericfactory.h>
 #include <kparts/browserextension.h>
+#include <kio/netaccess.h>
 
 #include "dirfilterplugin.h"
 
@@ -122,6 +125,7 @@
 
   cfg.writeEntry ("ShowCount", showCount);
   cfg.writeEntry ("UseMultipleFilters", useMultipleFilters);
+  cfg.writeEntry ("SearchMode", searchMode);
   cfg.sync();
 }
 
@@ -135,6 +139,7 @@
 
   showCount = cfg.readBoolEntry ("ShowCount", false);
   useMultipleFilters = cfg.readBoolEntry ("UseMultipleFilters", true);
+  searchMode = (SearchModes)cfg.readNumEntry("SearchMode", Beagle);
   m_pid = getpid ();
   m_bSettingsLoaded = true;
 }
@@ -144,7 +149,9 @@
 DirFilterPlugin::DirFilterPlugin (QObject* parent, const char* name,
                                   const QStringList&)
                 :KParts::Plugin (parent, name),
+                 m_beagled_running(false),
                  m_pFilterMenu(0),
+                 m_popupMenu(0),
                  m_searchWidget(0)
 {
   m_part = ::qt_cast<KonqDirPart*>(parent);
@@ -172,40 +179,77 @@
   QHBox *hbox = new QHBox(m_part->widget());
   hbox->hide();
 
-  KAction *clear = new KAction(i18n("Clear Filter Field"),
+  m_clear = new KAction(i18n("Clear Filter Field"),
                                QApplication::reverseLayout() ? "clear_left" : 
"locationbar_erase",
                                0, 0, 0, actionCollection(), "clear_filter");
 
-  clear->setWhatsThis(i18n("Clear filter field<p>Clears the content of the 
filter field."));
-
-  if ( ::qt_cast<KListView*>(m_part->scrollWidget()) )
-  {
-    m_searchWidget = new KListViewSearchLine(hbox);
-    
static_cast<KListViewSearchLine*>(m_searchWidget)->setListView(static_cast<KListView*>(m_part->scrollWidget()));
-  }
-  else if ( ::qt_cast<QIconView*>(m_part->scrollWidget()) )
-  {
-    m_searchWidget = new KIconViewSearchLine(hbox);
-    
static_cast<KIconViewSearchLine*>(m_searchWidget)->setIconView(static_cast<QIconView*>(m_part->scrollWidget()));
-  }
+  m_clear->setWhatsThis(i18n("Clear filter field<p>Clears the content of the 
filter field."));
 
-
-  if ( m_searchWidget )
-  {
-    QWhatsThis::add(m_searchWidget, i18n("Enter here a text which an item in 
the view must contain anywhere to be shown."));
-    connect(clear, SIGNAL(activated()), m_searchWidget, SLOT(clear()));
-  }
+  m_searchWidget = new SearchBarCombo(hbox, "search combo");
+  m_searchWidget->setDuplicatesEnabled(false);
+  m_searchWidget->setMaxCount(5);
+  m_searchWidget->setFixedWidth(180);
+  connect(m_searchWidget, SIGNAL(activated(const QString &)),
+                         SLOT(startSearch(const QString &)));
+  connect(m_searchWidget, SIGNAL(iconClicked()), SLOT(showSelectionMenu()));
 
   KWidgetAction *filterAction = new KWidgetAction(hbox, i18n("Filter Field"),
                                                   0, 0, 0, actionCollection(), 
"toolbar_filter_field");
   filterAction->setShortcutConfigurable(false);
+
+  m_timerDetectBeagle = new QTimer(this);
+  connect(m_timerDetectBeagle, SIGNAL(timeout()), SLOT(slotDetectBeagle()));
+  m_timerDetectBeagle->start(0, true);
 }
 
 DirFilterPlugin::~DirFilterPlugin()
 {
+  m_timerDetectBeagle->stop();
+  if (checking_for_beagle) {
+      checking_for_beagle = false;
+      qApp->exit_loop();
+  }
   delete m_pFilterMenu;
 }
 
+void DirFilterPlugin::slotDetectBeagle()
+{
+  KIO::UDSEntry uds;
+  const KURL kurl("beagle:?beagled-status");
+  if (checking_for_beagle) {
+    m_timerDetectBeagle->start(10, true);
+    return;
+  }
+  checking_for_beagle = true;
+  bool stat_result = KIO::NetAccess::stat(kurl, uds);
+  if (!checking_for_beagle)
+     return;
+  if (!stat_result) {
+     switchToFilter();
+  }
+  else {
+     m_beagled_running = true;
+     if (SessionManager::self()->searchMode==SessionManager::Beagle) {
+       setIcon();
+       slotUseBeagle();
+     }
+     else {
+       setIcon();
+       switchToFilter();
+     }
+  }
+  checking_for_beagle = false;
+}
+
+void DirFilterPlugin::startSearch(const QString &search)
+{
+       if( SessionManager::self()->searchMode == SessionManager::Filter )
+               return;
+
+       emit m_part->extension()->openURLRequest("beagle:"+search);
+}
+
+
 void DirFilterPlugin::slotOpenURL ()
 {
   KURL url = m_part->url();
@@ -218,12 +262,13 @@
     //Clears the hidden list which is by now outdated...
     if (m_searchWidget)
     {
-      SessionManager::self()->save(m_pURL, m_searchWidget->text());
+      SessionManager::self()->save(m_pURL, m_searchWidget->lineEdit()->text());
       m_searchWidget->clear();
 
       QString typedFilter(SessionManager::self()->restoreTypedFilter(url));
       m_searchWidget->completionObject()->addItem(typedFilter);
-      m_searchWidget->setText(typedFilter);
+      m_searchWidget->lineEdit()->setText(typedFilter);
+      setIcon();
     }
 
     m_pURL = url;
@@ -485,6 +530,162 @@
     m_part->openURL (m_part->url());
 }
 
+void DirFilterPlugin::setIcon()
+{
+       QString hinttext;
+       QPixmap m_searchIcon;
+       if (SessionManager::self()->searchMode == SessionManager::Filter) {
+               m_searchIcon = SmallIcon("filter");
+               hinttext = i18n("Filter This Folder");
+       }
+       else {
+               m_searchIcon = SmallIcon("kio_beagle");
+               hinttext = i18n("Search Index");
+       }
+
+       if (m_beagled_running) {
+               // Create a bit wider icon with arrow
+               QPixmap arrowmap = 
QPixmap(m_searchIcon.width()+5,m_searchIcon.height()+5);
+               arrowmap.fill(m_searchWidget->lineEdit()->backgroundColor());
+               QPainter p( &arrowmap );
+               p.drawPixmap(0, 2, m_searchIcon);
+               QStyle::SFlags arrowFlags = QStyle::Style_Default;
+               m_searchWidget->style().drawPrimitive(QStyle::PE_ArrowDown, &p, 
QRect(arrowmap.width()-6, 
+               arrowmap.height()-6, 6, 5), m_searchWidget->colorGroup(), 
arrowFlags, QStyleOption() );
+               p.end();
+               m_searchIcon = arrowmap;
+       }
+
+       m_searchWidget->setIcon(m_searchIcon);
+       
static_cast<KLineEdit*>(m_searchWidget->lineEdit())->setClickMessage(hinttext);
+}
+
+void DirFilterPlugin::showSelectionMenu()
+{
+       if (!m_beagled_running)
+               return;
+
+       if(!m_popupMenu)
+       {
+               m_popupMenu = new QPopupMenu(m_searchWidget, "search mode 
selection");
+               m_popupMenu->insertItem(SmallIcon("kio_beagle"), i18n("Search 
Index"), this, SLOT(slotUseBeagle()));
+               m_popupMenu->insertItem(SmallIcon("filter"), i18n("Filter This 
Folder"), this, SLOT(slotUseFilter()));
+       }
+       m_popupMenu->popup(m_searchWidget->mapToGlobal(QPoint(0, 
m_searchWidget->height() + 1)), 0);
+}
+
+void DirFilterPlugin::slotUseBeagle()
+{
+       SessionManager::self()->searchMode = SessionManager::Beagle;
+       m_searchWidget->setLineEdit(new KLineEdit(m_searchWidget));
+       m_searchWidget->lineEdit()->installEventFilter(this);
+       m_searchWidget->setFocus();
+       QWhatsThis::add(m_searchWidget->lineEdit(), i18n("Enter here a text 
which shall be searched on the whole system in the Beagle index."));
+       connect(m_clear, SIGNAL(activated()), m_searchWidget->lineEdit(), 
SLOT(clear()));
+       setIcon();
+}
+
+void DirFilterPlugin::slotUseFilter()
+{
+        switchToFilter();
+       m_searchWidget->setFocus();
+}
+
+void DirFilterPlugin::switchToFilter()
+{
+       SessionManager::self()->searchMode = SessionManager::Filter;
+       if ( ::qt_cast<KListView*>(m_part->scrollWidget()) ) {
+               KListViewSearchLine* searchlineWidget = new 
KListViewSearchLine(m_searchWidget);
+               m_searchWidget->setLineEdit(searchlineWidget);
+               
searchlineWidget->setListView(static_cast<KListView*>(m_part->scrollWidget()));
+       }
+       else if ( ::qt_cast<QIconView*>(m_part->scrollWidget()) ) {
+               KIconViewSearchLine* searchlineWidget = new 
KIconViewSearchLine(m_searchWidget);
+               m_searchWidget->setLineEdit(searchlineWidget);
+               
searchlineWidget->setIconView(static_cast<QIconView*>(m_part->scrollWidget()));
+       }
+       m_searchWidget->lineEdit()->installEventFilter(this);
+       QWhatsThis::add(m_searchWidget->lineEdit(), i18n("Enter here a text 
which an item in the view must contain anywhere to be shown."));
+       connect(m_clear, SIGNAL(activated()), m_searchWidget->lineEdit(), 
SLOT(clear()));
+       setIcon();
+}
+
+SearchBarCombo::SearchBarCombo(QWidget *parent, const char *name) :
+  KHistoryCombo(parent, name),
+  m_pluginActive(true)
+{
+       connect(this, SIGNAL(cleared()), SLOT(historyCleared()));
+}
+
+const QPixmap &SearchBarCombo::icon() const
+{
+       return m_icon;
+}
+
+void SearchBarCombo::setIcon(const QPixmap &icon)
+{
+       m_icon = icon;
+
+       if(count() == 0)
+       {
+               insertItem(m_icon, 0);
+       }
+       else
+       {
+               for(int i = 0; i < count(); i++)
+               {
+                       changeItem(m_icon, text(i), i);
+               }
+       }
+}
+
+int SearchBarCombo::findHistoryItem(const QString &searchText)
+{
+       for(int i = 0; i < count(); i++)
+       {
+               if(text(i) == searchText)
+               {
+                       return i;
+               }
+       }
+
+       return -1;
+}
+
+void SearchBarCombo::mousePressEvent(QMouseEvent *e)
+{
+       int x0 = QStyle::visualRect( style().querySubControlMetrics( 
QStyle::CC_ComboBox, this, QStyle::SC_ComboBoxEditField ), this ).x();
+
+       if(e->x() > x0 + 2 && e->x() < lineEdit()->x())
+       {
+               emit iconClicked();
+
+               e->accept();
+       }
+       else
+       {
+               KHistoryCombo::mousePressEvent(e);
+       }
+}
+
+void SearchBarCombo::historyCleared()
+{
+       setIcon(m_icon);
+}
+
+void SearchBarCombo::setPluginActive(bool pluginActive)
+{
+       m_pluginActive = pluginActive;
+}
+
+void SearchBarCombo::show()
+{
+       if(m_pluginActive)
+       {
+               KHistoryCombo::show();
+       }
+}
+
 typedef KGenericFactory<DirFilterPlugin> DirFilterFactory;
 K_EXPORT_COMPONENT_FACTORY (libdirfilterplugin, 
DirFilterFactory("dirfilterplugin"))
 
--- ./konq-plugins/dirfilter/dirfilterplugin.rc 2006/12/01 10:54:23     1.1
+++ ./konq-plugins/dirfilter/dirfilterplugin.rc 2006/12/01 10:54:38
@@ -9,5 +9,6 @@
   <Action name="filterdir"/>
 </ToolBar>
 <ToolBar fullWidth="true" name="locationToolBar" newline="true"><text>Filter 
Toolbar</text>
+  <Action name="toolbar_filter_field" />
 </ToolBar>
 </kpartplugin>
--- ./konq-plugins/dirfilter/dirfilterplugin.h  2006/12/01 10:54:19     1.1
+++ ./konq-plugins/dirfilter/dirfilterplugin.h  2006/12/01 13:09:31
@@ -27,10 +27,13 @@
 #include <kfileitem.h>
 #include <klibloader.h>
 #include <kparts/plugin.h>
+#include <kcombobox.h>
 
 class KActionMenu;
 class KonqDirPart;
 class KLineEdit;
+class SearchBarCombo;
+class QPopupMenu;
 
 
 namespace KParts
@@ -54,8 +57,12 @@
   void save (const KURL& url, const QStringList& filters);
   void save (const KURL& url, const QString& typedFilter);
 
+  /** Possible search modes */
+  enum SearchModes { Beagle = 0, Filter };
+
   bool showCount;
   bool useMultipleFilters;
+  SearchModes searchMode;
 
 protected:
 
@@ -76,6 +83,7 @@
   QMap<QString,QString> m_typedFilter;
 };
 
+static bool checking_for_beagle = false;
 
 class DirFilterPlugin : public KParts::Plugin
 {
@@ -108,6 +116,7 @@
 
   void loadSettings();
   void saveSettings();
+  void setIcon();
 
 private slots:
   void slotReset();
@@ -119,14 +128,86 @@
   void slotItemSelected(int);
   void slotItemRemoved(const KFileItem *);
   void slotItemsAdded(const KFileItemList &);
+  void showSelectionMenu();
+  void slotUseBeagle();
+  void slotUseFilter();
+  void slotDetectBeagle();
+  void startSearch(const QString &search);
 
 private:
+  void switchToFilter();
+
+
+  bool m_beagled_running;
+  QTimer *m_timerDetectBeagle;
   KURL m_pURL;
   KonqDirPart* m_part;
   KActionMenu* m_pFilterMenu;
+  QPopupMenu* m_popupMenu;
+  KAction *m_clear;
 
-  KLineEdit *m_searchWidget;
+  SearchBarCombo *m_searchWidget;
   QMap<QString,MimeInfo> m_pMimeInfo;
   typedef QMap<QString,MimeInfo>::Iterator MimeInfoIterator;
 };
+
+/**
+ * Combo box which catches mouse clicks on the pixmap.
+ */
+class SearchBarCombo : public KHistoryCombo
+{
+       Q_OBJECT
+
+       public:
+               /**
+                * Constructor.
+                */
+               SearchBarCombo(QWidget *parent, const char *name);
+
+               /**
+                * Returns the icon currently displayed in the combo box.
+                */
+               const QPixmap &icon() const;
+
+               /**
+                * Sets the icon displayed in the combo box.
+                */
+               void setIcon(const QPixmap &icon);
+
+               /**
+                * Finds a history item by its text.
+                * @return The item number, or -1 if the item is not found.
+                */
+               int findHistoryItem(const QString &text);
+
+               /**
+                * Sets whether the plugin is active. It can be inactive
+                * in case the current Konqueror part isn't a KHTML part.
+                */
+               void setPluginActive(bool pluginActive);
+
+       public slots:
+               virtual void show();
+
+       signals:
+               /**
+                * Emitted when the icon was clicked.
+                */
+               void iconClicked();
+
+       protected:
+               /**
+                * Captures mouse clicks and emits iconClicked() if the icon
+                * was clicked.
+                */
+               virtual void mousePressEvent(QMouseEvent *e);
+
+       private slots:
+               void historyCleared();
+
+       private:
+               QPixmap m_icon;
+               bool    m_pluginActive;
+};
+
 #endif
++++++ use-db.diff ++++++
--- noatun-plugins/oblique/base.cpp
+++ noatun-plugins/oblique/base.cpp
@@ -14,14 +14,13 @@
 
 #include <cstdlib>
 #include <assert.h>
-#include <db_cxx.h>
-
-
+#include <iostream>
+#include <db.h>
 
 struct Base::Private
 {
-       Private() : db(0, DB_CXX_NO_EXCEPTIONS) { }
-       Db db;
+       Private() : db(0) { db_create(&db, NULL, 0); }
+       DB* db;
        typedef KDbt<FileId> Key;
        typedef KDbt<QStringList> Data;
 
@@ -43,17 +42,15 @@ Base::Base(const QString &file)
        QCString filename = QFile::encodeName(file);
 
        bool create = true;
-       if (d->db.open(
-#if DB_VERSION_MINOR > 0 && DB_VERSION_MAJOR >= 4
+       if (d->db->open( d->db,
                        NULL,
-#endif
                        filename,
                        0, DB_BTREE, DB_NOMMAP, 0
-               )==0)
+               )== 0)
        { // success
                Private::Data data;
                Private::Key key(0);
-               if (d->db.get(0, &key, &data, 0)==0)
+               if (d->db->get(d->db, NULL, &key, &data, 0)==0)
                {
                        QStringList strs;
                        data.get(strs);
@@ -72,10 +69,9 @@ Base::Base(const QString &file)
        if (create)
        { // failure
                QFile(filename).remove();
-               d->db.open(
-#if DB_VERSION_MINOR > 0 && DB_VERSION_MAJOR >= 4
+               d->db->open(
+                                d->db,
                                NULL,
-#endif
                                filename,0, DB_BTREE, DB_NOMMAP|DB_CREATE,0
                        );
 
@@ -91,7 +87,7 @@ Base::Base(const QString &file)
                //   "the high extreme (auto-increment counter in SQL 
terminology)",
                //   "the metaxml"
                // }
-               d->db.put(0, &key, &data, 0);
+               d->db->put(d->db, 0, &key, &data, 0);
        }
 }
 
@@ -108,9 +104,9 @@ Base::~Base()
 
        Private::Data data(strs);
        Private::Key key(0);
-       d->db.put(0, &key, &data, 0);
-       d->db.sync(0);
-       d->db.close(0);
+       d->db->put(d->db, 0, &key, &data, 0);
+       d->db->sync(d->db, 0);
+       d->db->close(d->db, 0);
        delete d;
 }
 
@@ -121,7 +117,7 @@ File Base::add(const QString &file)
        properties << "file" << file;
        Private::Data data(properties);
 
-       unless (d->db.put(0, &key, &data, 0))
+       unless (d->db->put(d->db, 0, &key, &data, 0))
        {
                // success !
                File f(this, d->high);
@@ -140,7 +136,7 @@ File Base::find(FileId id)
        Private::Key key(id);
        Private::Data data;
 
-       unless (d->db.get(0, &key, &data, 0))
+       unless (d->db->get(d->db, 0, &key, &data, 0))
        {
                // exists
                return File(this, id);
@@ -205,8 +201,8 @@ void Base::setProperty(FileId id, const 
 
        Private::Data data(props);
        Private::Key dbkey(id);
-       d->db.put(0, &dbkey, &data, 0);
-       d->db.sync(0);
+       d->db->put(d->db, 0, &dbkey, &data, 0);
+       d->db->sync(d->db, 0);
 
        emit modified(File(this, id));
 }
@@ -243,8 +239,8 @@ void Base::clearProperty(FileId id, cons
 
        Private::Data data(props);
        Private::Key dbkey(id);
-       d->db.put(0, &dbkey, &data, 0);
-       d->db.sync(0);
+       d->db->put(d->db, 0, &dbkey, &data, 0);
+       d->db->sync(d->db, 0);
 
        emit modified(File(this, id));
 }
@@ -253,7 +249,7 @@ void Base::remove(File file)
 {
        Private::Key key(file.id());
 
-       unless (d->db.del(0, &key, 0))
+       unless (d->db->del(d->db, 0, &key, 0))
        {
                emit removed(file);
                if (file.id() == d->high)
@@ -261,7 +257,7 @@ void Base::remove(File file)
                        d->high--;  // optimization
                }
        }
-       d->db.sync(0);
+       d->db->sync(d->db, 0);
 }
 
 void Base::loadIntoCache(FileId id) const
@@ -273,7 +269,7 @@ void Base::loadIntoCache(FileId id) cons
 
        Private::Key key(id);
        Private::Data data;
-       unless (d->db.get(0, &key, &data, 0))
+       unless (d->db->get(d->db, 0, &key, &data, 0))
        {
                QStringList props;
                data.get(props);
@@ -317,14 +313,14 @@ void Base::move(FileId oldid, FileId new
 {
        Private::Key key(oldid);
        Private::Data data;
-       unless (d->db.get(0, &key, &data, 0))
+       unless (d->db->get(d->db, 0, &key, &data, 0))
        {
                QStringList props;
                data.get(props);
-               d->db.del(0, &key, 0);
+               d->db->del(d->db, 0, &key, 0);
 
                Private::Key key2(newid);
-               d->db.put(0, &key2, &data, 0);
+               d->db->put(d->db, 0, &key2, &data, 0);
        }
 }
 
--- noatun-plugins/oblique/configure.in.in
+++ noatun-plugins/oblique/configure.in.in
@@ -1,29 +1,29 @@
 AC_ARG_WITH(berkeley-db,
-  [AC_HELP_STRING([--with-berkeley-db],[enable support for Berkeley DB++ 
@<:@default=check@:>@])],
+  [AC_HELP_STRING([--with-berkeley-db],[enable support for Berkeley DB 
@<:@default=check@:>@])],
   [], with_berkeley_db=check)
 
 AC_ARG_WITH(db-lib,
-  [AC_HELP_STRING([--with-db-lib=NAME],[name of the Berkeley DB++ library 
@<:@default=db_cxx@:>@])],
-    [ac_db_name="$withval"], [ac_db_name="db_cxx"])
+  [AC_HELP_STRING([--with-db-lib=NAME],[name of the Berkeley DB library 
@<:@default=db@:>@])],
+    [ac_db_name="$withval"], [ac_db_name="db"])
 
 berkeley_db=no
 if test "x$with_berkeley_db" != xno; then
   berkeley_db=yes
 
-  KDE_CHECK_HEADER([db_cxx.h],
+  KDE_CHECK_HEADER([db.h],
     [:], [berkeley_db=no])
 
   AC_CHECK_LIB([$ac_db_name], [main],
     [:], [berkeley_db=no])
 
   if test "x$berkeley_db" = xyes; then
-    AC_DEFINE(BERKELEY_DB, 1, [Define if you have Berkeley DB++ installed])
+    AC_DEFINE(BERKELEY_DB, 1, [Define if you have Berkeley DB installed])
     BERKELEY_DB_LIBS="-l$ac_db_name"
     AC_SUBST(BERKELEY_DB_LIBS)
   fi
 
   if test "x$with_berkeley_db" != xcheck && test "x$berkeley_db" != xyes; then
-    AC_MSG_ERROR([--with-berkeley-db was given, but test for Berkeley DB++ 
failed])
+    AC_MSG_ERROR([--with-berkeley-db was given, but test for Berkeley DB 
failed])
   fi
 fi
 
--- noatun-plugins/oblique/kdbt.h
+++ noatun-plugins/oblique/kdbt.h
@@ -6,17 +6,17 @@
 #ifndef KDbt_Interface
 #define KDbt_Interface
 
-#include <db_cxx.h>
 #include <qdatastream.h>
 #include <qbuffer.h>
 #include "kbuffer.h"
+#include "db.h"
 
 /**A generic wrapper for "database thang" class that abstracts binary 
streaming operations.
   *@author Eray Ozkural (exa)
   */
 
 template <typename T>
-class KDbt : public Dbt {
+class KDbt : public DBT {
 public:
   /* assume streaming operators on QDataStream
   QDataStream & operator>> ( QDataStream& >>, T &);
@@ -28,32 +28,24 @@ public:
   KDbt(const T& obj) {
     set(obj);
   }
-//  operator Dbt() {
-//    return Dbt(thang.data(), thang.size());
-//  }
   /** set "thang" to the contents of obj */
   void set(const T& obj) {
-//    KBuffer buffer(thang);
-    QDataStream ds(&thang);
+    QDataStream ds(thang, IO_WriteOnly);
     ds << obj;
-//    std::cerr << "thang size " << thang.size() << endl;
-//    buffer.close();
-//    set_data(thang.data());
-//    set_size(buffer.size());
-    set_data(thang.data());
-    set_size(thang.size());
+    data = thang.data();
+    size = thang.size();
   }
+
   void get(T& obj) {
     QByteArray buffer;
-    buffer.setRawData((char*)get_data(),get_size());
+    buffer.setRawData((char*)data,size);
     QDataStream ds(buffer,IO_ReadWrite);
     ds >> obj;
-    buffer.resetRawData((char*)get_data(),get_size());
+    buffer.resetRawData((char*)data,size);
   }
 private:
   /** Internal data */
-//  QByteArray thang;
-  KBuffer thang;
+  QByteArray thang;
 };
 
 #endif

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to