Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117883643
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/core/resultiterator.cpp b/src/core/resultiterator.cpp
index 8ce53188..f426c696 100644
--- a/src/core/resultiterator.cpp
+++ b/src/core/resultiterator.cpp
@@ -1,106 +1,108 @@
/*
* This file is part of the KDE Baloo Project
* Copyright (C) 2013 Vishesh Handa <me@vhanda.in>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) version 3, or any
* later version accepted by the membership of KDE e.V. (or its
* successor approved by the membership of KDE e.V.), which shall
* act as a proxy defined in Section 6 of version 3 of the license.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "resultiterator.h"
#include "searchstore.h"
#include "result.h"
#include <KDebug>
using namespace Baloo;
-class Baloo::ResultIterator::Private {
-public:
- int queryId;
- SearchStore* store;
-};
+ResultIteratorPrivate::ResultIteratorPrivate()
+ : queryId(0)
+ , store(0)
+{
+}
+
+/*
+ * FIXME: The linker complains if it is not present in the header.
+ResultIteratorPrivate::~ResultIteratorPrivate()
+{
+ if (store) {
+ store->close(queryId);
+ }
+}
+*/
+
ResultIterator::ResultIterator(int id, SearchStore* store)
- : d(new Private)
+ : d(new ResultIteratorPrivate)
{
d->queryId = id;
d->store = store;
}
ResultIterator::ResultIterator()
- : d(new Private)
+ : d(new ResultIteratorPrivate)
{
- d->queryId = 0;
- d->store = 0;
-}
-
-ResultIterator::~ResultIterator()
-{
- if (d->store)
- d->store->close(d->queryId);
- delete d;
}
bool ResultIterator::next()
{
if (d->store)
return d->store->next(d->queryId);
else
return false;
}
Item::Id ResultIterator::id() const
{
if (d->store)
return d->store->id(d->queryId);
else
return Item::Id();
}
QUrl ResultIterator::url() const
{
if (d->store)
return d->store->url(d->queryId);
else
return QUrl();
}
QString ResultIterator::text() const
{
if (d->store)
return d->store->text(d->queryId);
else
return QString();
}
QString ResultIterator::icon() const
{
if (d->store)
return d->store->icon(d->queryId);
else
return QString();
}
Result ResultIterator::result() const
{
Result res;
res.setId(id());
res.setText(text());
res.setIcon(icon());
res.setUrl(url());
return res;
}
diff --git a/src/core/resultiterator.h b/src/core/resultiterator.h
index c2937de2..683aa7b2 100644
--- a/src/core/resultiterator.h
+++ b/src/core/resultiterator.h
@@ -1,57 +1,71 @@
/*
* This file is part of the KDE Baloo Project
* Copyright (C) 2013 Vishesh Handa <me@vhanda.in>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) version 3, or any
* later version accepted by the membership of KDE e.V. (or its
* successor approved by the membership of KDE e.V.), which shall
* act as a proxy defined in Section 6 of version 3 of the license.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef _BALOO_CORE_RESULT_ITERATOR_H
#define _BALOO_CORE_RESULT_ITERATOR_H
#include "core_export.h"
#include "item.h"
+#include "searchstore.h"
+
+#include <QExplicitlySharedDataPointer>
namespace Baloo {
class SearchStore;
class Result;
+// TODO: Move this to another file?
+class ResultIteratorPrivate : public QSharedData {
+public:
+ ResultIteratorPrivate();
+ ~ResultIteratorPrivate() {
+ if (store)
+ store->close(queryId);
+ }
+
+ int queryId;
+ SearchStore* store;
+};
+
class BALOO_CORE_EXPORT ResultIterator
{
public:
ResultIterator();
// internal
ResultIterator(int id, SearchStore* store);
- ~ResultIterator();
bool next();
Item::Id id() const;
QUrl url() const;
QString text() const;
QString icon() const;
Result result() const;
private:
- class Private;
- Private* d;
+ QExplicitlySharedDataPointer<ResultIteratorPrivate> d;
};
}
#endif // _BALOO_CORE_RESULT_ITERATOR_H
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Apr 6, 1:07 AM (3 d, 7 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18831805
Default Alt Text
(5 KB)
Attached To
Mode
rKB baloo
Attached
Detach File
Event Timeline