Page MenuHomePhorge

No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
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

Mime Type
text/x-diff
Expires
Mon, Apr 6, 1:07 AM (3 d, 17 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18831805
Default Alt Text
(5 KB)

Event Timeline