Merge lp:~michihenning/unity-scopes-api/qt-coverage into lp:unity-scopes-api

Proposed by Michi Henning
Status: Superseded
Proposed branch: lp:~michihenning/unity-scopes-api/qt-coverage
Merge into: lp:unity-scopes-api
Diff against target: 4062 lines (+1451/-813)
79 files modified
CMakeLists.txt (+1/-1)
RELEASE_NOTES.md (+6/-0)
debian/changelog (+8/-0)
debian/libunity-scopes-qt.symbols (+278/-377)
include/unity/scopes/qt/HttpAsyncReader.h (+17/-16)
include/unity/scopes/qt/JsonAsyncReader.h (+17/-16)
include/unity/scopes/qt/JsonReader.h (+11/-10)
include/unity/scopes/qt/QActionMetadata.h (+5/-0)
include/unity/scopes/qt/QCannedQuery.h (+4/-0)
include/unity/scopes/qt/QCategorisedResult.h (+4/-0)
include/unity/scopes/qt/QCategory.h (+4/-0)
include/unity/scopes/qt/QColumnLayout.h (+4/-0)
include/unity/scopes/qt/QDepartment.h (+5/-3)
include/unity/scopes/qt/QPreviewQueryBase.h (+4/-0)
include/unity/scopes/qt/QPreviewQueryBaseAPI.h (+13/-0)
include/unity/scopes/qt/QPreviewReply.h (+4/-0)
include/unity/scopes/qt/QPreviewReplyProxy.h (+4/-0)
include/unity/scopes/qt/QPreviewWidget.h (+4/-0)
include/unity/scopes/qt/QResult.h (+4/-0)
include/unity/scopes/qt/QScopeBase.h (+4/-0)
include/unity/scopes/qt/QScopeBaseAPI.h (+4/-0)
include/unity/scopes/qt/QSearchMetadata.h (+4/-0)
include/unity/scopes/qt/QSearchQueryBase.h (+4/-0)
include/unity/scopes/qt/QSearchQueryBaseAPI.h (+12/-0)
include/unity/scopes/qt/QSearchReply.h (+4/-0)
include/unity/scopes/qt/QSearchReplyProxy.h (+4/-0)
include/unity/scopes/qt/QVariantBuilder.h (+11/-6)
include/unity/scopes/qt/XmlAsyncReader.h (+17/-16)
include/unity/scopes/qt/XmlReader.h (+11/-10)
include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h (+2/-2)
include/unity/scopes/qt/internal/QUtils.h (+13/-8)
src/scopes/qt/CMakeLists.txt (+35/-33)
src/scopes/qt/HttpAsyncReader.cpp (+0/-2)
src/scopes/qt/JsonAsyncReader.cpp (+0/-1)
src/scopes/qt/JsonReader.cpp (+0/-1)
src/scopes/qt/QPreviewQueryBaseAPI.cpp (+6/-3)
src/scopes/qt/QResult.cpp (+0/-1)
src/scopes/qt/QSearchMetadata.cpp (+0/-1)
src/scopes/qt/QSearchQueryBaseAPI.cpp (+10/-4)
src/scopes/qt/QVariantBuilder.cpp (+5/-0)
src/scopes/qt/XmlAsyncReader.cpp (+0/-1)
src/scopes/qt/XmlReader.cpp (+0/-1)
src/scopes/qt/internal/QActionMetadataImpl.cpp (+5/-6)
src/scopes/qt/internal/QCannedQueryImpl.cpp (+2/-2)
src/scopes/qt/internal/QCategoryImpl.cpp (+2/-2)
src/scopes/qt/internal/QColumnLayoutImpl.cpp (+2/-3)
src/scopes/qt/internal/QDepartmentImpl.cpp (+5/-5)
src/scopes/qt/internal/QPreviewReplyImpl.cpp (+2/-3)
src/scopes/qt/internal/QPreviewWidgetImpl.cpp (+4/-4)
src/scopes/qt/internal/QResultImpl.cpp (+4/-4)
src/scopes/qt/internal/QScopeBaseAPIImpl.cpp (+20/-16)
src/scopes/qt/internal/QScopeVariant.cpp (+6/-6)
src/scopes/qt/internal/QSearchMetadataImpl.cpp (+4/-5)
src/scopes/qt/internal/QUtils.cpp (+30/-15)
src/scopes/qt/internal/QVariantBuilderImpl.cpp (+5/-9)
test/gtest/scopes/qt/CMakeLists.txt (+2/-0)
test/gtest/scopes/qt/JsonAsyncReader/JsonAsyncReader_test.cpp (+1/-6)
test/gtest/scopes/qt/XmlAsyncReader/XmlAsyncReader_test.cpp (+1/-4)
test/gtest/scopes/qt/qt-bindings/BasicEventsChecker.h (+129/-0)
test/gtest/scopes/qt/qt-bindings/CMakeLists.txt (+19/-0)
test/gtest/scopes/qt/qt-bindings/FakeScope.h (+3/-5)
test/gtest/scopes/qt/qt-bindings/QActionMetadata_test.cpp (+3/-3)
test/gtest/scopes/qt/qt-bindings/QCannedQuery_test.cpp (+31/-7)
test/gtest/scopes/qt/qt-bindings/QCategorisedResult_test.cpp (+27/-6)
test/gtest/scopes/qt/qt-bindings/QColumnLayout_test.cpp (+38/-9)
test/gtest/scopes/qt/qt-bindings/QDepartment_test.cpp (+55/-9)
test/gtest/scopes/qt/qt-bindings/QEventTypeMatcher.h (+11/-8)
test/gtest/scopes/qt/qt-bindings/QMockScope.h (+7/-8)
test/gtest/scopes/qt/qt-bindings/QPreviewQueryBaseAPI_test.cpp (+102/-45)
test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIImpl_test.cpp (+7/-9)
test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIMock.h (+3/-3)
test/gtest/scopes/qt/qt-bindings/QScopeCreation_test.cpp (+7/-7)
test/gtest/scopes/qt/qt-bindings/QSearchMetadata_test.cpp (+3/-3)
test/gtest/scopes/qt/qt-bindings/QSearchQueryBaseAPI_test.cpp (+85/-28)
test/gtest/scopes/qt/qt-bindings/QUtils_test.cpp (+167/-0)
test/gtest/scopes/qt/qt-bindings/QVariantBuilder_test.cpp (+45/-7)
test/gtest/scopes/qt/qt-bindings/TestSetup.h (+25/-24)
test/headers/compile_headers.py (+1/-2)
tools/symbol_diff.in (+45/-27)
To merge this branch: bzr merge lp:~michihenning/unity-scopes-api/qt-coverage
Reviewer Review Type Date Requested Status
Paweł Stołowski (community) Needs Fixing
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+250254@code.launchpad.net

This proposal has been superseded by a proposal from 2015-02-27.

Commit message

Lots of clean-up on the qt lib. This is stage 1, more to follow.

- Merged Xavi's changes for failing tests, QDepartmentList
  definition, and missing _ENABLE_QT_EXPERIMENTAL_.

- Many style fixes.

- Fixed infinite loop in QVariantMap to VariantMap conversion.

- Removed camel case for conversion functions.

- Test coverage for QVariant, QUtils, QCategorisedResult,
  QCategory, QDepartment, QColumnLayout

- Added qt lib to symbol diff script and fixed symbols file.

- Made copyright headers consistent.

- Fixed broken QSearchMetadataImpl::has_location()

Description of the change

Lots of clean-up on the qt lib. This is stage 1, more to follow.

- Merged Xavi's changes for failing tests, QDepartmentList
  definition, and missing _ENABLE_QT_EXPERIMENTAL_.

- Many style fixes.

- Fixed infinite loop in QVariantMap to VariantMap conversion.

- Removed camel case for conversion functions.

- Test coverage for QVariant, QUtils, QCategorisedResult,
  QCategory, QDepartment, QColumnLayout

- Added qt lib to symbol diff script and fixed symbols file.

- Made copyright headers consistent.

- Fixed broken QSearchMetadataImpl::has_location()

To post a comment you must log in.
327. By Michi Henning

Removed stale comments.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
328. By Michi Henning

Fixed typo.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Paweł Stołowski (stolowski) wrote :

Oh wow, quite a lot of changes and cleanups, thanks for that Michi!

A couple of minor remarks:

1235 +// TODO: These are in the public API, so they need documentation.

Good point; should they actually be part of the public API? I think we're hiding scopes::Variant everywhere and only expose QVariant and do the conversions internally. Would it make sense to hide them instead?

766 + * Copyright (C) 2013 Canonical Ltd
2353 + * Copyright (C) 2014 Canonical Ltd

Bump the year please (there are more of them, just pasting two examples) :)

35 +unity-scopes-api (0.6.15+15.04.20150213-0ubuntu2) UNRELEASED; urgency=medium

The beloved changelog! Should say 0.6.15-0ubuntu1 ;)

I think it would probably make sense to put _ENABLE_QT_EXPERIMENTAL_ in a separate include file, and just #include that everywhere, but feel free to leave it as is; since it's a temporary measure there is no need to put more effort into changing all that again. On second thought, you probably had a good reason to copy-paste it everywhere (better error message from the compiler about offending include file?) ;)

I'm a bit baffled by the amount of changes to symbols file; is it just about re-sorting them?

review: Needs Fixing
Revision history for this message
Xavi Garcia (xavi-garcia-mena) wrote :

Regarding: 1235 +// TODO: These are in the public API, so they need documentation.

I agree with Pawel. Maybe we should hide the full header from the public API and move it to the internal directory.

Those functions should not be used by any Qt user as they should only deal with QVariant.

Regarding the dates: most of the files were created in 2015, so not sure if we should use 2015 instead.

Revision history for this message
Xavi Garcia (xavi-garcia-mena) wrote :

Regarding the _ENABLE_QT_EXPERIMENTAL_ I added it explicitly to all the headers to make any potencial user completely aware that he/she must use the flag. I thought that "hiding" the flag into another header would possibly be less clear to the final user, but it's fine with me to use that approach instead.

Revision history for this message
Michi Henning (michihenning) wrote :

> 1235 +// TODO: These are in the public API, so they need documentation.
>
> Good point; should they actually be part of the public API? I think we're
> hiding scopes::Variant everywhere and only expose QVariant and do the
> conversions internally. Would it make sense to hide them instead?
>
> 766 + * Copyright (C) 2013 Canonical Ltd
> 2353 + * Copyright (C) 2014 Canonical Ltd
>
> Bump the year please (there are more of them, just pasting two examples) :)

I've gone through and checked them all. I found one that had 2013 instead of 2014 (HttpAsyncReader.h). The others all have 2014. I think that's right, seeing that Xavi was working on this last year.

> 35 +unity-scopes-api (0.6.15+15.04.20150213-0ubuntu2) UNRELEASED;
> urgency=medium
>
> The beloved changelog! Should say 0.6.15-0ubuntu1 ;)

Ah, my good old friend, the changelog... Neither "dch" nor "dch -i" does the right thing. Is there a magic incantation that does?

> > I think it would probably make sense to put _ENABLE_QT_EXPERIMENTAL_ in a
> separate include file, and just #include that everywhere, but feel free to
> leave it as is; since it's a temporary measure there is no need to put more
> effort into changing all that again. On second thought, you probably had a
> good reason to copy-paste it everywhere (better error message from the
> compiler about offending include file?) ;)

Yes, that's one reason. Also, I don't like "artificial" public headers. I've removed the EXPERIMENTAL thingy from all the internal header files though. It's not needed there; we only need it in the public headers.

> I'm a bit baffled by the amount of changes to symbols file; is it just about
> re-sorting them?

Yes. It turns out that the qt lib wasn't processed by the symbol_diff script, so we didn't get automatic diffs if bzr bd complained. I added processing for the qt lib to the script, so that's fixed now. The script sorts the symbol file and puts it through uniq (it has to because, otherwise, we end up with more and more duplicate lines in the file), which is why there is that large diff.

I've moved the QUtils functions into the internal namespace. (That also caused a change in the symbols file.)

329. By Michi Henning

Fixed changelog. Fixed data on copyright header. Removed EXPERIMENTAL
guard from internal header files. Fixed compile_headers.py to always
add the flag. It doesn't do any harm for headers that don't query it.
Moved QUtils into internal namespace.

330. By Michi Henning

Fixed symbols file.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
331. By Michi Henning

Merged trunk.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Michi Henning (michihenning) wrote :

Thank you so much, Mr Jenkins.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Paweł Stołowski (stolowski) wrote :

> > The beloved changelog! Should say 0.6.15-0ubuntu1 ;)
>
> Ah, my good old friend, the changelog... Neither "dch" nor "dch -i" does the
> right thing. Is there a magic incantation that does?

No idea; I think it can't deal with the version numbers generated by our autolanding machinery.

>
> I've moved the QUtils functions into the internal namespace. (That also caused
> a change in the symbols file.)
Thanks!

review: Approve
Revision history for this message
Paweł Stołowski (stolowski) wrote :

Michi, I've no luck running the updated diff_script, it's failing to do the job in different ways:

4006 + with open('/tmp/symbols.diff', 'a') as outfile:

this change seems to be problematic, I'm getting an error saying /tmp/symbols.diff doesn't exist on start. It proceeds if I create an empty file in tmp. But then it fails in later steps.

The line #94 of the script which prints the exception needs to use .decode(...) on the line, e.g.

"raise Exception('Cannot parse demangled line: ' + line.decode('utf8'))"

otherwise it fails with error about str + bytes concatenation.

After fixing that line, it fails with this:

vivid@vivid:/src/unity-scopes-api/build-area/unity-scopes-api-0.6.15$ ./obj-x86_64-linux-gnu/tools/symbol_diff
Traceback (most recent call last):
  File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 113, in <module>
    run()
  File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 110, in run
    compare_syms(old_file, new_file)
  File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 94, in compare_syms
    raise Exception('Cannot parse demangled line: ' + line.decode('utf8'))
Exception: Cannot parse demangled line: libunity-scopes.so.3 libunity-scopes3 #MINVER#

review: Needs Fixing
Revision history for this message
Paweł Stołowski (stolowski) wrote :

To clarify - this fails to regenerate symbols for me in my canned-query-data branch, based on this branch.

> Michi, I've no luck running the updated diff_script, it's failing to do the
> job in different ways:
>
> 4006 + with open('/tmp/symbols.diff', 'a') as outfile:
>
> this change seems to be problematic, I'm getting an error saying
> /tmp/symbols.diff doesn't exist on start. It proceeds if I create an empty
> file in tmp. But then it fails in later steps.
>
> The line #94 of the script which prints the exception needs to use
> .decode(...) on the line, e.g.
>
> "raise Exception('Cannot parse demangled line: ' + line.decode('utf8'))"
>
> otherwise it fails with error about str + bytes concatenation.
>
> After fixing that line, it fails with this:
>
> vivid@vivid:/src/unity-scopes-api/build-area/unity-scopes-api-0.6.15$ ./obj-
> x86_64-linux-gnu/tools/symbol_diff
> Traceback (most recent call last):
> File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 113, in <module>
> run()
> File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 110, in run
> compare_syms(old_file, new_file)
> File "./obj-x86_64-linux-gnu/tools/symbol_diff", line 94, in compare_syms
> raise Exception('Cannot parse demangled line: ' + line.decode('utf8'))
> Exception: Cannot parse demangled line: libunity-scopes.so.3 libunity-scopes3
> #MINVER#

Revision history for this message
Michi Henning (michihenning) wrote :

Aargh, my apologies! Will fix straight away.

Revision history for this message
Michi Henning (michihenning) wrote :

BTW, as an emergency fix, just back out the last commit to the script, and it should work for the libunity-scopes3 symbols file.

Revision history for this message
Michi Henning (michihenning) wrote :

OK, should be good now. I've also re-targeted qt-coverage and qt-coverage-2 for devel.

One not-so-nice thing is that, when you build with bzr bd and get a symbol error, it stops after it finds the first problem. This means that, if a symbol change affects *both* libunity-scopes and libunity-scopes-qt, it stops after generating the symbols for libunity-scopes. So, you have to run the script for the first error, commit the symbols file, and the re-start bzr bd, and do the whole thing again to get the diff for the qt symbols.

332. By Michi Henning

Removed accidentally-created file.

333. By Michi Henning

Merged parent.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2015-02-13 09:20:20 +0000
3+++ CMakeLists.txt 2015-02-27 03:34:05 +0000
4@@ -227,7 +227,7 @@
5 # API version
6 set(UNITY_SCOPES_MAJOR 0)
7 set(UNITY_SCOPES_MINOR 6)
8-set(UNITY_SCOPES_MICRO 14)
9+set(UNITY_SCOPES_MICRO 15)
10 set(UNITY_SCOPES_SOVERSION 3)
11
12 # Version for testing, with all symbols visible
13
14=== modified file 'RELEASE_NOTES.md'
15--- RELEASE_NOTES.md 2015-02-13 09:20:20 +0000
16+++ RELEASE_NOTES.md 2015-02-27 03:34:05 +0000
17@@ -1,6 +1,12 @@
18 Release notes
19 =============
20
21+Changes in version 0.6.15
22+=========================
23+ - Added _ENABLE_QT_EXPERIMENTAL_ guard to qt headers until that library
24+ is finalized. Further changes in the unity::scopes::qt namespace are
25+ expected at this point.
26+
27 Changes in version 0.6.14
28 =========================
29 - Added push_surfacing_results_from_cache() to Reply proxy. This allows a scope
30
31=== modified file 'debian/changelog'
32--- debian/changelog 2015-02-23 14:48:28 +0000
33+++ debian/changelog 2015-02-27 03:34:05 +0000
34@@ -1,3 +1,11 @@
35+unity-scopes-api (0.6.15-0ubuntu1) UNRELEASED; urgency=medium
36+
37+ * Added _ENABLE_QT_EXPERIMENTAL_ guard to qt headers until that library
38+ is finalized. Further changes in the unity::scopes::qt namespace are
39+ expected at this point.
40+
41+ -- Michi Henning <michi.henning@canonical.com> Tue, 24 Feb 2015 11:34:52 +1000
42+
43 unity-scopes-api (0.6.14+15.04.20150223-0ubuntu1) vivid; urgency=medium
44
45 [ Pawel Stolowski ]
46
47=== modified file 'debian/libunity-scopes-qt.symbols'
48--- debian/libunity-scopes-qt.symbols 2015-02-05 14:57:23 +0000
49+++ debian/libunity-scopes-qt.symbols 2015-02-27 03:34:05 +0000
50@@ -1,411 +1,312 @@
51 libunity-scopes-qt.so.01 libunity-scopes-qt #MINVER#
52- (c++)"unity::scopes::qt::JsonReader::JsonReader()@Base" 0.6.13+15.04.20150205.1
53- (c++)"unity::scopes::qt::JsonReader::JsonReader()@Base" 0.6.13+15.04.20150205.1
54- (c++)"unity::scopes::qt::QScopeBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
55- (c++)"unity::scopes::qt::QScopeBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
56- (c++)"unity::scopes::qt::QScopeBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
57- (c++)"unity::scopes::qt::QScopeBase::stop()@Base" 0.6.13+15.04.20150205.1
58- (c++)"unity::scopes::qt::QScopeBase::start(QString const&)@Base" 0.6.13+15.04.20150205.1
59- (c++)"unity::scopes::qt::QScopeBase::QScopeBase(QObject*)@Base" 0.6.13+15.04.20150205.1
60- (c++)"unity::scopes::qt::QScopeBase::QScopeBase(QObject*)@Base" 0.6.13+15.04.20150205.1
61- (c++)"unity::scopes::qt::QScopeBase::~QScopeBase()@Base" 0.6.13+15.04.20150205.1
62- (c++)"unity::scopes::qt::QScopeBase::~QScopeBase()@Base" 0.6.13+15.04.20150205.1
63- (c++)"unity::scopes::qt::QScopeBase::~QScopeBase()@Base" 0.6.13+15.04.20150205.1
64- (c++)"unity::scopes::qt::QDepartment::add_subdepartment(std::shared_ptr<unity::scopes::qt::QDepartment const> const&)@Base" 0.6.13+15.04.20150205.1
65- (c++)"unity::scopes::qt::QDepartment::set_subdepartments(QList<QSharedPointer<unity::scopes::qt::QDepartment const> > const&)@Base" 0.6.13+15.04.20150205.1
66- (c++)"unity::scopes::qt::QDepartment::set_alternate_label(QString const&)@Base" 0.6.13+15.04.20150205.1
67- (c++)"unity::scopes::qt::QDepartment::set_has_subdepartments(bool)@Base" 0.6.13+15.04.20150205.1
68- (c++)"unity::scopes::qt::QDepartment::create(QString const&, unity::scopes::qt::QCannedQuery const&, QString const&)@Base" 0.6.13+15.04.20150205.1
69- (c++)"unity::scopes::qt::QDepartment::create(unity::scopes::qt::QCannedQuery const&, QString const&)@Base" 0.6.13+15.04.20150205.1
70- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment&&)@Base" 0.6.13+15.04.20150205.1
71- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::internal::QDepartmentImpl*)@Base" 0.6.13+15.04.20150205.1
72- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment const&)@Base" 0.6.13+15.04.20150205.1
73- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment&&)@Base" 0.6.13+15.04.20150205.1
74- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::internal::QDepartmentImpl*)@Base" 0.6.13+15.04.20150205.1
75- (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment const&)@Base" 0.6.13+15.04.20150205.1
76- (c++)"unity::scopes::qt::QDepartment::~QDepartment()@Base" 0.6.13+15.04.20150205.1
77- (c++)"unity::scopes::qt::QDepartment::~QDepartment()@Base" 0.6.13+15.04.20150205.1
78- (c++)"unity::scopes::qt::QDepartment::operator=(unity::scopes::qt::QDepartment&&)@Base" 0.6.13+15.04.20150205.1
79- (c++)"unity::scopes::qt::QDepartment::operator=(unity::scopes::qt::QDepartment const&)@Base" 0.6.13+15.04.20150205.1
80- (c++)"unity::scopes::qt::QCannedQuery::set_filter_state(unity::scopes::FilterState const&)@Base" 0.6.13+15.04.20150205.1
81- (c++)"unity::scopes::qt::QCannedQuery::set_query_string(QString const&)@Base" 0.6.13+15.04.20150205.1
82- (c++)"unity::scopes::qt::QCannedQuery::set_department_id(QString const&)@Base" 0.6.13+15.04.20150205.1
83+ (c++)"typeinfo for unity::scopes::qt::CancelledEvent@Base" 0.6.13+15.04.20150205.1
84+ (c++)"typeinfo for unity::scopes::qt::HttpAsyncReader@Base" 0.6.13+15.04.20150205.1
85+ (c++)"typeinfo for unity::scopes::qt::InitializeEvent@Base" 0.6.13+15.04.20150205.1
86+ (c++)"typeinfo for unity::scopes::qt::JsonAsyncReader@Base" 0.6.13+15.04.20150205.1
87+ (c++)"typeinfo for unity::scopes::qt::QCategorisedResult@Base" 0.6.13+15.04.20150205.1
88+ (c++)"typeinfo for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
89+ (c++)"typeinfo for unity::scopes::qt::QPreviewQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
90+ (c++)"typeinfo for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
91+ (c++)"typeinfo for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
92+ (c++)"typeinfo for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
93+ (c++)"typeinfo for unity::scopes::qt::QResult@Base" 0.6.13+15.04.20150205.1
94+ (c++)"typeinfo for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
95+ (c++)"typeinfo for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
96+ (c++)"typeinfo for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
97+ (c++)"typeinfo for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
98+ (c++)"typeinfo for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
99+ (c++)"typeinfo for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
100+ (c++)"typeinfo for unity::scopes::qt::RunEvent@Base" 0.6.13+15.04.20150205.1
101+ (c++)"typeinfo for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
102+ (c++)"typeinfo name for unity::scopes::qt::CancelledEvent@Base" 0.6.13+15.04.20150205.1
103+ (c++)"typeinfo name for unity::scopes::qt::HttpAsyncReader@Base" 0.6.13+15.04.20150205.1
104+ (c++)"typeinfo name for unity::scopes::qt::InitializeEvent@Base" 0.6.13+15.04.20150205.1
105+ (c++)"typeinfo name for unity::scopes::qt::JsonAsyncReader@Base" 0.6.13+15.04.20150205.1
106+ (c++)"typeinfo name for unity::scopes::qt::QCategorisedResult@Base" 0.6.13+15.04.20150205.1
107+ (c++)"typeinfo name for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
108+ (c++)"typeinfo name for unity::scopes::qt::QPreviewQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
109+ (c++)"typeinfo name for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
110+ (c++)"typeinfo name for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
111+ (c++)"typeinfo name for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
112+ (c++)"typeinfo name for unity::scopes::qt::QResult@Base" 0.6.13+15.04.20150205.1
113+ (c++)"typeinfo name for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
114+ (c++)"typeinfo name for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
115+ (c++)"typeinfo name for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
116+ (c++)"typeinfo name for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
117+ (c++)"typeinfo name for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
118+ (c++)"typeinfo name for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
119+ (c++)"typeinfo name for unity::scopes::qt::RunEvent@Base" 0.6.13+15.04.20150205.1
120+ (c++)"typeinfo name for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
121+ (c++)"unity::scopes::qt::CancelledEvent::~CancelledEvent()@Base" 0.6.13+15.04.20150205.1
122+ (c++)"unity::scopes::qt::HttpAsyncReader::async_execute(core::net::http::Request::Handler const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
123+ (c++)"unity::scopes::qt::HttpAsyncReader::get_uri(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
124+ (c++)"unity::scopes::qt::HttpAsyncReader::~HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
125+ (c++)"unity::scopes::qt::HttpAsyncReader::HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
126+ (c++)"unity::scopes::qt::HttpAsyncReader::Priv::~Priv()@Base" 0.6.13+15.04.20150205.1
127+ (c++)"unity::scopes::qt::HttpAsyncReader::progress_report(core::net::http::Request::Progress const&) const@Base" 0.6.13+15.04.20150205.1
128+ (c++)"unity::scopes::qt::InitializeEvent::~InitializeEvent()@Base" 0.6.13+15.04.20150205.1
129+ (c++)"unity::scopes::qt::JsonAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
130+ (c++)"unity::scopes::qt::JsonAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
131+ (c++)"unity::scopes::qt::JsonAsyncReader::create_parser_with_data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.6.13+15.04.20150205.1
132+ (c++)"unity::scopes::qt::JsonAsyncReader::~JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
133+ (c++)"unity::scopes::qt::JsonAsyncReader::JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
134+ (c++)"unity::scopes::qt::JsonReader::JsonReader()@Base" 0.6.13+15.04.20150205.1
135+ (c++)"unity::scopes::qt::JsonReader::read(QString const&, QVector<QPair<QString, QString> > const&) const@Base" 0.6.13+15.04.20150205.1
136+ (c++)"unity::scopes::qt::JsonReader::read(QUrl const&) const@Base" 0.6.13+15.04.20150205.1
137+ (c++)"unity::scopes::qt::QActionMetadata::contains_hint(QString const&) const@Base" 0.6.13+15.04.20150205.1
138+ (c++)"unity::scopes::qt::QActionMetadata::hints() const@Base" 0.6.13+15.04.20150205.1
139+ (c++)"unity::scopes::qt::QActionMetadata::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
140+ (c++)"unity::scopes::qt::QActionMetadata::operator[](QString const&) const@Base" 0.6.13+15.04.20150205.1
141+ (c++)"unity::scopes::qt::QActionMetadata::operator=(unity::scopes::qt::QActionMetadata&&)@Base" 0.6.13+15.04.20150205.1
142+ (c++)"unity::scopes::qt::QActionMetadata::operator=(unity::scopes::qt::QActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
143+ (c++)"unity::scopes::qt::QActionMetadata::~QActionMetadata()@Base" 0.6.13+15.04.20150205.1
144+ (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
145+ (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::internal::QActionMetadataImpl*)@Base" 0.6.13+15.04.20150205.1
146+ (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata&&)@Base" 0.6.13+15.04.20150205.1
147+ (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
148+ (c++)"unity::scopes::qt::QActionMetadata::scope_data() const@Base" 0.6.13+15.04.20150205.1
149+ (c++)"unity::scopes::qt::QActionMetadata::set_hint(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
150+ (c++)"unity::scopes::qt::QActionMetadata::set_scope_data(QVariant const&)@Base" 0.6.13+15.04.20150205.1
151+ (c++)"unity::scopes::qt::QCannedQuery::department_id() const@Base" 0.6.13+15.04.20150205.1
152+ (c++)"unity::scopes::qt::QCannedQuery::filter_state() const@Base" 0.6.13+15.04.20150205.1
153 (c++)"unity::scopes::qt::QCannedQuery::from_uri(QString const&)@Base" 0.6.13+15.04.20150205.1
154- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery&&)@Base" 0.6.13+15.04.20150205.1
155- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::internal::QCannedQueryImpl*)@Base" 0.6.13+15.04.20150205.1
156- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&)@Base" 0.6.13+15.04.20150205.1
157- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
158- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::CannedQuery const&)@Base" 0.6.13+15.04.20150205.1
159- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery const&)@Base" 0.6.13+15.04.20150205.1
160- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery&&)@Base" 0.6.13+15.04.20150205.1
161- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::internal::QCannedQueryImpl*)@Base" 0.6.13+15.04.20150205.1
162- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&)@Base" 0.6.13+15.04.20150205.1
163- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
164- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::CannedQuery const&)@Base" 0.6.13+15.04.20150205.1
165- (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery const&)@Base" 0.6.13+15.04.20150205.1
166- (c++)"unity::scopes::qt::QCannedQuery::~QCannedQuery()@Base" 0.6.13+15.04.20150205.1
167- (c++)"unity::scopes::qt::QCannedQuery::~QCannedQuery()@Base" 0.6.13+15.04.20150205.1
168 (c++)"unity::scopes::qt::QCannedQuery::operator=(unity::scopes::qt::QCannedQuery&&)@Base" 0.6.13+15.04.20150205.1
169 (c++)"unity::scopes::qt::QCannedQuery::operator=(unity::scopes::qt::QCannedQuery const&)@Base" 0.6.13+15.04.20150205.1
170- (c++)"unity::scopes::qt::QSearchReply::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
171- (c++)"unity::scopes::qt::QSearchReply::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
172- (c++)"unity::scopes::qt::QSearchReply::staticMetaObject@Base" 0.6.13+15.04.20150205.1
173- (c++)"unity::scopes::qt::QSearchReply::register_category(QString const&, QString const&, QString const&, unity::scopes::CategoryRenderer const&)@Base" 0.6.13+15.04.20150205.1
174- (c++)"unity::scopes::qt::QSearchReply::register_departments(std::shared_ptr<unity::scopes::qt::QDepartment const> const&)@Base" 0.6.13+15.04.20150205.1
175- (c++)"unity::scopes::qt::QSearchReply::push(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
176- (c++)"unity::scopes::qt::QSearchReply::error(std::__exception_ptr::exception_ptr)@Base" 0.6.13+15.04.20150205.1
177- (c++)"unity::scopes::qt::QSearchReply::QSearchReply(std::shared_ptr<unity::scopes::SearchReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
178- (c++)"unity::scopes::qt::QSearchReply::QSearchReply(std::shared_ptr<unity::scopes::SearchReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
179- (c++)"unity::scopes::qt::QSearchReply::~QSearchReply()@Base" 0.6.13+15.04.20150205.1
180- (c++)"unity::scopes::qt::QSearchReply::~QSearchReply()@Base" 0.6.13+15.04.20150205.1
181- (c++)"unity::scopes::qt::QSearchReply::~QSearchReply()@Base" 0.6.13+15.04.20150205.1
182+ (c++)"unity::scopes::qt::QCannedQuery::~QCannedQuery()@Base" 0.6.13+15.04.20150205.1
183+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&)@Base" 0.6.13+15.04.20150205.1
184+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(QString const&, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
185+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::CannedQuery const&)@Base" 0.6.13+15.04.20150205.1
186+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::internal::QCannedQueryImpl*)@Base" 0.6.13+15.04.20150205.1
187+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery&&)@Base" 0.6.13+15.04.20150205.1
188+ (c++)"unity::scopes::qt::QCannedQuery::QCannedQuery(unity::scopes::qt::QCannedQuery const&)@Base" 0.6.13+15.04.20150205.1
189+ (c++)"unity::scopes::qt::QCannedQuery::query_string() const@Base" 0.6.13+15.04.20150205.1
190+ (c++)"unity::scopes::qt::QCannedQuery::scope_id() const@Base" 0.6.13+15.04.20150205.1
191+ (c++)"unity::scopes::qt::QCannedQuery::serialize() const@Base" 0.6.13+15.04.20150205.1
192+ (c++)"unity::scopes::qt::QCannedQuery::set_department_id(QString const&)@Base" 0.6.13+15.04.20150205.1
193+ (c++)"unity::scopes::qt::QCannedQuery::set_filter_state(unity::scopes::FilterState const&)@Base" 0.6.13+15.04.20150205.1
194+ (c++)"unity::scopes::qt::QCannedQuery::set_query_string(QString const&)@Base" 0.6.13+15.04.20150205.1
195+ (c++)"unity::scopes::qt::QCannedQuery::to_uri() const@Base" 0.6.13+15.04.20150205.1
196+ (c++)"unity::scopes::qt::QCategorisedResult::category() const@Base" 0.6.13+15.04.20150205.1
197+ (c++)"unity::scopes::qt::QCategorisedResult::fwd() const@Base" 0.6.13+15.04.20150205.1
198+ (c++)"unity::scopes::qt::QCategorisedResult::operator=(unity::scopes::qt::QCategorisedResult&&)@Base" 0.6.13+15.04.20150205.1
199+ (c++)"unity::scopes::qt::QCategorisedResult::operator=(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
200+ (c++)"unity::scopes::qt::QCategorisedResult::~QCategorisedResult()@Base" 0.6.13+15.04.20150205.1
201+ (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(std::shared_ptr<unity::scopes::qt::QCategory const>)@Base" 0.6.13+15.04.20150205.1
202+ (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult&&)@Base" 0.6.13+15.04.20150205.1
203+ (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
204+ (c++)"unity::scopes::qt::QCategorisedResult::set_category(std::shared_ptr<unity::scopes::qt::QCategory const>)@Base" 0.6.13+15.04.20150205.1
205+ (c++)"unity::scopes::qt::QCategory::icon() const@Base" 0.6.13+15.04.20150205.1
206+ (c++)"unity::scopes::qt::QCategory::id() const@Base" 0.6.13+15.04.20150205.1
207+ (c++)"unity::scopes::qt::QCategory::~QCategory()@Base" 0.6.13+15.04.20150205.1
208+ (c++)"unity::scopes::qt::QCategory::QCategory(std::shared_ptr<unity::scopes::Category const>)@Base" 0.6.13+15.04.20150205.1
209+ (c++)"unity::scopes::qt::QCategory::QCategory(unity::scopes::qt::internal::QCategoryImpl*)@Base" 0.6.13+15.04.20150205.1
210+ (c++)"unity::scopes::qt::QCategory::query() const@Base" 0.6.13+15.04.20150205.1
211+ (c++)"unity::scopes::qt::QCategory::renderer_template() const@Base" 0.6.13+15.04.20150205.1
212+ (c++)"unity::scopes::qt::QCategory::serialize() const@Base" 0.6.13+15.04.20150205.1
213+ (c++)"unity::scopes::qt::QCategory::title() const@Base" 0.6.13+15.04.20150205.1
214 (c++)"unity::scopes::qt::QColumnLayout::add_column(QVector<QString>)@Base" 0.6.13+15.04.20150205.1
215- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout&&)@Base" 0.6.13+15.04.20150205.1
216- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::internal::QColumnLayoutImpl*)@Base" 0.6.13+15.04.20150205.1
217- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout const&)@Base" 0.6.13+15.04.20150205.1
218- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(int)@Base" 0.6.13+15.04.20150205.1
219- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout&&)@Base" 0.6.13+15.04.20150205.1
220- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::internal::QColumnLayoutImpl*)@Base" 0.6.13+15.04.20150205.1
221- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout const&)@Base" 0.6.13+15.04.20150205.1
222- (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(int)@Base" 0.6.13+15.04.20150205.1
223- (c++)"unity::scopes::qt::QColumnLayout::~QColumnLayout()@Base" 0.6.13+15.04.20150205.1
224- (c++)"unity::scopes::qt::QColumnLayout::~QColumnLayout()@Base" 0.6.13+15.04.20150205.1
225+ (c++)"unity::scopes::qt::QColumnLayout::column(int) const@Base" 0.6.13+15.04.20150205.1
226+ (c++)"unity::scopes::qt::QColumnLayout::number_of_columns() const@Base" 0.6.13+15.04.20150205.1
227 (c++)"unity::scopes::qt::QColumnLayout::operator=(unity::scopes::qt::QColumnLayout&&)@Base" 0.6.13+15.04.20150205.1
228 (c++)"unity::scopes::qt::QColumnLayout::operator=(unity::scopes::qt::QColumnLayout const&)@Base" 0.6.13+15.04.20150205.1
229+ (c++)"unity::scopes::qt::QColumnLayout::~QColumnLayout()@Base" 0.6.13+15.04.20150205.1
230+ (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(int)@Base" 0.6.13+15.04.20150205.1
231+ (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::internal::QColumnLayoutImpl*)@Base" 0.6.13+15.04.20150205.1
232+ (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout&&)@Base" 0.6.13+15.04.20150205.1
233+ (c++)"unity::scopes::qt::QColumnLayout::QColumnLayout(unity::scopes::qt::QColumnLayout const&)@Base" 0.6.13+15.04.20150205.1
234+ (c++)"unity::scopes::qt::QColumnLayout::serialize() const@Base" 0.6.13+15.04.20150205.1
235+ (c++)"unity::scopes::qt::QColumnLayout::size() const@Base" 0.6.13+15.04.20150205.1
236+ (c++)"unity::scopes::qt::QDepartment::add_subdepartment(std::shared_ptr<unity::scopes::qt::QDepartment const> const&)@Base" 0.6.13+15.04.20150205.1
237+ (c++)"unity::scopes::qt::QDepartment::alternate_label() const@Base" 0.6.13+15.04.20150205.1
238+ (c++)"unity::scopes::qt::QDepartment::create(QString const&, unity::scopes::qt::QCannedQuery const&, QString const&)@Base" 0.6.13+15.04.20150205.1
239+ (c++)"unity::scopes::qt::QDepartment::create(unity::scopes::qt::QCannedQuery const&, QString const&)@Base" 0.6.13+15.04.20150205.1
240+ (c++)"unity::scopes::qt::QDepartment::has_subdepartments() const@Base" 0.6.13+15.04.20150205.1
241+ (c++)"unity::scopes::qt::QDepartment::id() const@Base" 0.6.13+15.04.20150205.1
242+ (c++)"unity::scopes::qt::QDepartment::label() const@Base" 0.6.13+15.04.20150205.1
243+ (c++)"unity::scopes::qt::QDepartment::operator=(unity::scopes::qt::QDepartment&&)@Base" 0.6.13+15.04.20150205.1
244+ (c++)"unity::scopes::qt::QDepartment::operator=(unity::scopes::qt::QDepartment const&)@Base" 0.6.13+15.04.20150205.1
245+ (c++)"unity::scopes::qt::QDepartment::~QDepartment()@Base" 0.6.13+15.04.20150205.1
246+ (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::internal::QDepartmentImpl*)@Base" 0.6.13+15.04.20150205.1
247+ (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment&&)@Base" 0.6.13+15.04.20150205.1
248+ (c++)"unity::scopes::qt::QDepartment::QDepartment(unity::scopes::qt::QDepartment const&)@Base" 0.6.13+15.04.20150205.1
249+ (c++)"unity::scopes::qt::QDepartment::query() const@Base" 0.6.13+15.04.20150205.1
250+ (c++)"unity::scopes::qt::QDepartment::serialize() const@Base" 0.6.13+15.04.20150205.1
251+ (c++)"unity::scopes::qt::QDepartment::set_alternate_label(QString const&)@Base" 0.6.13+15.04.20150205.1
252+ (c++)"unity::scopes::qt::QDepartment::set_has_subdepartments(bool)@Base" 0.6.13+15.04.20150205.1
253+ (c++)"unity::scopes::qt::QDepartment::set_subdepartments(QList<std::shared_ptr<unity::scopes::qt::QDepartment const> > const&)@Base" 0replaceme
254+ (c++)"unity::scopes::qt::QDepartment::subdepartments() const@Base" 0.6.13+15.04.20150205.1
255+ (c++)"unity::scopes::qt::QPreviewQueryBase::action_metadata() const@Base" 0.6.13+15.04.20150205.1
256+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::cancelled()@Base" 0.6.13+15.04.20150205.1
257+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::event(QEvent*)@Base" 0.6.13+15.04.20150205.1
258+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::init()@Base" 0replaceme
259+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::metaObject() const@Base" 0.6.13+15.04.20150205.1
260+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::~QPreviewQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
261+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::QPreviewQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::Result const&, unity::scopes::ActionMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
262+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
263+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
264+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::run(std::shared_ptr<unity::scopes::PreviewReply> const&)@Base" 0.6.13+15.04.20150205.1
265+ (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::staticMetaObject@Base" 0.6.13+15.04.20150205.1
266+ (c++)"unity::scopes::qt::QPreviewQueryBase::init(unity::scopes::qt::QPreviewQueryBaseAPI*)@Base" 0.6.13+15.04.20150205.1
267+ (c++)"unity::scopes::qt::QPreviewQueryBase::metaObject() const@Base" 0.6.13+15.04.20150205.1
268+ (c++)"unity::scopes::qt::QPreviewQueryBase::~QPreviewQueryBase()@Base" 0.6.13+15.04.20150205.1
269+ (c++)"unity::scopes::qt::QPreviewQueryBase::QPreviewQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
270+ (c++)"unity::scopes::qt::QPreviewQueryBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
271+ (c++)"unity::scopes::qt::QPreviewQueryBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
272+ (c++)"unity::scopes::qt::QPreviewQueryBase::result() const@Base" 0.6.13+15.04.20150205.1
273+ (c++)"unity::scopes::qt::QPreviewQueryBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
274+ (c++)"unity::scopes::qt::QPreviewReply::metaObject() const@Base" 0.6.13+15.04.20150205.1
275+ (c++)"unity::scopes::qt::QPreviewReply::push(QList<unity::scopes::qt::QPreviewWidget> const&)@Base" 0.6.13+15.04.20150205.1
276+ (c++)"unity::scopes::qt::QPreviewReply::push(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
277+ (c++)"unity::scopes::qt::QPreviewReply::~QPreviewReply()@Base" 0.6.13+15.04.20150205.1
278+ (c++)"unity::scopes::qt::QPreviewReply::QPreviewReply(std::shared_ptr<unity::scopes::PreviewReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
279 (c++)"unity::scopes::qt::QPreviewReply::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
280 (c++)"unity::scopes::qt::QPreviewReply::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
281 (c++)"unity::scopes::qt::QPreviewReply::register_layout(QList<unity::scopes::qt::QColumnLayout> const&)@Base" 0.6.13+15.04.20150205.1
282 (c++)"unity::scopes::qt::QPreviewReply::staticMetaObject@Base" 0.6.13+15.04.20150205.1
283- (c++)"unity::scopes::qt::QPreviewReply::push(QList<unity::scopes::qt::QPreviewWidget> const&)@Base" 0.6.13+15.04.20150205.1
284- (c++)"unity::scopes::qt::QPreviewReply::push(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
285- (c++)"unity::scopes::qt::QPreviewReply::QPreviewReply(std::shared_ptr<unity::scopes::PreviewReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
286- (c++)"unity::scopes::qt::QPreviewReply::QPreviewReply(std::shared_ptr<unity::scopes::PreviewReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
287- (c++)"unity::scopes::qt::QPreviewReply::~QPreviewReply()@Base" 0.6.13+15.04.20150205.1
288- (c++)"unity::scopes::qt::QPreviewReply::~QPreviewReply()@Base" 0.6.13+15.04.20150205.1
289- (c++)"unity::scopes::qt::QPreviewReply::~QPreviewReply()@Base" 0.6.13+15.04.20150205.1
290- (c++)"unity::scopes::qt::QScopeBaseAPI::stop()@Base" 0.6.13+15.04.20150205.1
291- (c++)"unity::scopes::qt::QScopeBaseAPI::start(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.6.13+15.04.20150205.1
292- (c++)"unity::scopes::qt::QScopeBaseAPI::search(unity::scopes::CannedQuery const&, unity::scopes::SearchMetadata const&)@Base" 0.6.13+15.04.20150205.1
293- (c++)"unity::scopes::qt::QScopeBaseAPI::preview(unity::scopes::Result const&, unity::scopes::ActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
294- (c++)"unity::scopes::qt::QScopeBaseAPI::QScopeBaseAPI(std::function<unity::scopes::qt::QScopeBase* ()> const&)@Base" 0.6.13+15.04.20150205.1
295- (c++)"unity::scopes::qt::QScopeBaseAPI::QScopeBaseAPI(std::function<unity::scopes::qt::QScopeBase* ()> const&)@Base" 0.6.13+15.04.20150205.1
296- (c++)"unity::scopes::qt::QScopeBaseAPI::~QScopeBaseAPI()@Base" 0.6.13+15.04.20150205.1
297- (c++)"unity::scopes::qt::QScopeBaseAPI::~QScopeBaseAPI()@Base" 0.6.13+15.04.20150205.1
298- (c++)"unity::scopes::qt::QScopeBaseAPI::~QScopeBaseAPI()@Base" 0.6.13+15.04.20150205.1
299- (c++)"unity::scopes::qt::CancelledEvent::~CancelledEvent()@Base" 0.6.13+15.04.20150205.1
300- (c++)"unity::scopes::qt::CancelledEvent::~CancelledEvent()@Base" 0.6.13+15.04.20150205.1
301- (c++)"unity::scopes::qt::CancelledEvent::~CancelledEvent()@Base" 0.6.13+15.04.20150205.1
302+ (c++)"unity::scopes::qt::QPreviewWidget::add_attribute_mapping(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
303+ (c++)"unity::scopes::qt::QPreviewWidget::add_attribute_value(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
304 (c++)"unity::scopes::qt::QPreviewWidget::add_widget(unity::scopes::qt::QPreviewWidget const&)@Base" 0.6.13+15.04.20150205.1
305- (c++)"unity::scopes::qt::QPreviewWidget::add_attribute_value(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
306- (c++)"unity::scopes::qt::QPreviewWidget::add_attribute_mapping(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
307- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget&&)@Base" 0.6.13+15.04.20150205.1
308- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::internal::QPreviewWidgetImpl*)@Base" 0.6.13+15.04.20150205.1
309- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&)@Base" 0.6.13+15.04.20150205.1
310- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
311- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget const&)@Base" 0.6.13+15.04.20150205.1
312- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget&&)@Base" 0.6.13+15.04.20150205.1
313- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::internal::QPreviewWidgetImpl*)@Base" 0.6.13+15.04.20150205.1
314- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&)@Base" 0.6.13+15.04.20150205.1
315- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
316- (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget const&)@Base" 0.6.13+15.04.20150205.1
317- (c++)"unity::scopes::qt::QPreviewWidget::~QPreviewWidget()@Base" 0.6.13+15.04.20150205.1
318- (c++)"unity::scopes::qt::QPreviewWidget::~QPreviewWidget()@Base" 0.6.13+15.04.20150205.1
319- (c++)"unity::scopes::qt::QPreviewWidget::~QPreviewWidget()@Base" 0.6.13+15.04.20150205.1
320+ (c++)"unity::scopes::qt::QPreviewWidget::attribute_mappings() const@Base" 0.6.13+15.04.20150205.1
321+ (c++)"unity::scopes::qt::QPreviewWidget::attribute_values() const@Base" 0.6.13+15.04.20150205.1
322+ (c++)"unity::scopes::qt::QPreviewWidget::data() const@Base" 0.6.13+15.04.20150205.1
323+ (c++)"unity::scopes::qt::QPreviewWidget::id() const@Base" 0.6.13+15.04.20150205.1
324 (c++)"unity::scopes::qt::QPreviewWidget::operator=(unity::scopes::qt::QPreviewWidget&&)@Base" 0.6.13+15.04.20150205.1
325 (c++)"unity::scopes::qt::QPreviewWidget::operator=(unity::scopes::qt::QPreviewWidget const&)@Base" 0.6.13+15.04.20150205.1
326- (c++)"unity::scopes::qt::XmlAsyncReader::create_parser_with_data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.6.13+15.04.20150205.1
327- (c++)"unity::scopes::qt::XmlAsyncReader::XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
328- (c++)"unity::scopes::qt::XmlAsyncReader::XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
329- (c++)"unity::scopes::qt::XmlAsyncReader::~XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
330- (c++)"unity::scopes::qt::XmlAsyncReader::~XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
331- (c++)"unity::scopes::qt::XmlAsyncReader::~XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
332- (c++)"unity::scopes::qt::HttpAsyncReader::Priv::~Priv()@Base" 0.6.13+15.04.20150205.1
333- (c++)"unity::scopes::qt::HttpAsyncReader::Priv::~Priv()@Base" 0.6.13+15.04.20150205.1
334- (c++)"unity::scopes::qt::HttpAsyncReader::HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
335- (c++)"unity::scopes::qt::HttpAsyncReader::HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
336- (c++)"unity::scopes::qt::HttpAsyncReader::~HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
337- (c++)"unity::scopes::qt::HttpAsyncReader::~HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
338- (c++)"unity::scopes::qt::HttpAsyncReader::~HttpAsyncReader()@Base" 0.6.13+15.04.20150205.1
339- (c++)"unity::scopes::qt::InitializeEvent::~InitializeEvent()@Base" 0.6.13+15.04.20150205.1
340- (c++)"unity::scopes::qt::InitializeEvent::~InitializeEvent()@Base" 0.6.13+15.04.20150205.1
341- (c++)"unity::scopes::qt::InitializeEvent::~InitializeEvent()@Base" 0.6.13+15.04.20150205.1
342- (c++)"unity::scopes::qt::JsonAsyncReader::create_parser_with_data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.6.13+15.04.20150205.1
343- (c++)"unity::scopes::qt::JsonAsyncReader::JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
344- (c++)"unity::scopes::qt::JsonAsyncReader::JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
345- (c++)"unity::scopes::qt::JsonAsyncReader::~JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
346- (c++)"unity::scopes::qt::JsonAsyncReader::~JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
347- (c++)"unity::scopes::qt::JsonAsyncReader::~JsonAsyncReader()@Base" 0.6.13+15.04.20150205.1
348- (c++)"unity::scopes::qt::QActionMetadata::set_scope_data(QVariant const&)@Base" 0.6.13+15.04.20150205.1
349- (c++)"unity::scopes::qt::QActionMetadata::set_hint(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
350- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata&&)@Base" 0.6.13+15.04.20150205.1
351- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::internal::QActionMetadataImpl*)@Base" 0.6.13+15.04.20150205.1
352- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
353- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
354- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata&&)@Base" 0.6.13+15.04.20150205.1
355- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::internal::QActionMetadataImpl*)@Base" 0.6.13+15.04.20150205.1
356- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
357- (c++)"unity::scopes::qt::QActionMetadata::QActionMetadata(unity::scopes::qt::QActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
358- (c++)"unity::scopes::qt::QActionMetadata::~QActionMetadata()@Base" 0.6.13+15.04.20150205.1
359- (c++)"unity::scopes::qt::QActionMetadata::~QActionMetadata()@Base" 0.6.13+15.04.20150205.1
360- (c++)"unity::scopes::qt::QActionMetadata::operator=(unity::scopes::qt::QActionMetadata&&)@Base" 0.6.13+15.04.20150205.1
361- (c++)"unity::scopes::qt::QActionMetadata::operator=(unity::scopes::qt::QActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
362- (c++)"unity::scopes::qt::QActionMetadata::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
363- (c++)"unity::scopes::qt::QSearchMetadata::set_location(unity::scopes::Location const&)@Base" 0.6.13+15.04.20150205.1
364- (c++)"unity::scopes::qt::QSearchMetadata::set_cardinality(int)@Base" 0.6.13+15.04.20150205.1
365- (c++)"unity::scopes::qt::QSearchMetadata::set_hint(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
366- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata&&)@Base" 0.6.13+15.04.20150205.1
367- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
368- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata const&)@Base" 0.6.13+15.04.20150205.1
369- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(int, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
370- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata&&)@Base" 0.6.13+15.04.20150205.1
371- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
372- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata const&)@Base" 0.6.13+15.04.20150205.1
373- (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(int, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
374- (c++)"unity::scopes::qt::QSearchMetadata::~QSearchMetadata()@Base" 0.6.13+15.04.20150205.1
375- (c++)"unity::scopes::qt::QSearchMetadata::~QSearchMetadata()@Base" 0.6.13+15.04.20150205.1
376- (c++)"unity::scopes::qt::QSearchMetadata::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
377- (c++)"unity::scopes::qt::QVariantBuilder::end()@Base" 0.6.13+15.04.20150205.1
378- (c++)"unity::scopes::qt::QVariantBuilder::add_tuple(QVector<QPair<QString, QVariant> > const&)@Base" 0.6.13+15.04.20150205.1
379- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder&&)@Base" 0.6.13+15.04.20150205.1
380- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::internal::QVariantBuilderImpl*)@Base" 0.6.13+15.04.20150205.1
381- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder const&)@Base" 0.6.13+15.04.20150205.1
382- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
383- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder&&)@Base" 0.6.13+15.04.20150205.1
384- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::internal::QVariantBuilderImpl*)@Base" 0.6.13+15.04.20150205.1
385- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder const&)@Base" 0.6.13+15.04.20150205.1
386- (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
387- (c++)"unity::scopes::qt::QVariantBuilder::~QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
388- (c++)"unity::scopes::qt::QVariantBuilder::~QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
389- (c++)"unity::scopes::qt::QVariantBuilder::~QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
390- (c++)"unity::scopes::qt::QVariantBuilder::operator=(unity::scopes::qt::QVariantBuilder&&)@Base" 0.6.13+15.04.20150205.1
391- (c++)"unity::scopes::qt::QVariantBuilder::operator=(unity::scopes::qt::QVariantBuilder const&)@Base" 0.6.13+15.04.20150205.1
392- (c++)"unity::scopes::qt::QSearchQueryBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
393- (c++)"unity::scopes::qt::QSearchQueryBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
394- (c++)"unity::scopes::qt::QSearchQueryBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
395- (c++)"unity::scopes::qt::QSearchQueryBase::init(unity::scopes::qt::QSearchQueryBaseAPI*)@Base" 0.6.13+15.04.20150205.1
396- (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
397- (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
398- (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, unity::scopes::SearchMetadata const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
399- (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
400- (c++)"unity::scopes::qt::QSearchQueryBase::QSearchQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
401- (c++)"unity::scopes::qt::QSearchQueryBase::QSearchQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
402- (c++)"unity::scopes::qt::QSearchQueryBase::~QSearchQueryBase()@Base" 0.6.13+15.04.20150205.1
403- (c++)"unity::scopes::qt::QSearchQueryBase::~QSearchQueryBase()@Base" 0.6.13+15.04.20150205.1
404- (c++)"unity::scopes::qt::QSearchQueryBase::~QSearchQueryBase()@Base" 0.6.13+15.04.20150205.1
405- (c++)"unity::scopes::qt::QPreviewQueryBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
406- (c++)"unity::scopes::qt::QPreviewQueryBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
407- (c++)"unity::scopes::qt::QPreviewQueryBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
408- (c++)"unity::scopes::qt::QPreviewQueryBase::init(unity::scopes::qt::QPreviewQueryBaseAPI*)@Base" 0.6.13+15.04.20150205.1
409- (c++)"unity::scopes::qt::QPreviewQueryBase::QPreviewQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
410- (c++)"unity::scopes::qt::QPreviewQueryBase::QPreviewQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
411- (c++)"unity::scopes::qt::QPreviewQueryBase::~QPreviewQueryBase()@Base" 0.6.13+15.04.20150205.1
412- (c++)"unity::scopes::qt::QPreviewQueryBase::~QPreviewQueryBase()@Base" 0.6.13+15.04.20150205.1
413- (c++)"unity::scopes::qt::QPreviewQueryBase::~QPreviewQueryBase()@Base" 0.6.13+15.04.20150205.1
414- (c++)"unity::scopes::qt::QCategorisedResult::set_category(std::shared_ptr<unity::scopes::qt::QCategory const>)@Base" 0.6.13+15.04.20150205.1
415- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult&&)@Base" 0.6.13+15.04.20150205.1
416- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
417- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(std::shared_ptr<unity::scopes::qt::QCategory const>)@Base" 0.6.13+15.04.20150205.1
418- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult&&)@Base" 0.6.13+15.04.20150205.1
419- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
420- (c++)"unity::scopes::qt::QCategorisedResult::QCategorisedResult(std::shared_ptr<unity::scopes::qt::QCategory const>)@Base" 0.6.13+15.04.20150205.1
421- (c++)"unity::scopes::qt::QCategorisedResult::~QCategorisedResult()@Base" 0.6.13+15.04.20150205.1
422- (c++)"unity::scopes::qt::QCategorisedResult::~QCategorisedResult()@Base" 0.6.13+15.04.20150205.1
423- (c++)"unity::scopes::qt::QCategorisedResult::~QCategorisedResult()@Base" 0.6.13+15.04.20150205.1
424- (c++)"unity::scopes::qt::QCategorisedResult::operator=(unity::scopes::qt::QCategorisedResult&&)@Base" 0.6.13+15.04.20150205.1
425- (c++)"unity::scopes::qt::QCategorisedResult::operator=(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
426- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::run_signal(std::shared_ptr<unity::scopes::qt::QSearchReply> const&)@Base" 0.6.13+15.04.20150205.1
427- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
428- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
429- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::staticMetaObject@Base" 0.6.13+15.04.20150205.1
430- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::run(std::shared_ptr<unity::scopes::SearchReply> const&)@Base" 0.6.13+15.04.20150205.1
431- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::event(QEvent*)@Base" 0.6.13+15.04.20150205.1
432- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::cancelled()@Base" 0.6.13+15.04.20150205.1
433- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::QSearchQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::CannedQuery const&, unity::scopes::SearchMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
434- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::QSearchQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::CannedQuery const&, unity::scopes::SearchMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
435- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::~QSearchQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
436- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::~QSearchQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
437- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::~QSearchQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
438- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
439- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
440- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::staticMetaObject@Base" 0.6.13+15.04.20150205.1
441- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::run(std::shared_ptr<unity::scopes::PreviewReply> const&)@Base" 0.6.13+15.04.20150205.1
442- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::event(QEvent*)@Base" 0.6.13+15.04.20150205.1
443- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::cancelled()@Base" 0.6.13+15.04.20150205.1
444- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::QPreviewQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::Result const&, unity::scopes::ActionMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
445- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::QPreviewQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::Result const&, unity::scopes::ActionMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
446- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::~QPreviewQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
447- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::~QPreviewQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
448- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::~QPreviewQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
449- (c++)"unity::scopes::qt::qVariantToScopeVariant(QVariant const&)@Base" 0.6.13+15.04.20150205.1
450- (c++)"unity::scopes::qt::scopeVariantToQVariant(unity::scopes::Variant const&)@Base" 0.6.13+15.04.20150205.1
451- (c++)"unity::scopes::qt::qVariantMapToScopeVariantMap(QMap<QString, QVariant> const&)@Base" 0.6.13+15.04.20150205.1
452- (c++)"unity::scopes::qt::scopeVariantMapToQVariantMap(std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unity::scopes::Variant, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unity::scopes::Variant> > > const&)@Base" 0.6.13+15.04.20150205.1
453+ (c++)"unity::scopes::qt::QPreviewWidget::~QPreviewWidget()@Base" 0.6.13+15.04.20150205.1
454+ (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&)@Base" 0.6.13+15.04.20150205.1
455+ (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
456+ (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::internal::QPreviewWidgetImpl*)@Base" 0.6.13+15.04.20150205.1
457+ (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget&&)@Base" 0.6.13+15.04.20150205.1
458+ (c++)"unity::scopes::qt::QPreviewWidget::QPreviewWidget(unity::scopes::qt::QPreviewWidget const&)@Base" 0.6.13+15.04.20150205.1
459+ (c++)"unity::scopes::qt::QPreviewWidget::serialize() const@Base" 0.6.13+15.04.20150205.1
460+ (c++)"unity::scopes::qt::QPreviewWidget::widgets() const@Base" 0.6.13+15.04.20150205.1
461+ (c++)"unity::scopes::qt::QPreviewWidget::widget_type() const@Base" 0.6.13+15.04.20150205.1
462+ (c++)"unity::scopes::qt::QResult::art() const@Base" 0.6.13+15.04.20150205.1
463+ (c++)"unity::scopes::qt::QResult::contains(QString const&) const@Base" 0.6.13+15.04.20150205.1
464+ (c++)"unity::scopes::qt::QResult::direct_activation() const@Base" 0.6.13+15.04.20150205.1
465+ (c++)"unity::scopes::qt::QResult::dnd_uri() const@Base" 0.6.13+15.04.20150205.1
466+ (c++)"unity::scopes::qt::QResult::has_stored_result() const@Base" 0.6.13+15.04.20150205.1
467+ (c++)"unity::scopes::qt::QResult::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
468+ (c++)"unity::scopes::qt::QResult::operator[](QString const&) const@Base" 0.6.13+15.04.20150205.1
469+ (c++)"unity::scopes::qt::QResult::operator=(unity::scopes::qt::QResult&&)@Base" 0.6.13+15.04.20150205.1
470+ (c++)"unity::scopes::qt::QResult::operator=(unity::scopes::qt::QResult const&)@Base" 0.6.13+15.04.20150205.1
471+ (c++)"unity::scopes::qt::QResult::~QResult()@Base" 0.6.13+15.04.20150205.1
472+ (c++)"unity::scopes::qt::QResult::QResult()@Base" 0.6.13+15.04.20150205.1
473+ (c++)"unity::scopes::qt::QResult::QResult(QMap<QString, QVariant> const&)@Base" 0.6.13+15.04.20150205.1
474+ (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::internal::QResultImpl*)@Base" 0.6.13+15.04.20150205.1
475+ (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult&&)@Base" 0.6.13+15.04.20150205.1
476+ (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult const&)@Base" 0.6.13+15.04.20150205.1
477+ (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::Result const&)@Base" 0.6.13+15.04.20150205.1
478+ (c++)"unity::scopes::qt::QResult::retrieve() const@Base" 0.6.13+15.04.20150205.1
479+ (c++)"unity::scopes::qt::QResult::serialize() const@Base" 0.6.13+15.04.20150205.1
480+ (c++)"unity::scopes::qt::QResult::set_art(QString const&)@Base" 0.6.13+15.04.20150205.1
481 (c++)"unity::scopes::qt::QResult::set_dnd_uri(QString const&)@Base" 0.6.13+15.04.20150205.1
482 (c++)"unity::scopes::qt::QResult::set_intercept_activation()@Base" 0.6.13+15.04.20150205.1
483+ (c++)"unity::scopes::qt::QResult::set_title(QString const&)@Base" 0.6.13+15.04.20150205.1
484+ (c++)"unity::scopes::qt::QResult::set_uri(QString const&)@Base" 0.6.13+15.04.20150205.1
485 (c++)"unity::scopes::qt::QResult::store(unity::scopes::qt::QResult const&, bool)@Base" 0.6.13+15.04.20150205.1
486- (c++)"unity::scopes::qt::QResult::set_art(QString const&)@Base" 0.6.13+15.04.20150205.1
487- (c++)"unity::scopes::qt::QResult::set_uri(QString const&)@Base" 0.6.13+15.04.20150205.1
488- (c++)"unity::scopes::qt::QResult::set_title(QString const&)@Base" 0.6.13+15.04.20150205.1
489- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult&&)@Base" 0.6.13+15.04.20150205.1
490- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::internal::QResultImpl*)@Base" 0.6.13+15.04.20150205.1
491- (c++)"unity::scopes::qt::QResult::QResult(QMap<QString, QVariant> const&)@Base" 0.6.13+15.04.20150205.1
492- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::Result const&)@Base" 0.6.13+15.04.20150205.1
493- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult const&)@Base" 0.6.13+15.04.20150205.1
494- (c++)"unity::scopes::qt::QResult::QResult()@Base" 0.6.13+15.04.20150205.1
495- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult&&)@Base" 0.6.13+15.04.20150205.1
496- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::internal::QResultImpl*)@Base" 0.6.13+15.04.20150205.1
497- (c++)"unity::scopes::qt::QResult::QResult(QMap<QString, QVariant> const&)@Base" 0.6.13+15.04.20150205.1
498- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::Result const&)@Base" 0.6.13+15.04.20150205.1
499- (c++)"unity::scopes::qt::QResult::QResult(unity::scopes::qt::QResult const&)@Base" 0.6.13+15.04.20150205.1
500- (c++)"unity::scopes::qt::QResult::QResult()@Base" 0.6.13+15.04.20150205.1
501- (c++)"unity::scopes::qt::QResult::~QResult()@Base" 0.6.13+15.04.20150205.1
502- (c++)"unity::scopes::qt::QResult::~QResult()@Base" 0.6.13+15.04.20150205.1
503- (c++)"unity::scopes::qt::QResult::~QResult()@Base" 0.6.13+15.04.20150205.1
504- (c++)"unity::scopes::qt::QResult::operator=(unity::scopes::qt::QResult&&)@Base" 0.6.13+15.04.20150205.1
505- (c++)"unity::scopes::qt::QResult::operator=(unity::scopes::qt::QResult const&)@Base" 0.6.13+15.04.20150205.1
506- (c++)"unity::scopes::qt::QResult::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
507- (c++)"unity::scopes::qt::RunEvent::~RunEvent()@Base" 0.6.13+15.04.20150205.1
508- (c++)"unity::scopes::qt::RunEvent::~RunEvent()@Base" 0.6.13+15.04.20150205.1
509- (c++)"unity::scopes::qt::RunEvent::~RunEvent()@Base" 0.6.13+15.04.20150205.1
510- (c++)"unity::scopes::qt::QCategory::QCategory(unity::scopes::qt::internal::QCategoryImpl*)@Base" 0.6.13+15.04.20150205.1
511- (c++)"unity::scopes::qt::QCategory::QCategory(std::shared_ptr<unity::scopes::Category const>)@Base" 0.6.13+15.04.20150205.1
512- (c++)"unity::scopes::qt::QCategory::QCategory(unity::scopes::qt::internal::QCategoryImpl*)@Base" 0.6.13+15.04.20150205.1
513- (c++)"unity::scopes::qt::QCategory::QCategory(std::shared_ptr<unity::scopes::Category const>)@Base" 0.6.13+15.04.20150205.1
514- (c++)"unity::scopes::qt::QCategory::~QCategory()@Base" 0.6.13+15.04.20150205.1
515- (c++)"unity::scopes::qt::QCategory::~QCategory()@Base" 0.6.13+15.04.20150205.1
516- (c++)"unity::scopes::qt::QCategory::~QCategory()@Base" 0.6.13+15.04.20150205.1
517- (c++)"unity::scopes::qt::XmlReader::XmlReader()@Base" 0.6.13+15.04.20150205.1
518- (c++)"unity::scopes::qt::XmlReader::XmlReader()@Base" 0.6.13+15.04.20150205.1
519- (c++)"unity::scopes::qt::JsonReader::read(QUrl const&) const@Base" 0.6.13+15.04.20150205.1
520- (c++)"unity::scopes::qt::JsonReader::read(QString const&, QVector<QPair<QString, QString> > const&) const@Base" 0.6.13+15.04.20150205.1
521+ (c++)"unity::scopes::qt::QResult::target_scope_proxy() const@Base" 0.6.13+15.04.20150205.1
522+ (c++)"unity::scopes::qt::QResult::title() const@Base" 0.6.13+15.04.20150205.1
523+ (c++)"unity::scopes::qt::QResult::uri() const@Base" 0.6.13+15.04.20150205.1
524+ (c++)"unity::scopes::qt::QResult::value(QString const&) const@Base" 0.6.13+15.04.20150205.1
525+ (c++)"unity::scopes::qt::QScopeBaseAPI::preview(unity::scopes::Result const&, unity::scopes::ActionMetadata const&)@Base" 0.6.13+15.04.20150205.1
526+ (c++)"unity::scopes::qt::QScopeBaseAPI::~QScopeBaseAPI()@Base" 0.6.13+15.04.20150205.1
527+ (c++)"unity::scopes::qt::QScopeBaseAPI::QScopeBaseAPI(std::function<unity::scopes::qt::QScopeBase* ()> const&)@Base" 0.6.13+15.04.20150205.1
528+ (c++)"unity::scopes::qt::QScopeBaseAPI::search(unity::scopes::CannedQuery const&, unity::scopes::SearchMetadata const&)@Base" 0.6.13+15.04.20150205.1
529+ (c++)"unity::scopes::qt::QScopeBaseAPI::start(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.6.13+15.04.20150205.1
530+ (c++)"unity::scopes::qt::QScopeBaseAPI::stop()@Base" 0.6.13+15.04.20150205.1
531 (c++)"unity::scopes::qt::QScopeBase::metaObject() const@Base" 0.6.13+15.04.20150205.1
532- (c++)"unity::scopes::qt::QDepartment::subdepartments() const@Base" 0.6.13+15.04.20150205.1
533- (c++)"unity::scopes::qt::QDepartment::alternate_label() const@Base" 0.6.13+15.04.20150205.1
534- (c++)"unity::scopes::qt::QDepartment::has_subdepartments() const@Base" 0.6.13+15.04.20150205.1
535- (c++)"unity::scopes::qt::QDepartment::id() const@Base" 0.6.13+15.04.20150205.1
536- (c++)"unity::scopes::qt::QDepartment::label() const@Base" 0.6.13+15.04.20150205.1
537- (c++)"unity::scopes::qt::QDepartment::query() const@Base" 0.6.13+15.04.20150205.1
538- (c++)"unity::scopes::qt::QDepartment::serialize() const@Base" 0.6.13+15.04.20150205.1
539- (c++)"unity::scopes::qt::QCannedQuery::filter_state() const@Base" 0.6.13+15.04.20150205.1
540- (c++)"unity::scopes::qt::QCannedQuery::query_string() const@Base" 0.6.13+15.04.20150205.1
541- (c++)"unity::scopes::qt::QCannedQuery::department_id() const@Base" 0.6.13+15.04.20150205.1
542- (c++)"unity::scopes::qt::QCannedQuery::to_uri() const@Base" 0.6.13+15.04.20150205.1
543- (c++)"unity::scopes::qt::QCannedQuery::scope_id() const@Base" 0.6.13+15.04.20150205.1
544- (c++)"unity::scopes::qt::QCannedQuery::serialize() const@Base" 0.6.13+15.04.20150205.1
545- (c++)"unity::scopes::qt::QSearchReply::metaObject() const@Base" 0.6.13+15.04.20150205.1
546- (c++)"unity::scopes::qt::QColumnLayout::number_of_columns() const@Base" 0.6.13+15.04.20150205.1
547- (c++)"unity::scopes::qt::QColumnLayout::size() const@Base" 0.6.13+15.04.20150205.1
548- (c++)"unity::scopes::qt::QColumnLayout::column(int) const@Base" 0.6.13+15.04.20150205.1
549- (c++)"unity::scopes::qt::QColumnLayout::serialize() const@Base" 0.6.13+15.04.20150205.1
550- (c++)"unity::scopes::qt::QPreviewReply::metaObject() const@Base" 0.6.13+15.04.20150205.1
551- (c++)"unity::scopes::qt::QPreviewWidget::widget_type() const@Base" 0.6.13+15.04.20150205.1
552- (c++)"unity::scopes::qt::QPreviewWidget::attribute_values() const@Base" 0.6.13+15.04.20150205.1
553- (c++)"unity::scopes::qt::QPreviewWidget::attribute_mappings() const@Base" 0.6.13+15.04.20150205.1
554- (c++)"unity::scopes::qt::QPreviewWidget::id() const@Base" 0.6.13+15.04.20150205.1
555- (c++)"unity::scopes::qt::QPreviewWidget::data() const@Base" 0.6.13+15.04.20150205.1
556- (c++)"unity::scopes::qt::QPreviewWidget::widgets() const@Base" 0.6.13+15.04.20150205.1
557- (c++)"unity::scopes::qt::QPreviewWidget::serialize() const@Base" 0.6.13+15.04.20150205.1
558- (c++)"unity::scopes::qt::XmlAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
559- (c++)"unity::scopes::qt::XmlAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
560- (c++)"unity::scopes::qt::HttpAsyncReader::async_execute(core::net::http::Request::Handler const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
561- (c++)"unity::scopes::qt::HttpAsyncReader::progress_report(core::net::http::Request::Progress const&) const@Base" 0.6.13+15.04.20150205.1
562- (c++)"unity::scopes::qt::HttpAsyncReader::get_uri(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
563- (c++)"unity::scopes::qt::JsonAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
564- (c++)"unity::scopes::qt::JsonAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
565- (c++)"unity::scopes::qt::QActionMetadata::scope_data() const@Base" 0.6.13+15.04.20150205.1
566- (c++)"unity::scopes::qt::QActionMetadata::contains_hint(QString const&) const@Base" 0.6.13+15.04.20150205.1
567- (c++)"unity::scopes::qt::QActionMetadata::hints() const@Base" 0.6.13+15.04.20150205.1
568- (c++)"unity::scopes::qt::QActionMetadata::operator[](QString const&) const@Base" 0.6.13+15.04.20150205.1
569+ (c++)"unity::scopes::qt::QScopeBase::~QScopeBase()@Base" 0.6.13+15.04.20150205.1
570+ (c++)"unity::scopes::qt::QScopeBase::QScopeBase(QObject*)@Base" 0.6.13+15.04.20150205.1
571+ (c++)"unity::scopes::qt::QScopeBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
572+ (c++)"unity::scopes::qt::QScopeBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
573+ (c++)"unity::scopes::qt::QScopeBase::start(QString const&)@Base" 0.6.13+15.04.20150205.1
574+ (c++)"unity::scopes::qt::QScopeBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
575+ (c++)"unity::scopes::qt::QScopeBase::stop()@Base" 0.6.13+15.04.20150205.1
576 (c++)"unity::scopes::qt::QSearchMetadata::cardinality() const@Base" 0.6.13+15.04.20150205.1
577+ (c++)"unity::scopes::qt::QSearchMetadata::contains_hint(QString const&) const@Base" 0.6.13+15.04.20150205.1
578 (c++)"unity::scopes::qt::QSearchMetadata::has_location() const@Base" 0.6.13+15.04.20150205.1
579- (c++)"unity::scopes::qt::QSearchMetadata::contains_hint(QString const&) const@Base" 0.6.13+15.04.20150205.1
580 (c++)"unity::scopes::qt::QSearchMetadata::hints() const@Base" 0.6.13+15.04.20150205.1
581 (c++)"unity::scopes::qt::QSearchMetadata::location() const@Base" 0.6.13+15.04.20150205.1
582+ (c++)"unity::scopes::qt::QSearchMetadata::operator[](QString const&)@Base" 0.6.13+15.04.20150205.1
583 (c++)"unity::scopes::qt::QSearchMetadata::operator[](QString const&) const@Base" 0.6.13+15.04.20150205.1
584+ (c++)"unity::scopes::qt::QSearchMetadata::~QSearchMetadata()@Base" 0.6.13+15.04.20150205.1
585+ (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(int, QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
586+ (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(QString const&, QString const&)@Base" 0.6.13+15.04.20150205.1
587+ (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata&&)@Base" 0.6.13+15.04.20150205.1
588+ (c++)"unity::scopes::qt::QSearchMetadata::QSearchMetadata(unity::scopes::qt::QSearchMetadata const&)@Base" 0.6.13+15.04.20150205.1
589+ (c++)"unity::scopes::qt::QSearchMetadata::set_cardinality(int)@Base" 0.6.13+15.04.20150205.1
590+ (c++)"unity::scopes::qt::QSearchMetadata::set_hint(QString const&, QVariant const&)@Base" 0.6.13+15.04.20150205.1
591+ (c++)"unity::scopes::qt::QSearchMetadata::set_location(unity::scopes::Location const&)@Base" 0.6.13+15.04.20150205.1
592+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::cancelled()@Base" 0.6.13+15.04.20150205.1
593+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::event(QEvent*)@Base" 0.6.13+15.04.20150205.1
594+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::init()@Base" 0replaceme
595+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::metaObject() const@Base" 0.6.13+15.04.20150205.1
596+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::~QSearchQueryBaseAPI()@Base" 0.6.13+15.04.20150205.1
597+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::QSearchQueryBaseAPI(std::shared_ptr<QCoreApplication>, unity::scopes::qt::QScopeBase&, unity::scopes::CannedQuery const&, unity::scopes::SearchMetadata const&, QObject*)@Base" 0.6.13+15.04.20150205.1
598+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
599+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
600+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::run_signal(std::shared_ptr<unity::scopes::qt::QSearchReply> const&)@Base" 0.6.13+15.04.20150205.1
601+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::run(std::shared_ptr<unity::scopes::SearchReply> const&)@Base" 0.6.13+15.04.20150205.1
602+ (c++)"unity::scopes::qt::QSearchQueryBaseAPI::staticMetaObject@Base" 0.6.13+15.04.20150205.1
603+ (c++)"unity::scopes::qt::QSearchQueryBase::init(unity::scopes::qt::QSearchQueryBaseAPI*)@Base" 0.6.13+15.04.20150205.1
604 (c++)"unity::scopes::qt::QSearchQueryBase::metaObject() const@Base" 0.6.13+15.04.20150205.1
605+ (c++)"unity::scopes::qt::QSearchQueryBase::~QSearchQueryBase()@Base" 0.6.13+15.04.20150205.1
606+ (c++)"unity::scopes::qt::QSearchQueryBase::QSearchQueryBase(QObject*)@Base" 0.6.13+15.04.20150205.1
607+ (c++)"unity::scopes::qt::QSearchQueryBase::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
608+ (c++)"unity::scopes::qt::QSearchQueryBase::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
609+ (c++)"unity::scopes::qt::QSearchQueryBase::query() const@Base" 0.6.13+15.04.20150205.1
610 (c++)"unity::scopes::qt::QSearchQueryBase::search_metadata() const@Base" 0.6.13+15.04.20150205.1
611- (c++)"unity::scopes::qt::QSearchQueryBase::query() const@Base" 0.6.13+15.04.20150205.1
612- (c++)"unity::scopes::qt::QPreviewQueryBase::metaObject() const@Base" 0.6.13+15.04.20150205.1
613- (c++)"unity::scopes::qt::QPreviewQueryBase::action_metadata() const@Base" 0.6.13+15.04.20150205.1
614- (c++)"unity::scopes::qt::QPreviewQueryBase::result() const@Base" 0.6.13+15.04.20150205.1
615- (c++)"unity::scopes::qt::QCategorisedResult::fwd() const@Base" 0.6.13+15.04.20150205.1
616- (c++)"unity::scopes::qt::QCategorisedResult::category() const@Base" 0.6.13+15.04.20150205.1
617- (c++)"unity::scopes::qt::QSearchQueryBaseAPI::metaObject() const@Base" 0.6.13+15.04.20150205.1
618- (c++)"unity::scopes::qt::QPreviewQueryBaseAPI::metaObject() const@Base" 0.6.13+15.04.20150205.1
619- (c++)"unity::scopes::qt::QResult::direct_activation() const@Base" 0.6.13+15.04.20150205.1
620- (c++)"unity::scopes::qt::QResult::has_stored_result() const@Base" 0.6.13+15.04.20150205.1
621- (c++)"unity::scopes::qt::QResult::target_scope_proxy() const@Base" 0.6.13+15.04.20150205.1
622- (c++)"unity::scopes::qt::QResult::art() const@Base" 0.6.13+15.04.20150205.1
623- (c++)"unity::scopes::qt::QResult::uri() const@Base" 0.6.13+15.04.20150205.1
624- (c++)"unity::scopes::qt::QResult::title() const@Base" 0.6.13+15.04.20150205.1
625- (c++)"unity::scopes::qt::QResult::value(QString const&) const@Base" 0.6.13+15.04.20150205.1
626- (c++)"unity::scopes::qt::QResult::dnd_uri() const@Base" 0.6.13+15.04.20150205.1
627- (c++)"unity::scopes::qt::QResult::contains(QString const&) const@Base" 0.6.13+15.04.20150205.1
628- (c++)"unity::scopes::qt::QResult::retrieve() const@Base" 0.6.13+15.04.20150205.1
629- (c++)"unity::scopes::qt::QResult::serialize() const@Base" 0.6.13+15.04.20150205.1
630- (c++)"unity::scopes::qt::QResult::operator[](QString const&) const@Base" 0.6.13+15.04.20150205.1
631- (c++)"unity::scopes::qt::QCategory::renderer_template() const@Base" 0.6.13+15.04.20150205.1
632- (c++)"unity::scopes::qt::QCategory::id() const@Base" 0.6.13+15.04.20150205.1
633- (c++)"unity::scopes::qt::QCategory::icon() const@Base" 0.6.13+15.04.20150205.1
634- (c++)"unity::scopes::qt::QCategory::query() const@Base" 0.6.13+15.04.20150205.1
635- (c++)"unity::scopes::qt::QCategory::title() const@Base" 0.6.13+15.04.20150205.1
636- (c++)"unity::scopes::qt::QCategory::serialize() const@Base" 0.6.13+15.04.20150205.1
637+ (c++)"unity::scopes::qt::QSearchQueryBase::staticMetaObject@Base" 0.6.13+15.04.20150205.1
638+ (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
639+ (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, unity::scopes::SearchMetadata const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
640+ (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
641+ (c++)"unity::scopes::qt::QSearchQueryBase::subsearch(std::shared_ptr<unity::scopes::Scope> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unity::scopes::FilterState const&, std::shared_ptr<unity::scopes::SearchListenerBase> const&)@Base" 0.6.13+15.04.20150205.1
642+ (c++)"unity::scopes::qt::QSearchReply::error(std::__exception_ptr::exception_ptr)@Base" 0.6.13+15.04.20150205.1
643+ (c++)"unity::scopes::qt::QSearchReply::metaObject() const@Base" 0.6.13+15.04.20150205.1
644+ (c++)"unity::scopes::qt::QSearchReply::push(unity::scopes::qt::QCategorisedResult const&)@Base" 0.6.13+15.04.20150205.1
645+ (c++)"unity::scopes::qt::QSearchReply::~QSearchReply()@Base" 0.6.13+15.04.20150205.1
646+ (c++)"unity::scopes::qt::QSearchReply::QSearchReply(std::shared_ptr<unity::scopes::SearchReply>&, QObject*)@Base" 0.6.13+15.04.20150205.1
647+ (c++)"unity::scopes::qt::QSearchReply::qt_metacall(QMetaObject::Call, int, void**)@Base" 0.6.13+15.04.20150205.1
648+ (c++)"unity::scopes::qt::QSearchReply::qt_metacast(char const*)@Base" 0.6.13+15.04.20150205.1
649+ (c++)"unity::scopes::qt::QSearchReply::register_category(QString const&, QString const&, QString const&, unity::scopes::CategoryRenderer const&)@Base" 0.6.13+15.04.20150205.1
650+ (c++)"unity::scopes::qt::QSearchReply::register_departments(std::shared_ptr<unity::scopes::qt::QDepartment const> const&)@Base" 0.6.13+15.04.20150205.1
651+ (c++)"unity::scopes::qt::QSearchReply::staticMetaObject@Base" 0.6.13+15.04.20150205.1
652+ (c++)"unity::scopes::qt::QVariantBuilder::add_tuple(QVector<QPair<QString, QVariant> > const&)@Base" 0.6.13+15.04.20150205.1
653+ (c++)"unity::scopes::qt::QVariantBuilder::add_tuple(std::initializer_list<QPair<QString, QVariant> > const&)@Base" 0replaceme
654+ (c++)"unity::scopes::qt::QVariantBuilder::end()@Base" 0.6.13+15.04.20150205.1
655+ (c++)"unity::scopes::qt::QVariantBuilder::operator=(unity::scopes::qt::QVariantBuilder&&)@Base" 0.6.13+15.04.20150205.1
656+ (c++)"unity::scopes::qt::QVariantBuilder::operator=(unity::scopes::qt::QVariantBuilder const&)@Base" 0.6.13+15.04.20150205.1
657+ (c++)"unity::scopes::qt::QVariantBuilder::~QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
658+ (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder()@Base" 0.6.13+15.04.20150205.1
659+ (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::internal::QVariantBuilderImpl*)@Base" 0.6.13+15.04.20150205.1
660+ (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder&&)@Base" 0.6.13+15.04.20150205.1
661+ (c++)"unity::scopes::qt::QVariantBuilder::QVariantBuilder(unity::scopes::qt::QVariantBuilder const&)@Base" 0.6.13+15.04.20150205.1
662+ (c++)"unity::scopes::qt::RunEvent::~RunEvent()@Base" 0.6.13+15.04.20150205.1
663+ (c++)"unity::scopes::qt::XmlAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.6.13+15.04.20150205.1
664+ (c++)"unity::scopes::qt::XmlAsyncReader::async_get_parser(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.6.13+15.04.20150205.1
665+ (c++)"unity::scopes::qt::XmlAsyncReader::create_parser_with_data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.6.13+15.04.20150205.1
666+ (c++)"unity::scopes::qt::XmlAsyncReader::~XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
667+ (c++)"unity::scopes::qt::XmlAsyncReader::XmlAsyncReader()@Base" 0.6.13+15.04.20150205.1
668+ (c++)"unity::scopes::qt::XmlReader::read(QString const&, QVector<QPair<QString, QString> > const&) const@Base" 0.6.13+15.04.20150205.1
669 (c++)"unity::scopes::qt::XmlReader::read(QUrl const&) const@Base" 0.6.13+15.04.20150205.1
670- (c++)"unity::scopes::qt::XmlReader::read(QString const&, QVector<QPair<QString, QString> > const&) const@Base" 0.6.13+15.04.20150205.1
671- (c++)"typeinfo for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
672- (c++)"typeinfo for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
673- (c++)"typeinfo for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
674- (c++)"typeinfo for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
675- (c++)"typeinfo for unity::scopes::qt::CancelledEvent@Base" 0.6.13+15.04.20150205.1
676- (c++)"typeinfo for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
677- (c++)"typeinfo for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
678- (c++)"typeinfo for unity::scopes::qt::HttpAsyncReader@Base" 0.6.13+15.04.20150205.1
679- (c++)"typeinfo for unity::scopes::qt::InitializeEvent@Base" 0.6.13+15.04.20150205.1
680- (c++)"typeinfo for unity::scopes::qt::JsonAsyncReader@Base" 0.6.13+15.04.20150205.1
681- (c++)"typeinfo for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
682- (c++)"typeinfo for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
683- (c++)"typeinfo for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
684- (c++)"typeinfo for unity::scopes::qt::QCategorisedResult@Base" 0.6.13+15.04.20150205.1
685- (c++)"typeinfo for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
686- (c++)"typeinfo for unity::scopes::qt::QPreviewQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
687- (c++)"typeinfo for unity::scopes::qt::QResult@Base" 0.6.13+15.04.20150205.1
688- (c++)"typeinfo for unity::scopes::qt::RunEvent@Base" 0.6.13+15.04.20150205.1
689- (c++)"typeinfo for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
690- (c++)"typeinfo name for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
691- (c++)"typeinfo name for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
692- (c++)"typeinfo name for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
693- (c++)"typeinfo name for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
694- (c++)"typeinfo name for unity::scopes::qt::CancelledEvent@Base" 0.6.13+15.04.20150205.1
695- (c++)"typeinfo name for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
696- (c++)"typeinfo name for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
697- (c++)"typeinfo name for unity::scopes::qt::HttpAsyncReader@Base" 0.6.13+15.04.20150205.1
698- (c++)"typeinfo name for unity::scopes::qt::InitializeEvent@Base" 0.6.13+15.04.20150205.1
699- (c++)"typeinfo name for unity::scopes::qt::JsonAsyncReader@Base" 0.6.13+15.04.20150205.1
700- (c++)"typeinfo name for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
701- (c++)"typeinfo name for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
702- (c++)"typeinfo name for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
703- (c++)"typeinfo name for unity::scopes::qt::QCategorisedResult@Base" 0.6.13+15.04.20150205.1
704- (c++)"typeinfo name for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
705- (c++)"typeinfo name for unity::scopes::qt::QPreviewQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
706- (c++)"typeinfo name for unity::scopes::qt::QResult@Base" 0.6.13+15.04.20150205.1
707- (c++)"typeinfo name for unity::scopes::qt::RunEvent@Base" 0.6.13+15.04.20150205.1
708- (c++)"typeinfo name for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
709- (c++)"vtable for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
710- (c++)"vtable for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
711- (c++)"vtable for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
712- (c++)"vtable for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
713+ (c++)"unity::scopes::qt::XmlReader::XmlReader()@Base" 0.6.13+15.04.20150205.1
714 (c++)"vtable for unity::scopes::qt::CancelledEvent@Base" 0.6.13+15.04.20150205.1
715- (c++)"vtable for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
716- (c++)"vtable for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
717 (c++)"vtable for unity::scopes::qt::HttpAsyncReader@Base" 0.6.13+15.04.20150205.1
718 (c++)"vtable for unity::scopes::qt::InitializeEvent@Base" 0.6.13+15.04.20150205.1
719 (c++)"vtable for unity::scopes::qt::JsonAsyncReader@Base" 0.6.13+15.04.20150205.1
720- (c++)"vtable for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
721- (c++)"vtable for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
722- (c++)"vtable for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
723 (c++)"vtable for unity::scopes::qt::QCategorisedResult@Base" 0.6.13+15.04.20150205.1
724- (c++)"vtable for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
725+ (c++)"vtable for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
726 (c++)"vtable for unity::scopes::qt::QPreviewQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
727+ (c++)"vtable for unity::scopes::qt::QPreviewQueryBase@Base" 0.6.13+15.04.20150205.1
728+ (c++)"vtable for unity::scopes::qt::QPreviewReply@Base" 0.6.13+15.04.20150205.1
729+ (c++)"vtable for unity::scopes::qt::QPreviewWidget@Base" 0.6.13+15.04.20150205.1
730 (c++)"vtable for unity::scopes::qt::QResult@Base" 0.6.13+15.04.20150205.1
731+ (c++)"vtable for unity::scopes::qt::QScopeBaseAPI@Base" 0.6.13+15.04.20150205.1
732+ (c++)"vtable for unity::scopes::qt::QScopeBase@Base" 0.6.13+15.04.20150205.1
733+ (c++)"vtable for unity::scopes::qt::QSearchQueryBaseAPI@Base" 0.6.13+15.04.20150205.1
734+ (c++)"vtable for unity::scopes::qt::QSearchQueryBase@Base" 0.6.13+15.04.20150205.1
735+ (c++)"vtable for unity::scopes::qt::QSearchReply@Base" 0.6.13+15.04.20150205.1
736+ (c++)"vtable for unity::scopes::qt::QVariantBuilder@Base" 0.6.13+15.04.20150205.1
737 (c++)"vtable for unity::scopes::qt::RunEvent@Base" 0.6.13+15.04.20150205.1
738- (c++)"vtable for unity::scopes::qt::QCategory@Base" 0.6.13+15.04.20150205.1
739+ (c++)"vtable for unity::scopes::qt::XmlAsyncReader@Base" 0.6.13+15.04.20150205.1
740
741=== modified file 'include/unity/scopes/qt/HttpAsyncReader.h'
742--- include/unity/scopes/qt/HttpAsyncReader.h 2014-12-18 16:22:20 +0000
743+++ include/unity/scopes/qt/HttpAsyncReader.h 2015-02-27 03:34:05 +0000
744@@ -1,20 +1,21 @@
745 /*
746-* Copyright (C) 2014 Canonical, Ltd.
747-*
748-* This library is free software; you can redistribute it and/or modify it under
749-* the terms of version 3 of the GNU Lesser General Public License as published
750-* by the Free Software Foundation.
751-*
752-* This library is distributed in the hope that it will be useful, but WITHOUT
753-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
754-* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
755-* details.
756-*
757-* You should have received a copy of the GNU Lesser General Public License
758-* along with this program. If not, see <http://www.gnu.org/licenses/>.
759-*
760-* Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
761-*/
762+ * Copyright (C) 2014 Canonical Ltd
763+ *
764+ * This program is free software: you can redistribute it and/or modify
765+ * it under the terms of the GNU Lesser General Public License version 3 as
766+ * published by the Free Software Foundation.
767+ *
768+ * This program is distributed in the hope that it will be useful,
769+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
770+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
771+ * GNU Lesser General Public License for more details.
772+ *
773+ * You should have received a copy of the GNU Lesser General Public License
774+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
775+ *
776+ * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
777+ */
778+
779 #pragma once
780
781 #ifndef _ENABLE_QT_EXPERIMENTAL_
782
783=== modified file 'include/unity/scopes/qt/JsonAsyncReader.h'
784--- include/unity/scopes/qt/JsonAsyncReader.h 2015-01-20 14:14:26 +0000
785+++ include/unity/scopes/qt/JsonAsyncReader.h 2015-02-27 03:34:05 +0000
786@@ -1,20 +1,21 @@
787 /*
788-* Copyright (C) 2014 Canonical, Ltd.
789-*
790-* This library is free software; you can redistribute it and/or modify it under
791-* the terms of version 3 of the GNU Lesser General Public License as published
792-* by the Free Software Foundation.
793-*
794-* This library is distributed in the hope that it will be useful, but WITHOUT
795-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
796-* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
797-* details.
798-*
799-* You should have received a copy of the GNU Lesser General Public License
800-* along with this program. If not, see <http://www.gnu.org/licenses/>.
801-*
802-* Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
803-*/
804+ * Copyright (C) 2014 Canonical Ltd
805+ *
806+ * This program is free software: you can redistribute it and/or modify
807+ * it under the terms of the GNU Lesser General Public License version 3 as
808+ * published by the Free Software Foundation.
809+ *
810+ * This program is distributed in the hope that it will be useful,
811+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
812+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
813+ * GNU Lesser General Public License for more details.
814+ *
815+ * You should have received a copy of the GNU Lesser General Public License
816+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
817+ *
818+ * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
819+ */
820+
821 #pragma once
822
823 #ifndef _ENABLE_QT_EXPERIMENTAL_
824
825=== modified file 'include/unity/scopes/qt/JsonReader.h'
826--- include/unity/scopes/qt/JsonReader.h 2014-12-16 21:01:48 +0000
827+++ include/unity/scopes/qt/JsonReader.h 2015-02-27 03:34:05 +0000
828@@ -1,20 +1,21 @@
829 /*
830- * Copyright (C) 2014 Canonical, Ltd.
831- *
832- * This library is free software; you can redistribute it and/or modify it under
833- * the terms of version 3 of the GNU Lesser General Public License as published
834- * by the Free Software Foundation.
835- *
836- * This library is distributed in the hope that it will be useful, but WITHOUT
837- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
838- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
839- * details.
840+ * Copyright (C) 2014 Canonical Ltd
841+ *
842+ * This program is free software: you can redistribute it and/or modify
843+ * it under the terms of the GNU Lesser General Public License version 3 as
844+ * published by the Free Software Foundation.
845+ *
846+ * This program is distributed in the hope that it will be useful,
847+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
848+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
849+ * GNU Lesser General Public License for more details.
850 *
851 * You should have received a copy of the GNU Lesser General Public License
852 * along with this program. If not, see <http://www.gnu.org/licenses/>.
853 *
854 * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
855 */
856+
857 #pragma once
858
859 #ifndef _ENABLE_QT_EXPERIMENTAL_
860
861=== modified file 'include/unity/scopes/qt/QActionMetadata.h'
862--- include/unity/scopes/qt/QActionMetadata.h 2015-02-06 00:12:18 +0000
863+++ include/unity/scopes/qt/QActionMetadata.h 2015-02-27 03:34:05 +0000
864@@ -15,8 +15,13 @@
865 *
866 * Authored by: Xavi Garcia <xavi.garcia.mena@canonical.com>
867 */
868+
869 #pragma once
870
871+#ifndef _ENABLE_QT_EXPERIMENTAL_
872+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
873+#endif
874+
875 #include <unity/util/DefinesPtrs.h>
876
877 #pragma GCC diagnostic push
878
879=== modified file 'include/unity/scopes/qt/QCannedQuery.h'
880--- include/unity/scopes/qt/QCannedQuery.h 2015-02-06 00:12:18 +0000
881+++ include/unity/scopes/qt/QCannedQuery.h 2015-02-27 03:34:05 +0000
882@@ -18,6 +18,10 @@
883
884 #pragma once
885
886+#ifndef _ENABLE_QT_EXPERIMENTAL_
887+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
888+#endif
889+
890 #include <unity/util/DefinesPtrs.h>
891 #include <unity/scopes/FilterState.h>
892
893
894=== modified file 'include/unity/scopes/qt/QCategorisedResult.h'
895--- include/unity/scopes/qt/QCategorisedResult.h 2015-01-26 09:27:05 +0000
896+++ include/unity/scopes/qt/QCategorisedResult.h 2015-02-27 03:34:05 +0000
897@@ -18,6 +18,10 @@
898
899 #pragma once
900
901+#ifndef _ENABLE_QT_EXPERIMENTAL_
902+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
903+#endif
904+
905 #include <unity/scopes/qt/QResult.h>
906 #include <unity/scopes/qt/QCategory.h>
907
908
909=== modified file 'include/unity/scopes/qt/QCategory.h'
910--- include/unity/scopes/qt/QCategory.h 2015-02-06 00:12:18 +0000
911+++ include/unity/scopes/qt/QCategory.h 2015-02-27 03:34:05 +0000
912@@ -18,6 +18,10 @@
913
914 #pragma once
915
916+#ifndef _ENABLE_QT_EXPERIMENTAL_
917+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
918+#endif
919+
920 #include <unity/util/NonCopyable.h>
921 #include <unity/util/DefinesPtrs.h>
922
923
924=== modified file 'include/unity/scopes/qt/QColumnLayout.h'
925--- include/unity/scopes/qt/QColumnLayout.h 2015-02-06 00:12:18 +0000
926+++ include/unity/scopes/qt/QColumnLayout.h 2015-02-27 03:34:05 +0000
927@@ -18,6 +18,10 @@
928
929 #pragma once
930
931+#ifndef _ENABLE_QT_EXPERIMENTAL_
932+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
933+#endif
934+
935 #include <unity/util/DefinesPtrs.h>
936
937 #pragma GCC diagnostic push
938
939=== modified file 'include/unity/scopes/qt/QDepartment.h'
940--- include/unity/scopes/qt/QDepartment.h 2015-02-06 00:12:18 +0000
941+++ include/unity/scopes/qt/QDepartment.h 2015-02-27 03:34:05 +0000
942@@ -18,6 +18,10 @@
943
944 #pragma once
945
946+#ifndef _ENABLE_QT_EXPERIMENTAL_
947+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
948+#endif
949+
950 #include <unity/util/DefinesPtrs.h>
951
952 #pragma GCC diagnostic push
953@@ -25,8 +29,6 @@
954 #include <QtCore/QVariantMap>
955 #pragma GCC diagnostic pop
956 #include <QtCore/QString>
957-#include <QtCore/QSharedPointer>
958-#include <QtCore/QScopedPointer>
959
960 #include <memory>
961
962@@ -51,7 +53,7 @@
963 /*! \typedef QDepartmentList
964 \brief List of departments (see unity::scopes::qt::QDepartment)
965 */
966-typedef QList<QSharedPointer<QDepartment const>> QDepartmentList;
967+typedef QList<std::shared_ptr<QDepartment const>> QDepartmentList;
968
969 /**
970 \brief A department with optional sub-departments.
971
972=== modified file 'include/unity/scopes/qt/QPreviewQueryBase.h'
973--- include/unity/scopes/qt/QPreviewQueryBase.h 2015-01-26 14:13:31 +0000
974+++ include/unity/scopes/qt/QPreviewQueryBase.h 2015-02-27 03:34:05 +0000
975@@ -18,6 +18,10 @@
976
977 #pragma once
978
979+#ifndef _ENABLE_QT_EXPERIMENTAL_
980+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
981+#endif
982+
983 #include <unity/util/DefinesPtrs.h>
984 #include <unity/util/NonCopyable.h>
985
986
987=== modified file 'include/unity/scopes/qt/QPreviewQueryBaseAPI.h'
988--- include/unity/scopes/qt/QPreviewQueryBaseAPI.h 2015-01-26 14:13:31 +0000
989+++ include/unity/scopes/qt/QPreviewQueryBaseAPI.h 2015-02-27 03:34:05 +0000
990@@ -18,6 +18,10 @@
991
992 #pragma once
993
994+#ifndef _ENABLE_QT_EXPERIMENTAL_
995+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
996+#endif
997+
998 #include <unity/util/DefinesPtrs.h>
999 #include <unity/util/NonCopyable.h>
1000
1001@@ -41,6 +45,11 @@
1002 namespace qt
1003 {
1004
1005+namespace tests
1006+{
1007+class QPreviewQueryBaseAPIMock;
1008+}
1009+
1010 namespace internal
1011 {
1012 class QScopeBaseAPIImpl;
1013@@ -116,7 +125,11 @@
1014 std::unique_ptr<QPreviewQueryBase> qtquery_;
1015 QScopeBase& qtscope_;
1016
1017+private:
1018+ void init();
1019+
1020 friend internal::QScopeBaseAPIImpl;
1021+ friend unity::scopes::qt::tests::QPreviewQueryBaseAPIMock;
1022 /// @endcond
1023 };
1024
1025
1026=== modified file 'include/unity/scopes/qt/QPreviewReply.h'
1027--- include/unity/scopes/qt/QPreviewReply.h 2015-02-06 00:12:18 +0000
1028+++ include/unity/scopes/qt/QPreviewReply.h 2015-02-27 03:34:05 +0000
1029@@ -18,6 +18,10 @@
1030
1031 #pragma once
1032
1033+#ifndef _ENABLE_QT_EXPERIMENTAL_
1034+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1035+#endif
1036+
1037 #include <unity/util/DefinesPtrs.h>
1038 #include <unity/util/NonCopyable.h>
1039
1040
1041=== modified file 'include/unity/scopes/qt/QPreviewReplyProxy.h'
1042--- include/unity/scopes/qt/QPreviewReplyProxy.h 2015-01-20 13:59:36 +0000
1043+++ include/unity/scopes/qt/QPreviewReplyProxy.h 2015-02-27 03:34:05 +0000
1044@@ -18,6 +18,10 @@
1045
1046 #pragma once
1047
1048+#ifndef _ENABLE_QT_EXPERIMENTAL_
1049+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1050+#endif
1051+
1052 #include <unity/scopes/qt/QPreviewReply.h>
1053 #include <memory>
1054
1055
1056=== modified file 'include/unity/scopes/qt/QPreviewWidget.h'
1057--- include/unity/scopes/qt/QPreviewWidget.h 2015-02-06 00:12:18 +0000
1058+++ include/unity/scopes/qt/QPreviewWidget.h 2015-02-27 03:34:05 +0000
1059@@ -18,6 +18,10 @@
1060
1061 #pragma once
1062
1063+#ifndef _ENABLE_QT_EXPERIMENTAL_
1064+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1065+#endif
1066+
1067 #include <unity/util/NonCopyable.h>
1068 #include <unity/util/DefinesPtrs.h>
1069
1070
1071=== modified file 'include/unity/scopes/qt/QResult.h'
1072--- include/unity/scopes/qt/QResult.h 2015-02-06 00:12:18 +0000
1073+++ include/unity/scopes/qt/QResult.h 2015-02-27 03:34:05 +0000
1074@@ -18,6 +18,10 @@
1075
1076 #pragma once
1077
1078+#ifndef _ENABLE_QT_EXPERIMENTAL_
1079+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1080+#endif
1081+
1082 #include <unity/util/DefinesPtrs.h>
1083
1084 #include <unity/scopes/ScopeProxyFwd.h>
1085
1086=== modified file 'include/unity/scopes/qt/QScopeBase.h'
1087--- include/unity/scopes/qt/QScopeBase.h 2015-01-29 10:32:59 +0000
1088+++ include/unity/scopes/qt/QScopeBase.h 2015-02-27 03:34:05 +0000
1089@@ -18,6 +18,10 @@
1090
1091 #pragma once
1092
1093+#ifndef _ENABLE_QT_EXPERIMENTAL_
1094+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1095+#endif
1096+
1097 #include <unity/scopes/qt/QSearchQueryBase.h>
1098 #include <unity/scopes/qt/QPreviewQueryBase.h>
1099
1100
1101=== modified file 'include/unity/scopes/qt/QScopeBaseAPI.h'
1102--- include/unity/scopes/qt/QScopeBaseAPI.h 2015-02-09 02:23:22 +0000
1103+++ include/unity/scopes/qt/QScopeBaseAPI.h 2015-02-27 03:34:05 +0000
1104@@ -18,6 +18,10 @@
1105
1106 #pragma once
1107
1108+#ifndef _ENABLE_QT_EXPERIMENTAL_
1109+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1110+#endif
1111+
1112 #include <unity/scopes/ScopeBase.h>
1113 #include <unity/scopes/QueryBase.h>
1114 #include <unity/scopes/ReplyProxyFwd.h>
1115
1116=== modified file 'include/unity/scopes/qt/QSearchMetadata.h'
1117--- include/unity/scopes/qt/QSearchMetadata.h 2015-02-06 00:12:18 +0000
1118+++ include/unity/scopes/qt/QSearchMetadata.h 2015-02-27 03:34:05 +0000
1119@@ -18,6 +18,10 @@
1120
1121 #pragma once
1122
1123+#ifndef _ENABLE_QT_EXPERIMENTAL_
1124+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1125+#endif
1126+
1127 #include <unity/util/DefinesPtrs.h>
1128 #include <unity/scopes/Location.h>
1129
1130
1131=== modified file 'include/unity/scopes/qt/QSearchQueryBase.h'
1132--- include/unity/scopes/qt/QSearchQueryBase.h 2015-02-02 07:46:12 +0000
1133+++ include/unity/scopes/qt/QSearchQueryBase.h 2015-02-27 03:34:05 +0000
1134@@ -18,6 +18,10 @@
1135
1136 #pragma once
1137
1138+#ifndef _ENABLE_QT_EXPERIMENTAL_
1139+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1140+#endif
1141+
1142 #include <unity/util/DefinesPtrs.h>
1143 #include <unity/util/NonCopyable.h>
1144 #include <unity/scopes/SearchListenerBase.h>
1145
1146=== modified file 'include/unity/scopes/qt/QSearchQueryBaseAPI.h'
1147--- include/unity/scopes/qt/QSearchQueryBaseAPI.h 2015-02-02 07:46:12 +0000
1148+++ include/unity/scopes/qt/QSearchQueryBaseAPI.h 2015-02-27 03:34:05 +0000
1149@@ -18,6 +18,10 @@
1150
1151 #pragma once
1152
1153+#ifndef _ENABLE_QT_EXPERIMENTAL_
1154+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1155+#endif
1156+
1157 #include <unity/util/DefinesPtrs.h>
1158 #include <unity/util/NonCopyable.h>
1159
1160@@ -37,6 +41,11 @@
1161 namespace qt
1162 {
1163
1164+namespace tests
1165+{
1166+class QSearchQueryBaseAPIMock;
1167+}
1168+
1169 namespace internal
1170 {
1171 class QScopeBaseAPIImpl;
1172@@ -112,6 +121,9 @@
1173 std::unique_ptr<QSearchQueryBase> qtquery_;
1174 QScopeBase& qtscope_;
1175
1176+private:
1177+ void init();
1178+ friend unity::scopes::qt::tests::QSearchQueryBaseAPIMock;
1179 friend internal::QScopeBaseAPIImpl;
1180
1181 Q_SIGNALS:
1182
1183=== modified file 'include/unity/scopes/qt/QSearchReply.h'
1184--- include/unity/scopes/qt/QSearchReply.h 2015-01-26 14:13:31 +0000
1185+++ include/unity/scopes/qt/QSearchReply.h 2015-02-27 03:34:05 +0000
1186@@ -18,6 +18,10 @@
1187
1188 #pragma once
1189
1190+#ifndef _ENABLE_QT_EXPERIMENTAL_
1191+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1192+#endif
1193+
1194 #include <unity/util/DefinesPtrs.h>
1195 #include <unity/util/NonCopyable.h>
1196 #include <unity/scopes/SearchReply.h>
1197
1198=== modified file 'include/unity/scopes/qt/QSearchReplyProxy.h'
1199--- include/unity/scopes/qt/QSearchReplyProxy.h 2015-01-20 13:59:36 +0000
1200+++ include/unity/scopes/qt/QSearchReplyProxy.h 2015-02-27 03:34:05 +0000
1201@@ -18,6 +18,10 @@
1202
1203 #pragma once
1204
1205+#ifndef _ENABLE_QT_EXPERIMENTAL_
1206+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1207+#endif
1208+
1209 #include <unity/scopes/qt/QSearchReply.h>
1210 #include <memory>
1211
1212
1213=== modified file 'include/unity/scopes/qt/QVariantBuilder.h'
1214--- include/unity/scopes/qt/QVariantBuilder.h 2015-02-06 00:12:18 +0000
1215+++ include/unity/scopes/qt/QVariantBuilder.h 2015-02-27 03:34:05 +0000
1216@@ -18,6 +18,10 @@
1217
1218 #pragma once
1219
1220+#ifndef _ENABLE_QT_EXPERIMENTAL_
1221+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1222+#endif
1223+
1224 #include <QtCore/QPair>
1225 #include <QtCore/QString>
1226 #pragma GCC diagnostic push
1227@@ -61,9 +65,10 @@
1228
1229 \code
1230 VariantBuilder builder;
1231-builder.add_tuple({{"rating", Variant::null())}, {"review", Variant::null()}, {"author", Variant::null()}});
1232+builder.add_tuple({{"rating", QVariant()}, {"review", QVariant()}, {"author", QVariant()}});
1233 \endcode
1234 */
1235+
1236 class QVariantBuilder final
1237 {
1238 public:
1239@@ -91,17 +96,17 @@
1240 can be created with:
1241 \code
1242 QVariantBuilder builder;
1243- builder.add_tuple({{"a", Variant(1)}, {"b", Variant(2)}});
1244- builder.add_tuple({{"c", Variant(2)}, {"d", Variant(3)}});
1245+ builder.add_tuple({{"a", QVariant(1)}, {"b", QVariant(2)}});
1246+ builder.add_tuple({{"c", QVariant(2)}, {"d", QVariant(3)}});
1247 \endcode
1248 */
1249- // void add_tuple(std::initializer_list<QPair<QString, QVariant>> const& tuple);
1250+ void add_tuple(std::initializer_list<QPair<QString, QVariant>> const& tuple);
1251
1252 /**
1253 \brief Adds a tuple of key-value pairs to an array.
1254
1255- This is an overloaded version of add_tuple that accepts `std::vector` instead of
1256- `std::initializer_list`, making it more convenient for language bindings.
1257+ This is an overloaded version of add_tuple that accepts `QVector` instead of
1258+ `std::initializer_list`.
1259 */
1260 void add_tuple(QVector<QPair<QString, QVariant>> const& tuple);
1261
1262
1263=== modified file 'include/unity/scopes/qt/XmlAsyncReader.h'
1264--- include/unity/scopes/qt/XmlAsyncReader.h 2014-12-18 09:44:25 +0000
1265+++ include/unity/scopes/qt/XmlAsyncReader.h 2015-02-27 03:34:05 +0000
1266@@ -1,20 +1,21 @@
1267 /*
1268-* Copyright (C) 2014 Canonical, Ltd.
1269-*
1270-* This library is free software; you can redistribute it and/or modify it under
1271-* the terms of version 3 of the GNU Lesser General Public License as published
1272-* by the Free Software Foundation.
1273-*
1274-* This library is distributed in the hope that it will be useful, but WITHOUT
1275-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1276-* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
1277-* details.
1278-*
1279-* You should have received a copy of the GNU Lesser General Public License
1280-* along with this program. If not, see <http://www.gnu.org/licenses/>.
1281-*
1282-* Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
1283-*/
1284+ * Copyright (C) 2014 Canonical Ltd
1285+ *
1286+ * This program is free software: you can redistribute it and/or modify
1287+ * it under the terms of the GNU Lesser General Public License version 3 as
1288+ * published by the Free Software Foundation.
1289+ *
1290+ * This program is distributed in the hope that it will be useful,
1291+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1292+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1293+ * GNU Lesser General Public License for more details.
1294+ *
1295+ * You should have received a copy of the GNU Lesser General Public License
1296+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1297+ *
1298+ * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
1299+ */
1300+
1301 #pragma once
1302
1303 #ifndef _ENABLE_QT_EXPERIMENTAL_
1304
1305=== modified file 'include/unity/scopes/qt/XmlReader.h'
1306--- include/unity/scopes/qt/XmlReader.h 2014-12-16 21:01:48 +0000
1307+++ include/unity/scopes/qt/XmlReader.h 2015-02-27 03:34:05 +0000
1308@@ -1,20 +1,21 @@
1309 /*
1310- * Copyright (C) 2014 Canonical, Ltd.
1311- *
1312- * This library is free software; you can redistribute it and/or modify it under
1313- * the terms of version 3 of the GNU Lesser General Public License as published
1314- * by the Free Software Foundation.
1315- *
1316- * This library is distributed in the hope that it will be useful, but WITHOUT
1317- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1318- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
1319- * details.
1320+ * Copyright (C) 2014 Canonical Ltd
1321+ *
1322+ * This program is free software: you can redistribute it and/or modify
1323+ * it under the terms of the GNU Lesser General Public License version 3 as
1324+ * published by the Free Software Foundation.
1325+ *
1326+ * This program is distributed in the hope that it will be useful,
1327+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1328+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1329+ * GNU Lesser General Public License for more details.
1330 *
1331 * You should have received a copy of the GNU Lesser General Public License
1332 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1333 *
1334 * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
1335 */
1336+
1337 #pragma once
1338
1339 #ifndef _ENABLE_QT_EXPERIMENTAL_
1340
1341=== modified file 'include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h'
1342--- include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h 2015-01-29 10:32:59 +0000
1343+++ include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h 2015-02-27 03:34:05 +0000
1344@@ -58,8 +58,8 @@
1345 NONCOPYABLE(QScopeBaseAPIImpl);
1346 UNITY_DEFINES_PTRS(QScopeBaseAPIImpl);
1347
1348- QScopeBaseAPIImpl(QScopeBase& qtscope, QObject *parent=0);
1349- QScopeBaseAPIImpl(FactoryFunc const& creator, QObject *parent=0);
1350+ QScopeBaseAPIImpl(QScopeBase& qtscope, QObject* parent = 0);
1351+ QScopeBaseAPIImpl(FactoryFunc const& creator, QObject* parent = 0);
1352 virtual ~QScopeBaseAPIImpl();
1353
1354 bool event(QEvent* e) override;
1355
1356=== renamed file 'include/unity/scopes/qt/QUtils.h' => 'include/unity/scopes/qt/internal/QUtils.h'
1357--- include/unity/scopes/qt/QUtils.h 2015-02-06 00:12:18 +0000
1358+++ include/unity/scopes/qt/internal/QUtils.h 2015-02-27 03:34:05 +0000
1359@@ -18,14 +18,16 @@
1360
1361 #pragma once
1362
1363+#ifndef _ENABLE_QT_EXPERIMENTAL_
1364+#error You should define _ENABLE_QT_EXPERIMENTAL_ in order to use this experimental header file.
1365+#endif
1366+
1367 #pragma GCC diagnostic push
1368 #pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
1369 #include <QtCore/QVariant>
1370 #pragma GCC diagnostic pop
1371 #include <unity/scopes/Variant.h>
1372
1373-#define EXPORT __attribute__((visibility("default")))
1374-
1375 namespace unity
1376 {
1377
1378@@ -35,12 +37,15 @@
1379 namespace qt
1380 {
1381
1382-///@cond
1383-EXPORT QVariant scopeVariantToQVariant(unity::scopes::Variant const& variant);
1384-EXPORT unity::scopes::Variant qVariantToScopeVariant(QVariant const& variant);
1385-EXPORT QVariantMap scopeVariantMapToQVariantMap(unity::scopes::VariantMap const& variant);
1386-EXPORT VariantMap qVariantMapToScopeVariantMap(QVariantMap const& variant);
1387-///@endcond
1388+namespace internal
1389+{
1390+
1391+QVariant variant_to_qvariant(unity::scopes::Variant const& variant);
1392+unity::scopes::Variant qvariant_to_variant(QVariant const& variant);
1393+QVariantMap variantmap_to_qvariantmap(unity::scopes::VariantMap const& variant);
1394+VariantMap qvariantmap_to_variantmap(QVariantMap const& variant);
1395+
1396+} // namespace qt
1397
1398 } // namespace qt
1399
1400
1401=== modified file 'src/scopes/qt/CMakeLists.txt'
1402--- src/scopes/qt/CMakeLists.txt 2015-01-27 16:10:33 +0000
1403+++ src/scopes/qt/CMakeLists.txt 2015-02-27 03:34:05 +0000
1404@@ -1,56 +1,58 @@
1405 set(CMAKE_AUTOMOC ON)
1406 set(CMAKE_INCLUDE_CURRENT_DIR ON)
1407
1408+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_ENABLE_QT_EXPERIMENTAL_")
1409+
1410 set(SCOPES_QT_SRC
1411 ${CMAKE_CURRENT_SOURCE_DIR}/HttpAsyncReader.cpp
1412- ${CMAKE_CURRENT_SOURCE_DIR}/JsonAsyncReader.cpp
1413- ${CMAKE_CURRENT_SOURCE_DIR}/JsonReader.cpp
1414- ${CMAKE_CURRENT_SOURCE_DIR}/XmlAsyncReader.cpp
1415- ${CMAKE_CURRENT_SOURCE_DIR}/XmlReader.cpp
1416- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QScopeBaseImpl.cpp
1417- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QScopeBaseAPIImpl.cpp
1418- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchQueryBaseImpl.cpp
1419- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchReplyImpl.cpp
1420+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QActionMetadataImpl.cpp
1421+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QCannedQueryImpl.cpp
1422+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QCategorisedResultImpl.cpp
1423 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QCategoryImpl.cpp
1424- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QResultImpl.cpp
1425- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QCategorisedResultImpl.cpp
1426- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QVariantBuilderImpl.cpp
1427- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QCannedQueryImpl.cpp
1428- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchMetadataImpl.cpp
1429+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QColumnLayoutImpl.cpp
1430 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QDepartmentImpl.cpp
1431 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QPreviewQueryBaseImpl.cpp
1432- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QActionMetadataImpl.cpp
1433- ${CMAKE_CURRENT_SOURCE_DIR}/internal/QColumnLayoutImpl.cpp
1434 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QPreviewReplyImpl.cpp
1435 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QPreviewWidgetImpl.cpp
1436+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QResultImpl.cpp
1437+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QScopeBaseAPIImpl.cpp
1438+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QScopeBaseImpl.cpp
1439 ${CMAKE_CURRENT_SOURCE_DIR}/internal/QScopeVariant.cpp
1440- ${CMAKE_CURRENT_SOURCE_DIR}/QSearchQueryBaseAPI.cpp
1441+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchMetadataImpl.cpp
1442+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchQueryBaseImpl.cpp
1443+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QSearchReplyImpl.cpp
1444+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QUtils.cpp
1445+ ${CMAKE_CURRENT_SOURCE_DIR}/internal/QVariantBuilderImpl.cpp
1446+ ${CMAKE_CURRENT_SOURCE_DIR}/JsonAsyncReader.cpp
1447+ ${CMAKE_CURRENT_SOURCE_DIR}/JsonReader.cpp
1448+ ${CMAKE_CURRENT_SOURCE_DIR}/QActionMetadata.cpp
1449+ ${CMAKE_CURRENT_SOURCE_DIR}/QCannedQuery.cpp
1450+ ${CMAKE_CURRENT_SOURCE_DIR}/QCategorisedResult.cpp
1451+ ${CMAKE_CURRENT_SOURCE_DIR}/QCategory.cpp
1452+ ${CMAKE_CURRENT_SOURCE_DIR}/QColumnLayout.cpp
1453+ ${CMAKE_CURRENT_SOURCE_DIR}/QDepartment.cpp
1454 ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewQueryBaseAPI.cpp
1455- ${CMAKE_CURRENT_SOURCE_DIR}/QSearchReply.cpp
1456+ ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewQueryBase.cpp
1457+ ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewReply.cpp
1458+ ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewWidget.cpp
1459+ ${CMAKE_CURRENT_SOURCE_DIR}/QResult.cpp
1460+ ${CMAKE_CURRENT_SOURCE_DIR}/QScopeBaseAPI.cpp
1461 ${CMAKE_CURRENT_SOURCE_DIR}/QScopeBase.cpp
1462+ ${CMAKE_CURRENT_SOURCE_DIR}/QSearchMetadata.cpp
1463+ ${CMAKE_CURRENT_SOURCE_DIR}/QSearchQueryBaseAPI.cpp
1464 ${CMAKE_CURRENT_SOURCE_DIR}/QSearchQueryBase.cpp
1465- ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewQueryBase.cpp
1466- ${CMAKE_CURRENT_SOURCE_DIR}/QScopeBaseAPI.cpp
1467- ${CMAKE_CURRENT_SOURCE_DIR}/QCategory.cpp
1468- ${CMAKE_CURRENT_SOURCE_DIR}/QResult.cpp
1469- ${CMAKE_CURRENT_SOURCE_DIR}/QCategorisedResult.cpp
1470- ${CMAKE_CURRENT_SOURCE_DIR}/QUtils.cpp
1471+ ${CMAKE_CURRENT_SOURCE_DIR}/QSearchReply.cpp
1472 ${CMAKE_CURRENT_SOURCE_DIR}/QVariantBuilder.cpp
1473- ${CMAKE_CURRENT_SOURCE_DIR}/QCannedQuery.cpp
1474- ${CMAKE_CURRENT_SOURCE_DIR}/QSearchMetadata.cpp
1475- ${CMAKE_CURRENT_SOURCE_DIR}/QDepartment.cpp
1476- ${CMAKE_CURRENT_SOURCE_DIR}/QActionMetadata.cpp
1477- ${CMAKE_CURRENT_SOURCE_DIR}/QColumnLayout.cpp
1478- ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewReply.cpp
1479- ${CMAKE_CURRENT_SOURCE_DIR}/QPreviewWidget.cpp
1480- ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QSearchQueryBaseAPI.h
1481+ ${CMAKE_CURRENT_SOURCE_DIR}/XmlAsyncReader.cpp
1482+ ${CMAKE_CURRENT_SOURCE_DIR}/XmlReader.cpp
1483+ ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h
1484 ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QPreviewQueryBaseAPI.h
1485 ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QPreviewQueryBase.h
1486- ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QSearchQueryBase.h
1487 ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QPreviewReply.h
1488 ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QScopeBase.h
1489+ ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QSearchQueryBaseAPI.h
1490+ ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QSearchQueryBase.h
1491 ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/QSearchReply.h
1492- ${CMAKE_SOURCE_DIR}/include/unity/scopes/qt/internal/QScopeBaseAPIImpl.h
1493 )
1494
1495 # -- libunity-scopes-qt --
1496
1497=== modified file 'src/scopes/qt/HttpAsyncReader.cpp'
1498--- src/scopes/qt/HttpAsyncReader.cpp 2015-01-20 14:14:26 +0000
1499+++ src/scopes/qt/HttpAsyncReader.cpp 2015-02-27 03:34:05 +0000
1500@@ -15,8 +15,6 @@
1501 *
1502 * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
1503 */
1504-// allow experimental headers
1505-#define _ENABLE_QT_EXPERIMENTAL_
1506
1507 #include <unity/scopes/qt/HttpAsyncReader.h>
1508 #include <core/net/uri.h>
1509
1510=== modified file 'src/scopes/qt/JsonAsyncReader.cpp'
1511--- src/scopes/qt/JsonAsyncReader.cpp 2015-01-20 13:59:36 +0000
1512+++ src/scopes/qt/JsonAsyncReader.cpp 2015-02-27 03:34:05 +0000
1513@@ -15,7 +15,6 @@
1514 *
1515 * Author: Xavi Garcia <xavi.garcia.mena@canonical.com>
1516 */
1517-#define _ENABLE_QT_EXPERIMENTAL_
1518
1519 #include <unity/scopes/qt/JsonAsyncReader.h>
1520
1521
1522=== modified file 'src/scopes/qt/JsonReader.cpp'
1523--- src/scopes/qt/JsonReader.cpp 2015-01-20 13:59:36 +0000
1524+++ src/scopes/qt/JsonReader.cpp 2015-02-27 03:34:05 +0000
1525@@ -17,7 +17,6 @@
1526 */
1527
1528 // allow experimental headers
1529-#define _ENABLE_QT_EXPERIMENTAL_
1530
1531 #include <unity/scopes/qt/JsonAsyncReader.h>
1532 #include <unity/scopes/qt/JsonReader.h>
1533
1534=== modified file 'src/scopes/qt/QPreviewQueryBaseAPI.cpp'
1535--- src/scopes/qt/QPreviewQueryBaseAPI.cpp 2015-01-29 14:30:30 +0000
1536+++ src/scopes/qt/QPreviewQueryBaseAPI.cpp 2015-02-27 03:34:05 +0000
1537@@ -101,9 +101,6 @@
1538 {
1539 // move the object to the Qt thread
1540 this->moveToThread(qtapp_->thread());
1541-
1542- // Post event to initialize the object in the Qt thread
1543- qtapp_->postEvent(this, new InitializeEvent());
1544 }
1545
1546 QPreviewQueryBaseAPI::~QPreviewQueryBaseAPI()
1547@@ -156,4 +153,10 @@
1548 // Qt event loop
1549 qtapp_->postEvent(this, new CancelledEvent());
1550 }
1551+
1552+void QPreviewQueryBaseAPI::init()
1553+{
1554+ // Post event to initialize the object in the Qt thread
1555+ qtapp_->postEvent(this, new InitializeEvent());
1556+}
1557 /// @endcond
1558
1559=== modified file 'src/scopes/qt/QResult.cpp'
1560--- src/scopes/qt/QResult.cpp 2015-01-26 09:27:05 +0000
1561+++ src/scopes/qt/QResult.cpp 2015-02-27 03:34:05 +0000
1562@@ -17,7 +17,6 @@
1563 */
1564
1565 #include <unity/scopes/qt/QResult.h>
1566-#include <unity/scopes/qt/QUtils.h>
1567
1568 #include <unity/scopes/qt/internal/QResultImpl.h>
1569
1570
1571=== modified file 'src/scopes/qt/QSearchMetadata.cpp'
1572--- src/scopes/qt/QSearchMetadata.cpp 2015-01-26 15:25:30 +0000
1573+++ src/scopes/qt/QSearchMetadata.cpp 2015-02-27 03:34:05 +0000
1574@@ -17,7 +17,6 @@
1575 */
1576
1577 #include <unity/scopes/qt/QSearchMetadata.h>
1578-#include <unity/scopes/qt/QUtils.h>
1579
1580 #include <unity/scopes/qt/internal/QSearchMetadataImpl.h>
1581 #include <unity/scopes/qt/internal/QScopeVariant.h>
1582
1583=== modified file 'src/scopes/qt/QSearchQueryBaseAPI.cpp'
1584--- src/scopes/qt/QSearchQueryBaseAPI.cpp 2015-02-02 07:46:12 +0000
1585+++ src/scopes/qt/QSearchQueryBaseAPI.cpp 2015-02-27 03:34:05 +0000
1586@@ -97,9 +97,6 @@
1587 {
1588 // move the object to the Qt thread
1589 this->moveToThread(app->thread());
1590-
1591- // Post event to initialize the object in the Qt thread
1592- app->postEvent(this, new InitializeEvent());
1593 }
1594
1595 QSearchQueryBaseAPI::~QSearchQueryBaseAPI()
1596@@ -118,7 +115,10 @@
1597 // initialize the query object
1598 qtquery_ = qtscope_.search(SearchQueryBase::query(), SearchQueryBase::search_metadata());
1599 qtquery_->init(this);
1600- connect(this, SIGNAL(run_signal(QSearchReplyProxy const&)), qtquery_.get(), SLOT(run(QSearchReplyProxy const&)));
1601+ connect(this,
1602+ SIGNAL(run_signal(QSearchReplyProxy const&)),
1603+ qtquery_.get(),
1604+ SLOT(run(QSearchReplyProxy const&)));
1605 break;
1606 case Run:
1607 assert(qtquery_);
1608@@ -152,4 +152,10 @@
1609 // Qt event loop
1610 qtapp_->postEvent(this, new CancelledEvent());
1611 }
1612+
1613+void QSearchQueryBaseAPI::init()
1614+{
1615+ // Post event to initialize the object in the Qt thread
1616+ qtapp_->postEvent(this, new InitializeEvent());
1617+}
1618 /// @endcond
1619
1620=== modified file 'src/scopes/qt/QVariantBuilder.cpp'
1621--- src/scopes/qt/QVariantBuilder.cpp 2015-01-26 14:13:31 +0000
1622+++ src/scopes/qt/QVariantBuilder.cpp 2015-02-27 03:34:05 +0000
1623@@ -50,6 +50,11 @@
1624
1625 QVariantBuilder& QVariantBuilder::operator=(QVariantBuilder&& other) = default;
1626
1627+void QVariantBuilder::add_tuple(std::initializer_list<QPair<QString, QVariant>> const& tuple)
1628+{
1629+ p->add_tuple(tuple);
1630+}
1631+
1632 void QVariantBuilder::add_tuple(QVector<QPair<QString, QVariant>> const& tuple)
1633 {
1634 p->add_tuple(tuple);
1635
1636=== modified file 'src/scopes/qt/XmlAsyncReader.cpp'
1637--- src/scopes/qt/XmlAsyncReader.cpp 2015-01-20 13:59:36 +0000
1638+++ src/scopes/qt/XmlAsyncReader.cpp 2015-02-27 03:34:05 +0000
1639@@ -17,7 +17,6 @@
1640 */
1641
1642 // allow experimental headers
1643-#define _ENABLE_QT_EXPERIMENTAL_
1644
1645 #include <unity/scopes/qt/XmlAsyncReader.h>
1646
1647
1648=== modified file 'src/scopes/qt/XmlReader.cpp'
1649--- src/scopes/qt/XmlReader.cpp 2015-01-20 14:14:26 +0000
1650+++ src/scopes/qt/XmlReader.cpp 2015-02-27 03:34:05 +0000
1651@@ -17,7 +17,6 @@
1652 */
1653
1654 // allow experimental headers
1655-#define _ENABLE_QT_EXPERIMENTAL_
1656
1657 #include <unity/scopes/qt/XmlAsyncReader.h>
1658 #include <unity/scopes/qt/XmlReader.h>
1659
1660=== modified file 'src/scopes/qt/internal/QActionMetadataImpl.cpp'
1661--- src/scopes/qt/internal/QActionMetadataImpl.cpp 2015-01-26 15:25:30 +0000
1662+++ src/scopes/qt/internal/QActionMetadataImpl.cpp 2015-02-27 03:34:05 +0000
1663@@ -18,8 +18,7 @@
1664
1665 #include <unity/scopes/qt/internal/QActionMetadataImpl.h>
1666 #include <unity/scopes/qt/internal/QScopeVariant.h>
1667-
1668-#include <unity/scopes/qt/QUtils.h>
1669+#include <unity/scopes/qt/internal/QUtils.h>
1670
1671 #include <unity/scopes/ActionMetadata.h>
1672
1673@@ -44,12 +43,12 @@
1674
1675 void QActionMetadataImpl::set_scope_data(QVariant const& data)
1676 {
1677- api_metadata_->set_scope_data(qVariantToScopeVariant(data));
1678+ api_metadata_->set_scope_data(qvariant_to_variant(data));
1679 }
1680
1681 QVariant QActionMetadataImpl::scope_data() const
1682 {
1683- return scopeVariantToQVariant(api_metadata_->scope_data());
1684+ return variant_to_qvariant(api_metadata_->scope_data());
1685 }
1686
1687 QActionMetadataImpl::QActionMetadataImpl(QActionMetadataImpl const& other)
1688@@ -75,13 +74,13 @@
1689
1690 void QActionMetadataImpl::set_hint(QString const& key, QVariant const& value)
1691 {
1692- api_metadata_->set_hint(key.toUtf8().data(), qVariantToScopeVariant(value));
1693+ api_metadata_->set_hint(key.toUtf8().data(), qvariant_to_variant(value));
1694 }
1695
1696 QVariantMap QActionMetadataImpl::hints() const
1697 {
1698 sync_values();
1699- return (scopeVariantMapToQVariantMap(api_metadata_->hints()));
1700+ return (variantmap_to_qvariantmap(api_metadata_->hints()));
1701 }
1702
1703 bool QActionMetadataImpl::contains_hint(QString const& key) const
1704
1705=== modified file 'src/scopes/qt/internal/QCannedQueryImpl.cpp'
1706--- src/scopes/qt/internal/QCannedQueryImpl.cpp 2015-01-26 14:13:31 +0000
1707+++ src/scopes/qt/internal/QCannedQueryImpl.cpp 2015-02-27 03:34:05 +0000
1708@@ -17,10 +17,10 @@
1709 */
1710
1711 #include <unity/scopes/qt/internal/QCannedQueryImpl.h>
1712+#include <unity/scopes/qt/internal/QUtils.h>
1713
1714 #include <unity/scopes/CannedQuery.h>
1715
1716-#include <unity/scopes/qt/QUtils.h>
1717
1718 using namespace unity::scopes;
1719 using namespace unity::scopes::qt;
1720@@ -83,7 +83,7 @@
1721
1722 QVariantMap QCannedQueryImpl::serialize() const
1723 {
1724- return scopeVariantMapToQVariantMap(api_query_->serialize());
1725+ return variantmap_to_qvariantmap(api_query_->serialize());
1726 }
1727
1728 QString QCannedQueryImpl::to_uri() const
1729
1730=== modified file 'src/scopes/qt/internal/QCategoryImpl.cpp'
1731--- src/scopes/qt/internal/QCategoryImpl.cpp 2015-01-26 09:27:05 +0000
1732+++ src/scopes/qt/internal/QCategoryImpl.cpp 2015-02-27 03:34:05 +0000
1733@@ -17,8 +17,8 @@
1734 */
1735
1736 #include <unity/scopes/qt/internal/QCategoryImpl.h>
1737+#include <unity/scopes/qt/internal/QUtils.h>
1738 #include <unity/scopes/qt/QCategory.h>
1739-#include <unity/scopes/qt/QUtils.h>
1740
1741 using namespace unity::scopes;
1742 using namespace unity::scopes::qt;
1743@@ -63,7 +63,7 @@
1744 QVariantMap ret_map;
1745 for (auto items : api_category_->serialize())
1746 {
1747- ret_map[QString::fromStdString(items.first)] = scopeVariantToQVariant(items.second);
1748+ ret_map[QString::fromStdString(items.first)] = variant_to_qvariant(items.second);
1749 }
1750 return ret_map;
1751 }
1752
1753=== modified file 'src/scopes/qt/internal/QColumnLayoutImpl.cpp'
1754--- src/scopes/qt/internal/QColumnLayoutImpl.cpp 2015-01-26 14:13:31 +0000
1755+++ src/scopes/qt/internal/QColumnLayoutImpl.cpp 2015-02-27 03:34:05 +0000
1756@@ -17,8 +17,7 @@
1757 */
1758
1759 #include <unity/scopes/qt/internal/QColumnLayoutImpl.h>
1760-
1761-#include <unity/scopes/qt/QUtils.h>
1762+#include <unity/scopes/qt/internal/QUtils.h>
1763
1764 #include <unity/scopes/ColumnLayout.h>
1765
1766@@ -88,7 +87,7 @@
1767
1768 QVariantMap QColumnLayoutImpl::serialize() const
1769 {
1770- return scopeVariantMapToQVariantMap(api_layout_->serialize());
1771+ return variantmap_to_qvariantmap(api_layout_->serialize());
1772 }
1773
1774 QColumnLayoutImpl::QColumnLayoutImpl(ColumnLayout* api_layout)
1775
1776=== modified file 'src/scopes/qt/internal/QDepartmentImpl.cpp'
1777--- src/scopes/qt/internal/QDepartmentImpl.cpp 2015-01-26 14:13:31 +0000
1778+++ src/scopes/qt/internal/QDepartmentImpl.cpp 2015-02-27 03:34:05 +0000
1779@@ -18,7 +18,7 @@
1780
1781 #include <unity/scopes/qt/internal/QDepartmentImpl.h>
1782 #include <unity/scopes/qt/internal/QCannedQueryImpl.h>
1783-#include <unity/scopes/qt/QUtils.h>
1784+#include <unity/scopes/qt/internal/QUtils.h>
1785
1786 #include <unity/scopes/Department.h>
1787 #include <unity/scopes/CannedQuery.h>
1788@@ -55,10 +55,10 @@
1789 void QDepartmentImpl::set_subdepartments(QDepartmentList const& departments)
1790 {
1791 DepartmentList api_list;
1792- QListIterator<QSharedPointer<QDepartment const>> it(departments);
1793+ QListIterator<std::shared_ptr<QDepartment const>> it(departments);
1794 while (it.hasNext())
1795 {
1796- api_list.push_back(it.next().data()->p->api_department_);
1797+ api_list.push_back(it.next().get()->p->api_department_);
1798 }
1799 api_department_->set_subdepartments(api_list);
1800 }
1801@@ -103,7 +103,7 @@
1802 QDepartmentList ret_list;
1803 for (auto item : api_department_->subdepartments())
1804 {
1805- QSharedPointer<QDepartment> qdepartment(new QDepartment(new QDepartmentImpl(*item)));
1806+ std::shared_ptr<QDepartment> qdepartment(new QDepartment(new QDepartmentImpl(*item)));
1807 ret_list.push_back(qdepartment);
1808 }
1809 return ret_list;
1810@@ -111,7 +111,7 @@
1811
1812 QVariantMap QDepartmentImpl::serialize() const
1813 {
1814- return scopeVariantMapToQVariantMap(api_department_->serialize());
1815+ return variantmap_to_qvariantmap(api_department_->serialize());
1816 }
1817
1818 // added for testing purposes
1819
1820=== modified file 'src/scopes/qt/internal/QPreviewReplyImpl.cpp'
1821--- src/scopes/qt/internal/QPreviewReplyImpl.cpp 2015-01-20 14:14:26 +0000
1822+++ src/scopes/qt/internal/QPreviewReplyImpl.cpp 2015-02-27 03:34:05 +0000
1823@@ -19,8 +19,7 @@
1824 #include <unity/scopes/qt/internal/QPreviewReplyImpl.h>
1825 #include <unity/scopes/qt/internal/QColumnLayoutImpl.h>
1826 #include <unity/scopes/qt/internal/QPreviewWidgetImpl.h>
1827-
1828-#include <unity/scopes/qt/QUtils.h>
1829+#include <unity/scopes/qt/internal/QUtils.h>
1830
1831 #include <unity/scopes/ColumnLayout.h>
1832 #include <unity/scopes/PreviewReply.h>
1833@@ -55,7 +54,7 @@
1834
1835 bool QPreviewReplyImpl::push(QString const& key, QVariant const& value)
1836 {
1837- return api_reply_->push(key.toUtf8().data(), qVariantToScopeVariant(value));
1838+ return api_reply_->push(key.toUtf8().data(), qvariant_to_variant(value));
1839 }
1840
1841 QPreviewReplyImpl::~QPreviewReplyImpl() = default;
1842
1843=== modified file 'src/scopes/qt/internal/QPreviewWidgetImpl.cpp'
1844--- src/scopes/qt/internal/QPreviewWidgetImpl.cpp 2015-01-20 14:14:26 +0000
1845+++ src/scopes/qt/internal/QPreviewWidgetImpl.cpp 2015-02-27 03:34:05 +0000
1846@@ -17,8 +17,8 @@
1847 */
1848
1849 #include <unity/scopes/qt/internal/QPreviewWidgetImpl.h>
1850+#include <unity/scopes/qt/internal/QUtils.h>
1851
1852-#include <unity/scopes/qt/QUtils.h>
1853 #include <unity/scopes/qt/QPreviewWidget.h>
1854
1855 #include <unity/scopes/PreviewWidget.h>
1856@@ -59,7 +59,7 @@
1857
1858 void QPreviewWidgetImpl::add_attribute_value(QString const& key, QVariant const& value)
1859 {
1860- api_widget_->add_attribute_value(key.toUtf8().data(), qVariantToScopeVariant(value));
1861+ api_widget_->add_attribute_value(key.toUtf8().data(), qvariant_to_variant(value));
1862 }
1863
1864 void QPreviewWidgetImpl::add_attribute_mapping(QString const& key, QString const& field_name)
1865@@ -94,7 +94,7 @@
1866
1867 QVariantMap QPreviewWidgetImpl::attribute_values() const
1868 {
1869- return scopeVariantMapToQVariantMap(api_widget_->attribute_values());
1870+ return variantmap_to_qvariantmap(api_widget_->attribute_values());
1871 }
1872
1873 QPreviewWidgetList QPreviewWidgetImpl::widgets() const
1874@@ -114,7 +114,7 @@
1875
1876 QVariantMap QPreviewWidgetImpl::serialize() const
1877 {
1878- return scopeVariantMapToQVariantMap(api_widget_->serialize());
1879+ return variantmap_to_qvariantmap(api_widget_->serialize());
1880 }
1881
1882 QPreviewWidgetImpl::QPreviewWidgetImpl(PreviewWidget const& api_widget)
1883
1884=== modified file 'src/scopes/qt/internal/QResultImpl.cpp'
1885--- src/scopes/qt/internal/QResultImpl.cpp 2015-01-29 14:30:30 +0000
1886+++ src/scopes/qt/internal/QResultImpl.cpp 2015-02-27 03:34:05 +0000
1887@@ -18,9 +18,9 @@
1888
1889 #include <unity/scopes/qt/internal/QResultImpl.h>
1890 #include <unity/scopes/qt/internal/QScopeVariant.h>
1891+#include <unity/scopes/qt/internal/QUtils.h>
1892
1893 #include <unity/scopes/qt/QResult.h>
1894-#include <unity/scopes/qt/QUtils.h>
1895
1896 #include <unity/scopes/Result.h>
1897
1898@@ -60,7 +60,7 @@
1899 APIResult& operator=(APIResult&&) = default;
1900
1901 APIResult(const QVariantMap& variant_map)
1902- : Result(qVariantMapToScopeVariantMap(variant_map)){};
1903+ : Result(qvariantmap_to_variantmap(variant_map)){};
1904
1905 static VariantMap getValidEmptyMap()
1906 {
1907@@ -124,7 +124,7 @@
1908
1909 QResult QResultImpl::retrieve() const
1910 {
1911- return QResult(scopeVariantMapToQVariantMap(api_result_->retrieve().serialize()));
1912+ return QResult(variantmap_to_qvariantmap(api_result_->retrieve().serialize()));
1913 }
1914
1915 void QResultImpl::set_uri(QString const& uri)
1916@@ -233,7 +233,7 @@
1917 QVariantMap QResultImpl::serialize() const
1918 {
1919 sync_values();
1920- return scopeVariantMapToQVariantMap(api_result_->serialize());
1921+ return variantmap_to_qvariantmap(api_result_->serialize());
1922 }
1923
1924 void QResultImpl::sync_values() const
1925
1926=== modified file 'src/scopes/qt/internal/QScopeBaseAPIImpl.cpp'
1927--- src/scopes/qt/internal/QScopeBaseAPIImpl.cpp 2015-01-29 14:30:30 +0000
1928+++ src/scopes/qt/internal/QScopeBaseAPIImpl.cpp 2015-02-27 03:34:05 +0000
1929@@ -54,8 +54,8 @@
1930 {
1931 public:
1932 StartEvent(QString const& scope_id)
1933- : QEvent(static_cast<QEvent::Type>(Start)),
1934- scope_id_(scope_id)
1935+ : QEvent(static_cast<QEvent::Type>(Start))
1936+ , scope_id_(scope_id)
1937 {
1938 }
1939 QString scope_id_;
1940@@ -78,18 +78,18 @@
1941
1942 } // namespace unity
1943
1944-QScopeBaseAPIImpl::QScopeBaseAPIImpl(QScopeBase& qtscope, QObject *parent)
1945- : QObject(parent),
1946- qtapp_ready_(false),
1947- qtscope_impl_(&qtscope)
1948+QScopeBaseAPIImpl::QScopeBaseAPIImpl(QScopeBase& qtscope, QObject* parent)
1949+ : QObject(parent)
1950+ , qtapp_ready_(false)
1951+ , qtscope_impl_(&qtscope)
1952 {
1953 }
1954
1955-QScopeBaseAPIImpl::QScopeBaseAPIImpl(FactoryFunc const& creator, QObject *parent)
1956- : QObject(parent),
1957- qtapp_ready_(false),
1958- qtscope_impl_(nullptr),
1959- qtscope_creator_(creator)
1960+QScopeBaseAPIImpl::QScopeBaseAPIImpl(FactoryFunc const& creator, QObject* parent)
1961+ : QObject(parent)
1962+ , qtapp_ready_(false)
1963+ , qtscope_impl_(nullptr)
1964+ , qtscope_creator_(creator)
1965 {
1966 }
1967
1968@@ -109,7 +109,7 @@
1969 case Start:
1970 // create the client's scope in the
1971 // Qt main thread
1972- if(!qtscope_impl_)
1973+ if (!qtscope_impl_)
1974 {
1975 qtscope_impl_ = qtscope_creator_();
1976 assert(qtscope_impl_);
1977@@ -137,7 +137,7 @@
1978 // start the QT thread
1979 // TODO change to make_unique when using C++14
1980 qtthread_ = std::unique_ptr<std::thread>(new std::thread(&QScopeBaseAPIImpl::startQtThread, this));
1981- while(!qtapp_ready_)
1982+ while (!qtapp_ready_)
1983 {
1984 std::chrono::milliseconds dura(10);
1985 std::this_thread::sleep_for(dura);
1986@@ -160,7 +160,9 @@
1987 sc::PreviewQueryBase::UPtr QScopeBaseAPIImpl::preview(const sc::Result& result, const sc::ActionMetadata& metadata)
1988 {
1989 // Boilerplate construction of Preview
1990- return sc::PreviewQueryBase::UPtr(new QPreviewQueryBaseAPI(qtapp_, *qtscope_impl_, result, metadata));
1991+ QPreviewQueryBaseAPI * preview_api = new QPreviewQueryBaseAPI(qtapp_, *qtscope_impl_, result, metadata);
1992+ preview_api->init();
1993+ return sc::PreviewQueryBase::UPtr(preview_api);
1994 }
1995
1996 /**
1997@@ -169,7 +171,9 @@
1998 sc::SearchQueryBase::UPtr QScopeBaseAPIImpl::search(sc::CannedQuery const& query, sc::SearchMetadata const& metadata)
1999 {
2000 // Boilerplate construction of Query
2001- return sc::SearchQueryBase::UPtr(new QSearchQueryBaseAPI(qtapp_, *qtscope_impl_, query, metadata));
2002+ QSearchQueryBaseAPI* query_api = new QSearchQueryBaseAPI(qtapp_, *qtscope_impl_, query, metadata);
2003+ query_api->init();
2004+ return sc::SearchQueryBase::UPtr(query_api);
2005 }
2006
2007 void QScopeBaseAPIImpl::startQtThread()
2008@@ -179,7 +183,7 @@
2009 int argc = 0;
2010 char* argv = NULL;
2011 qtapp_ = std::make_shared<QCoreApplication>(argc, &argv);
2012- qtapp_ready_=true;
2013+ qtapp_ready_ = true;
2014 qtapp_->exec();
2015 // delete QtCoreApplication in the same thread it was created
2016 qtapp_.reset();
2017
2018=== modified file 'src/scopes/qt/internal/QScopeVariant.cpp'
2019--- src/scopes/qt/internal/QScopeVariant.cpp 2015-01-26 15:25:30 +0000
2020+++ src/scopes/qt/internal/QScopeVariant.cpp 2015-02-27 03:34:05 +0000
2021@@ -17,7 +17,7 @@
2022 */
2023
2024 #include <unity/scopes/qt/internal/QScopeVariant.h>
2025-#include <unity/scopes/qt/QUtils.h>
2026+#include <unity/scopes/qt/internal/QUtils.h>
2027
2028 #include <unity/scopes/Variant.h>
2029
2030@@ -33,14 +33,14 @@
2031 //{
2032 //}
2033
2034-QScopeVariant::QScopeVariant(Variant* val) noexcept : QVariant(scopeVariantToQVariant(*val)), internal_variant_(val)
2035+QScopeVariant::QScopeVariant(Variant* val) noexcept : QVariant(variant_to_qvariant(*val)), internal_variant_(val)
2036 {
2037 }
2038
2039 QScopeVariant::~QScopeVariant() = default;
2040
2041 QScopeVariant::QScopeVariant(QScopeVariant const& other)
2042- : QVariant(scopeVariantToQVariant(*other.internal_variant_))
2043+ : QVariant(variant_to_qvariant(*other.internal_variant_))
2044 , internal_variant_(other.internal_variant_)
2045 {
2046 }
2047@@ -107,7 +107,7 @@
2048 QMapIterator<QString, QVariant> it(val);
2049 while (it.hasNext())
2050 {
2051- internal_val[it.key().toUtf8().data()] = qVariantToScopeVariant(it.value());
2052+ internal_val[it.key().toUtf8().data()] = qvariant_to_variant(it.value());
2053 }
2054 *internal_variant_ = internal_val;
2055 return *this;
2056@@ -115,7 +115,7 @@
2057
2058 QScopeVariant& QScopeVariant::operator=(QVariant const& val)
2059 {
2060- Variant internal_val = qVariantToScopeVariant(val);
2061+ Variant internal_val = qvariant_to_variant(val);
2062 *internal_variant_ = internal_val;
2063 return *this;
2064 }
2065@@ -128,6 +128,6 @@
2066
2067 void QScopeVariant::sync()
2068 {
2069- *internal_variant_ = qVariantToScopeVariant(*this);
2070+ *internal_variant_ = qvariant_to_variant(*this);
2071 }
2072 /// @endcond
2073
2074=== modified file 'src/scopes/qt/internal/QSearchMetadataImpl.cpp'
2075--- src/scopes/qt/internal/QSearchMetadataImpl.cpp 2015-01-26 15:25:30 +0000
2076+++ src/scopes/qt/internal/QSearchMetadataImpl.cpp 2015-02-27 03:34:05 +0000
2077@@ -18,8 +18,7 @@
2078
2079 #include <unity/scopes/qt/internal/QSearchMetadataImpl.h>
2080 #include <unity/scopes/qt/internal/QScopeVariant.h>
2081-
2082-#include <unity/scopes/qt/QUtils.h>
2083+#include <unity/scopes/qt/internal/QUtils.h>
2084
2085 #include <unity/scopes/SearchMetadata.h>
2086
2087@@ -81,18 +80,18 @@
2088
2089 bool QSearchMetadataImpl::has_location() const
2090 {
2091- return api_search_metadata_->cardinality();
2092+ return api_search_metadata_->has_location();
2093 }
2094
2095 void QSearchMetadataImpl::set_hint(QString const& key, QVariant const& value)
2096 {
2097- api_search_metadata_->set_hint(key.toUtf8().data(), qVariantToScopeVariant(value));
2098+ api_search_metadata_->set_hint(key.toUtf8().data(), qvariant_to_variant(value));
2099 }
2100
2101 QVariantMap QSearchMetadataImpl::hints() const
2102 {
2103 sync_values();
2104- return scopeVariantMapToQVariantMap(api_search_metadata_->hints());
2105+ return variantmap_to_qvariantmap(api_search_metadata_->hints());
2106 }
2107
2108 bool QSearchMetadataImpl::contains_hint(QString const& key) const
2109
2110=== renamed file 'src/scopes/qt/QUtils.cpp' => 'src/scopes/qt/internal/QUtils.cpp'
2111--- src/scopes/qt/QUtils.cpp 2015-01-20 13:59:36 +0000
2112+++ src/scopes/qt/internal/QUtils.cpp 2015-02-27 03:34:05 +0000
2113@@ -16,12 +16,17 @@
2114 * Authored by: Xavi Garcia <xavi.garcia.mena@canonical.com>
2115 */
2116
2117-#include <unity/scopes/qt/QUtils.h>
2118+#include <unity/scopes/qt/internal/QUtils.h>
2119+
2120+#include <unity/UnityExceptions.h>
2121+
2122+#include <cassert>
2123
2124 using namespace unity::scopes::qt;
2125+using namespace std;
2126
2127 namespace sc = unity::scopes;
2128-namespace qt = unity::scopes::qt;
2129+namespace qti = unity::scopes::qt::internal;
2130
2131 namespace unity
2132 {
2133@@ -32,7 +37,10 @@
2134 namespace qt
2135 {
2136
2137-QVariant scopeVariantToQVariant(sc::Variant const& variant)
2138+namespace internal
2139+{
2140+
2141+QVariant variant_to_qvariant(sc::Variant const& variant)
2142 {
2143 switch (variant.which())
2144 {
2145@@ -52,7 +60,7 @@
2146 QVariantMap result_dict;
2147 for (auto it = dict.begin(); it != dict.end(); ++it)
2148 {
2149- result_dict.insert(QString::fromStdString(it->first), qt::scopeVariantToQVariant(it->second));
2150+ result_dict.insert(QString::fromStdString(it->first), qti::variant_to_qvariant(it->second));
2151 }
2152 return result_dict;
2153 }
2154@@ -62,17 +70,19 @@
2155 QVariantList result_list;
2156 for (unsigned i = 0; i < arr.size(); i++)
2157 {
2158- result_list.append(qt::scopeVariantToQVariant(arr[i]));
2159+ result_list.append(qti::variant_to_qvariant(arr[i]));
2160 }
2161 return result_list;
2162 }
2163 default:
2164- qWarning("Unhandled Variant type");
2165+ {
2166+ assert(false); // LCOV_EXCL_LINE
2167 return QVariant();
2168+ }
2169 }
2170 }
2171
2172-sc::Variant qVariantToScopeVariant(QVariant const& variant)
2173+sc::Variant qvariant_to_variant(QVariant const& variant)
2174 {
2175 if (variant.isNull())
2176 {
2177@@ -95,7 +105,7 @@
2178 QVariantMap m(variant.toMap());
2179 for (auto it = m.begin(); it != m.end(); ++it)
2180 {
2181- vm[it.key().toStdString()] = qt::qVariantToScopeVariant(it.value());
2182+ vm[it.key().toStdString()] = qti::qvariant_to_variant(it.value());
2183 }
2184 return sc::Variant(vm);
2185 }
2186@@ -105,39 +115,44 @@
2187 sc::VariantArray arr;
2188 for (int i = 0; i < l.size(); i++)
2189 {
2190- arr.push_back(qt::qVariantToScopeVariant(l[i]));
2191+ arr.push_back(qti::qvariant_to_variant(l[i]));
2192 }
2193 return sc::Variant(arr);
2194 }
2195 default:
2196- qWarning("Unhandled QVariant type: %s", variant.typeName());
2197- return sc::Variant();
2198+ {
2199+ throw unity::InvalidArgumentException(string("qvariant_to_variant(): invalid source type: ") +
2200+ variant.typeName());
2201+ }
2202 }
2203 }
2204
2205-QVariantMap scopeVariantMapToQVariantMap(unity::scopes::VariantMap const& variant)
2206+QVariantMap variantmap_to_qvariantmap(unity::scopes::VariantMap const& variant)
2207 {
2208 QVariantMap ret_map;
2209 for (auto item : variant)
2210 {
2211- ret_map[QString::fromUtf8(item.first.c_str())] = qt::scopeVariantToQVariant(item.second);
2212+ ret_map[QString::fromUtf8(item.first.c_str())] = qti::variant_to_qvariant(item.second);
2213 }
2214
2215 return ret_map;
2216 }
2217
2218-VariantMap qVariantMapToScopeVariantMap(QVariantMap const& variant)
2219+VariantMap qvariantmap_to_variantmap(QVariantMap const& variant)
2220 {
2221 VariantMap ret_map;
2222 QMapIterator<QString, QVariant> it(variant);
2223 while (it.hasNext())
2224 {
2225- ret_map[it.key().toUtf8().data()] = qt::qVariantToScopeVariant(it.value());
2226+ it.next();
2227+ ret_map[it.key().toUtf8().data()] = qti::qvariant_to_variant(it.value());
2228 }
2229
2230 return ret_map;
2231 }
2232
2233+} // namespace internal
2234+
2235 } // namespace qt
2236
2237 } // namespace scopes
2238
2239=== modified file 'src/scopes/qt/internal/QVariantBuilderImpl.cpp'
2240--- src/scopes/qt/internal/QVariantBuilderImpl.cpp 2015-01-26 14:13:31 +0000
2241+++ src/scopes/qt/internal/QVariantBuilderImpl.cpp 2015-02-27 03:34:05 +0000
2242@@ -17,8 +17,7 @@
2243 */
2244
2245 #include <unity/scopes/qt/internal/QVariantBuilderImpl.h>
2246-
2247-#include <unity/scopes/qt/QUtils.h>
2248+#include <unity/scopes/qt/internal/QUtils.h>
2249
2250 #include <unity/scopes/VariantBuilder.h>
2251
2252@@ -32,11 +31,8 @@
2253 }
2254
2255 QVariantBuilderImpl::QVariantBuilderImpl(QVariantBuilderImpl const& other)
2256+ : api_builder_(new VariantBuilder(*(other.api_builder_)))
2257 {
2258- if (other.api_builder_ && &other != this)
2259- {
2260- api_builder_.reset(new VariantBuilder(*(other.api_builder_)));
2261- }
2262 }
2263
2264 void QVariantBuilderImpl::add_tuple(std::initializer_list<QPair<QString, QVariant>> const& tuple)
2265@@ -45,7 +41,7 @@
2266 for (auto item : tuple)
2267 {
2268 // convert every item to std...
2269- aux_vector.push_back(std::make_pair(item.first.toUtf8().data(), qVariantToScopeVariant(item.second)));
2270+ aux_vector.push_back(std::make_pair(item.first.toUtf8().data(), qvariant_to_variant(item.second)));
2271 }
2272 api_builder_->add_tuple(aux_vector);
2273 }
2274@@ -56,14 +52,14 @@
2275 for (auto item : tuple)
2276 {
2277 // convert every item to std...
2278- aux_vector.push_back(std::make_pair(item.first.toUtf8().data(), qVariantToScopeVariant(item.second)));
2279+ aux_vector.push_back(std::make_pair(item.first.toUtf8().data(), qvariant_to_variant(item.second)));
2280 }
2281 api_builder_->add_tuple(aux_vector);
2282 }
2283
2284 QVariant QVariantBuilderImpl::end()
2285 {
2286- return scopeVariantToQVariant(api_builder_->end());
2287+ return variant_to_qvariant(api_builder_->end());
2288 }
2289
2290 QVariantBuilder QVariantBuilderImpl::create(QVariantBuilderImpl* internal)
2291
2292=== modified file 'test/gtest/scopes/qt/CMakeLists.txt'
2293--- test/gtest/scopes/qt/CMakeLists.txt 2015-01-26 09:27:05 +0000
2294+++ test/gtest/scopes/qt/CMakeLists.txt 2015-02-27 03:34:05 +0000
2295@@ -1,4 +1,6 @@
2296
2297+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_ENABLE_QT_EXPERIMENTAL_")
2298+
2299 add_definitions(
2300 -DFAKE_SERVER="${CMAKE_CURRENT_SOURCE_DIR}/server/server.py"
2301 )
2302
2303=== modified file 'test/gtest/scopes/qt/JsonAsyncReader/JsonAsyncReader_test.cpp'
2304--- test/gtest/scopes/qt/JsonAsyncReader/JsonAsyncReader_test.cpp 2015-02-12 00:19:36 +0000
2305+++ test/gtest/scopes/qt/JsonAsyncReader/JsonAsyncReader_test.cpp 2015-02-27 03:34:05 +0000
2306@@ -1,5 +1,5 @@
2307 /*
2308- * Copyright (C) 2013 Canonical Ltd
2309+ * Copyright (C) 2014 Canonical Ltd
2310 *
2311 * This program is free software: you can redistribute it and/or modify
2312 * it under the terms of the GNU Lesser General Public License version 3 as
2313@@ -16,8 +16,6 @@
2314 * Authored by: Xavi Garcia <xavi.garcia.mena@canonical.com>
2315 */
2316
2317-// allow experimental headers
2318-#define _ENABLE_QT_EXPERIMENTAL_
2319
2320 #include <unity/scopes/qt/JsonAsyncReader.h>
2321 #include <unity/scopes/qt/JsonReader.h>
2322@@ -50,8 +48,6 @@
2323 std::string fake_server_host;
2324 };
2325
2326-// std::string fake_server_uri = getServerAddress();
2327-
2328 struct Client
2329 {
2330 public:
2331@@ -139,7 +135,6 @@
2332 }
2333 }
2334
2335-//
2336 TEST_F(ExceptionsTest, user_results_ok)
2337 {
2338 JsonReader reader;
2339
2340=== modified file 'test/gtest/scopes/qt/XmlAsyncReader/XmlAsyncReader_test.cpp'
2341--- test/gtest/scopes/qt/XmlAsyncReader/XmlAsyncReader_test.cpp 2015-02-12 00:19:36 +0000
2342+++ test/gtest/scopes/qt/XmlAsyncReader/XmlAsyncReader_test.cpp 2015-02-27 03:34:05 +0000
2343@@ -1,5 +1,5 @@
2344 /*
2345- * Copyright (C) 2013 Canonical Ltd
2346+ * Copyright (C) 2014 Canonical Ltd
2347 *
2348 * This program is free software: you can redistribute it and/or modify
2349 * it under the terms of the GNU Lesser General Public License version 3 as
2350@@ -16,9 +16,6 @@
2351 * Authored by: Xavi Garcia <xavi.garcia.mena@canonical.com>
2352 */
2353
2354-// allow experimental headers
2355-#define _ENABLE_QT_EXPERIMENTAL_
2356-
2357 #include <unity/scopes/qt/XmlAsyncReader.h>
2358 #include <unity/scopes/qt/XmlReader.h>
2359 #include <unity/scopes/ScopeExceptions.h>
2360
2361=== added file 'test/gtest/scopes/qt/qt-bindings/BasicEventsChecker.h'
2362--- test/gtest/scopes/qt/qt-bindings/BasicEventsChecker.h 1970-01-01 00:00:00 +0000
2363+++ test/gtest/scopes/qt/qt-bindings/BasicEventsChecker.h 2015-02-27 03:34:05 +0000
2364@@ -0,0 +1,129 @@
2365+/*
2366+ * Copyright (C) 2015 Canonical Ltd
2367+ *
2368+ * This program is free software: you can redistribute it and/or modify
2369+ * it under the terms of the GNU Lesser General Public License version 3 as
2370+ * published by the Free Software Foundation.
2371+ *
2372+ * This program is distributed in the hope that it will be useful,
2373+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
2374+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2375+ * GNU Lesser General Public License for more details.
2376+ *
2377+ * You should have received a copy of the GNU Lesser General Public License
2378+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
2379+ *
2380+ * Authored by: Xavi Garcia <xavi.garcia.mena@canonical.com>
2381+ */
2382+
2383+#pragma once
2384+
2385+#include <gtest/gtest.h>
2386+
2387+#include <QtCore/QMap>
2388+#include <QtCore/QEvent>
2389+#include <QtCore/QThread>
2390+
2391+#include <atomic>
2392+#include <chrono>
2393+#include <mutex>
2394+#include <thread>
2395+
2396+// Verifies that the events are received as expected and in the right thread
2397+class BasicEventsChecker
2398+{
2399+public:
2400+ BasicEventsChecker()
2401+ : wait_for_event_(-1)
2402+ , event_found_(false)
2403+ , thread_id_(nullptr)
2404+ {
2405+ }
2406+
2407+ virtual ~BasicEventsChecker() = default;
2408+
2409+ void set_thread_id(void* thread_id)
2410+ {
2411+ thread_id_ = thread_id;
2412+ }
2413+
2414+ bool check_event(QEvent* e)
2415+ {
2416+ std::unique_lock<std::mutex> lock(mutex_);
2417+ // This method is executed always in the Qt thread
2418+ int iEventType = static_cast<int>(e->type());
2419+ {
2420+ if (event_counter_map_.find(iEventType) == event_counter_map_.end())
2421+ {
2422+ event_counter_map_[iEventType] = 1;
2423+ }
2424+ else
2425+ {
2426+ event_counter_map_[iEventType]++;
2427+ }
2428+ }
2429+
2430+ // verify if we were actively waiting for an event
2431+ if (wait_for_event_ != -1)
2432+ {
2433+ if (wait_for_event_ == iEventType)
2434+ {
2435+ // we were waiting for this event
2436+ event_found_ = true;
2437+ }
2438+ EXPECT_EQ(wait_for_event_, iEventType);
2439+ }
2440+
2441+ // finally verify the thread
2442+ if (thread_id_)
2443+ {
2444+ EXPECT_EQ(thread_id_, QThread::currentThreadId());
2445+ }
2446+ return true;
2447+ }
2448+
2449+ int nb_event_calls(int event)
2450+ {
2451+ std::unique_lock<std::mutex> lock(mutex_);
2452+ if (event_counter_map_.find(event) == event_counter_map_.end())
2453+ {
2454+ return 0;
2455+ }
2456+ else
2457+ {
2458+ return event_counter_map_[event];
2459+ }
2460+ }
2461+
2462+ bool wait_for_event(int event, int timeout)
2463+ {
2464+ int INTERVAL_WAIT = 10;
2465+ std::chrono::milliseconds dura(INTERVAL_WAIT);
2466+ wait_for_event_ = event;
2467+ event_found_ = false;
2468+ while (!event_found_ && timeout > 0)
2469+ {
2470+ std::this_thread::sleep_for(dura);
2471+ timeout -= INTERVAL_WAIT;
2472+ }
2473+ if (event_found_)
2474+ {
2475+ // we received the expected event
2476+ wait_for_event_ = -1;
2477+ return true;
2478+ }
2479+ else
2480+ {
2481+ // timeout was reached
2482+ return false;
2483+ }
2484+ }
2485+
2486+ std::atomic<int> wait_for_event_;
2487+ std::atomic<bool> event_found_;
2488+ std::atomic<void*> thread_id_;
2489+
2490+ QMap<int, int> event_counter_map_;
2491+ // mutex to control the accesses to the map
2492+ std::mutex mutex_;
2493+};
2494
2495=== modified file 'test/gtest/scopes/qt/qt-bindings/CMakeLists.txt'
2496--- test/gtest/scopes/qt/qt-bindings/CMakeLists.txt 2015-01-29 13:18:29 +0000
2497+++ test/gtest/scopes/qt/qt-bindings/CMakeLists.txt 2015-02-27 03:34:05 +0000
2498@@ -149,6 +149,25 @@
2499 ###################################################
2500
2501 add_executable(
2502+ QUtils_test
2503+ QUtils_test.cpp)
2504+
2505+target_link_libraries(
2506+ QUtils_test
2507+ ${LIBGTEST}
2508+ ${TESTLIBS_QT}
2509+ ${TESTLIBS})
2510+
2511+find_package(Qt5Core REQUIRED)
2512+include_directories(${Qt5Core_INCLUDE_DIRS})
2513+
2514+qt5_use_modules(QUtils_test Core)
2515+
2516+add_test(QUtils QUtils_test)
2517+
2518+###################################################
2519+
2520+add_executable(
2521 QVariantBuilder_test
2522 QVariantBuilder_test.cpp)
2523
2524
2525=== modified file 'test/gtest/scopes/qt/qt-bindings/FakeScope.h'
2526--- test/gtest/scopes/qt/qt-bindings/FakeScope.h 2015-01-29 13:18:29 +0000
2527+++ test/gtest/scopes/qt/qt-bindings/FakeScope.h 2015-02-27 03:34:05 +0000
2528@@ -30,7 +30,7 @@
2529 class QQuery : public unity::scopes::qt::QSearchQueryBase
2530 {
2531 public:
2532- virtual void run(unity::scopes::qt::QSearchReplyProxy const& ) override
2533+ virtual void run(unity::scopes::qt::QSearchReplyProxy const&) override
2534 {
2535 std::cout << "QQuery::run()" << std::endl;
2536 }
2537@@ -44,7 +44,7 @@
2538 class QPreview : public unity::scopes::qt::QPreviewQueryBase
2539 {
2540 public:
2541- virtual void run(unity::scopes::qt::QPreviewReplyProxy const& ) override
2542+ virtual void run(unity::scopes::qt::QPreviewReplyProxy const&) override
2543 {
2544 std::cout << "QQuery::run()" << std::endl;
2545 }
2546@@ -58,7 +58,6 @@
2547 class QScope : public unity::scopes::qt::QScopeBase
2548 {
2549 public:
2550-
2551 virtual void start(QString const&) override
2552 {
2553 std::cout << "QScope::start()" << std::endl;
2554@@ -71,9 +70,8 @@
2555 }
2556
2557 virtual unity::scopes::qt::QSearchQueryBase::UPtr search(unity::scopes::CannedQuery const&,
2558- unity::scopes::SearchMetadata const&) override
2559+ unity::scopes::SearchMetadata const&) override
2560 {
2561 return unity::scopes::qt::QSearchQueryBase::UPtr(new QQuery());
2562 }
2563-
2564 };
2565
2566=== modified file 'test/gtest/scopes/qt/qt-bindings/QActionMetadata_test.cpp'
2567--- test/gtest/scopes/qt/qt-bindings/QActionMetadata_test.cpp 2015-01-26 09:27:05 +0000
2568+++ test/gtest/scopes/qt/qt-bindings/QActionMetadata_test.cpp 2015-02-27 03:34:05 +0000
2569@@ -24,7 +24,7 @@
2570
2571 TEST(QActionMetadata, bindings)
2572 {
2573- QActionMetadata *metadata = new QActionMetadata("en", "phone");
2574+ QActionMetadata* metadata = new QActionMetadata("en", "phone");
2575
2576 QVariant data(1999);
2577
2578@@ -50,7 +50,7 @@
2579
2580 (*metadata)["test_key3"] = QVariant("test_value3");
2581 QVariantMap map_hints = metadata->hints();
2582- EXPECT_EQ(map_hints.size(),3);
2583+ EXPECT_EQ(map_hints.size(), 3);
2584
2585 EXPECT_EQ(map_hints["test_key"].toString(), "test_value");
2586 EXPECT_EQ(map_hints["test_key2"].toString(), "test_value2");
2587@@ -67,7 +67,7 @@
2588 EXPECT_TRUE(metadata2["test_key2"].toString() == "test_value22");
2589
2590 map_hints = metadata2.hints();
2591- EXPECT_EQ(map_hints.size(),3);
2592+ EXPECT_EQ(map_hints.size(), 3);
2593
2594 EXPECT_EQ(map_hints["test_key"].toString(), "test_value");
2595 EXPECT_EQ(map_hints["test_key2"].toString(), "test_value22");
2596
2597=== modified file 'test/gtest/scopes/qt/qt-bindings/QCannedQuery_test.cpp'
2598--- test/gtest/scopes/qt/qt-bindings/QCannedQuery_test.cpp 2015-01-26 09:27:05 +0000
2599+++ test/gtest/scopes/qt/qt-bindings/QCannedQuery_test.cpp 2015-02-27 03:34:05 +0000
2600@@ -19,22 +19,23 @@
2601 #include <gtest/gtest.h>
2602
2603 #include <unity/scopes/qt/QCannedQuery.h>
2604-#include <unity/scopes/qt/QUtils.h>
2605 #include <unity/scopes/qt/internal/QCannedQueryImpl.h>
2606+#include <unity/scopes/qt/internal/QUtils.h>
2607
2608 #include <unity/scopes/CannedQuery.h>
2609 #include <unity/scopes/FilterState.h>
2610 #include <unity/scopes/OptionSelectorFilter.h>
2611
2612 using namespace unity::scopes::qt;
2613+using namespace unity::scopes::qt::internal;
2614
2615 TEST(QCannedQuery, bindings)
2616 {
2617- internal::QCannedQueryImpl *impl = new internal::QCannedQueryImpl("scopeA", "foo", "dep1");
2618+ internal::QCannedQueryImpl* impl = new internal::QCannedQueryImpl("scopeA", "foo", "dep1");
2619 QCannedQuery query = internal::QCannedQueryImpl::create(impl);
2620
2621 // get the internal api query
2622- unity::scopes::CannedQuery * api_query = impl->get_api_query();
2623+ unity::scopes::CannedQuery* api_query = impl->get_api_query();
2624
2625 // start checking that the internal class has the right attributes
2626 EXPECT_EQ(api_query->scope_id(), "scopeA");
2627@@ -42,11 +43,15 @@
2628 EXPECT_EQ(api_query->department_id(), "dep1");
2629 EXPECT_EQ(api_query->to_uri(), query.to_uri().toStdString());
2630
2631+ EXPECT_EQ("scopeA", query.scope_id());
2632+ EXPECT_EQ("foo", query.query_string());
2633+ EXPECT_EQ("dep1", query.department_id());
2634+
2635 unity::scopes::VariantMap api_map = api_query->serialize();
2636 QVariantMap qt_map = query.serialize();
2637 EXPECT_EQ(api_map.size(), qt_map.size());
2638 EXPECT_TRUE(qt_map.size() != 0);
2639- EXPECT_EQ(scopeVariantMapToQVariantMap(api_map), qt_map);
2640+ EXPECT_EQ(variantmap_to_qvariantmap(api_map), qt_map);
2641
2642 unity::scopes::FilterState fstate;
2643 {
2644@@ -59,11 +64,18 @@
2645 // filters is {"f1":["o1"]}
2646 EXPECT_EQ("scope://scopeA?q=foo&dep=dep1&filters=%7B%22f1%22%3A%5B%22o1%22%5D%7D%0A", query.to_uri());
2647 EXPECT_EQ("scope://scopeA?q=foo&dep=dep1&filters=%7B%22f1%22%3A%5B%22o1%22%5D%7D%0A", api_query->to_uri());
2648+ auto fs = query.filter_state();
2649+ EXPECT_TRUE(fs.has_filter("f1"));
2650+
2651+ auto q = QCannedQuery::from_uri("scope://scopeX?q=bar&dep=dep2&filters=%7B%22f1%22%3A%5B%22o1%22%5D%7D%0A");
2652+ EXPECT_EQ("scopeX", q.scope_id());
2653+ EXPECT_EQ("bar", q.query_string());
2654+ EXPECT_EQ("dep2", q.department_id());
2655
2656 // build a query with the normal qt interface
2657 // and check that it has the same data
2658 QCannedQuery query2("scopeA", "foo", "dep1");
2659- EXPECT_EQ(scopeVariantMapToQVariantMap(api_map), query2.serialize());
2660+ EXPECT_EQ(variantmap_to_qvariantmap(api_map), query2.serialize());
2661
2662 // change a value using the qt interface
2663 query.set_department_id("new_department");
2664@@ -71,6 +83,18 @@
2665 // check that the value is the same in the internal instance
2666 EXPECT_EQ(api_query->department_id(), "new_department");
2667 EXPECT_EQ(api_query->query_string(), "new_query");
2668- EXPECT_EQ(scopeVariantMapToQVariantMap(api_query->serialize()), query.serialize());
2669-
2670+ EXPECT_EQ(variantmap_to_qvariantmap(api_query->serialize()), query.serialize());
2671+}
2672+
2673+TEST(QCannedQuery, construct_assign)
2674+{
2675+ QCannedQuery q("scope_id");
2676+ EXPECT_EQ("scope_id", q.scope_id());
2677+
2678+ QCannedQuery q2(q);
2679+ EXPECT_EQ("scope_id", q2.scope_id());
2680+
2681+ QCannedQuery q3("blah");
2682+ q3 = q2;
2683+ EXPECT_EQ("scope_id", q3.scope_id());
2684 }
2685
2686=== modified file 'test/gtest/scopes/qt/qt-bindings/QCategorisedResult_test.cpp'
2687--- test/gtest/scopes/qt/qt-bindings/QCategorisedResult_test.cpp 2015-01-26 09:27:05 +0000
2688+++ test/gtest/scopes/qt/qt-bindings/QCategorisedResult_test.cpp 2015-02-27 03:34:05 +0000
2689@@ -21,6 +21,7 @@
2690 #include <unity/scopes/qt/QCategorisedResult.h>
2691 #include <unity/scopes/qt/QCategory.h>
2692
2693+#include <unity/scopes/qt/internal/QCategorisedResultImpl.h>
2694 #include <unity/scopes/qt/internal/QCategoryImpl.h>
2695
2696 #include <unity/scopes/Category.h>
2697@@ -34,11 +35,11 @@
2698 class QCategorisedResult_test
2699 {
2700 public:
2701- static std::shared_ptr<QCategory> createCategory()
2702+ static std::shared_ptr<QCategory> create_category(std::string const& id)
2703 {
2704 CategoryRegistry reg;
2705 CategoryRenderer rdr;
2706- auto cat = reg.register_category("1", "title", "icon", nullptr, rdr);
2707+ auto cat = reg.register_category(id, "title", "icon", nullptr, rdr);
2708
2709 return unity::scopes::qt::internal::QCategoryImpl::create(cat);
2710 }
2711@@ -46,12 +47,12 @@
2712
2713 TEST(QCategorisedResult, bindings)
2714 {
2715- std::shared_ptr<QCategory const> qCategory = QCategorisedResult_test::createCategory();
2716+ std::shared_ptr<QCategory const> qCategory = QCategorisedResult_test::create_category("1");
2717
2718 QCategorisedResult result(qCategory);
2719
2720 result.set_uri("test_uri");
2721- EXPECT_EQ(result.uri(),"test_uri");
2722+ EXPECT_EQ(result.uri(), "test_uri");
2723
2724 // test the [] operator
2725 EXPECT_EQ(result["uri"].toString(), "test_uri");
2726@@ -64,8 +65,16 @@
2727 EXPECT_EQ(result.category()->id(), qCategory->id());
2728 EXPECT_EQ(result.category()->title(), qCategory->title());
2729 EXPECT_EQ(result.category()->icon(), qCategory->icon());
2730+ EXPECT_EQ(result.category()->query(), qCategory->query());
2731+ EXPECT_EQ(result.category()->renderer_template(), qCategory->renderer_template());
2732 EXPECT_EQ(result.category()->serialize(), qCategory->serialize());
2733
2734+ // change category and check
2735+ auto c2 = QCategorisedResult_test::create_category("2");
2736+ result.set_category(c2);
2737+ EXPECT_EQ("2", result.category()->id());
2738+ result.set_category(qCategory);
2739+ EXPECT_EQ("1", result.category()->id());
2740
2741 // check the copy
2742 result["test_attr"] = "test_value3";
2743@@ -75,7 +84,7 @@
2744 EXPECT_EQ(result2.category()->icon(), qCategory->icon());
2745 EXPECT_EQ(result2.category()->serialize(), qCategory->serialize());
2746 EXPECT_EQ(result2["test_attr"], "test_value3");
2747- EXPECT_EQ(result2.uri(),"test_uri");
2748+ EXPECT_EQ(result2.uri(), "test_uri");
2749
2750 result = result2;
2751 EXPECT_EQ(result.category()->id(), qCategory->id());
2752@@ -83,5 +92,17 @@
2753 EXPECT_EQ(result.category()->icon(), qCategory->icon());
2754 EXPECT_EQ(result.category()->serialize(), qCategory->serialize());
2755 EXPECT_EQ(result["test_attr"], "test_value3");
2756- EXPECT_EQ(result.uri(),"test_uri");
2757+ EXPECT_EQ(result.uri(), "test_uri");
2758+
2759+ {
2760+ // Impl assignment coverage
2761+ std::shared_ptr<QCategory const> cat1 = QCategorisedResult_test::create_category("1");
2762+ unity::scopes::qt::internal::QCategorisedResultImpl ri1(cat1);
2763+
2764+ std::shared_ptr<QCategory const> cat2 = QCategorisedResult_test::create_category("2");
2765+ unity::scopes::qt::internal::QCategorisedResultImpl ri2(cat2);
2766+
2767+ ri1 = ri2;
2768+ EXPECT_EQ("2", ri1.category()->id());
2769+ }
2770 }
2771
2772=== modified file 'test/gtest/scopes/qt/qt-bindings/QColumnLayout_test.cpp'
2773--- test/gtest/scopes/qt/qt-bindings/QColumnLayout_test.cpp 2015-01-26 09:27:05 +0000
2774+++ test/gtest/scopes/qt/qt-bindings/QColumnLayout_test.cpp 2015-02-27 03:34:05 +0000
2775@@ -19,37 +19,40 @@
2776 #include <gtest/gtest.h>
2777
2778 #include <unity/scopes/qt/QColumnLayout.h>
2779-#include <unity/scopes/qt/QUtils.h>
2780 #include <unity/scopes/qt/internal/QColumnLayoutImpl.h>
2781+#include <unity/scopes/qt/internal/QUtils.h>
2782
2783 #include <unity/scopes/ColumnLayout.h>
2784
2785 #include <iostream>
2786
2787 using namespace unity::scopes::qt;
2788+using namespace unity::scopes::qt::internal;
2789
2790 TEST(QColumnLayout, bindings)
2791 {
2792- internal::QColumnLayoutImpl *impl = new internal::QColumnLayoutImpl(2);
2793+ internal::QColumnLayoutImpl* impl = new internal::QColumnLayoutImpl(2);
2794 QColumnLayout layout = internal::QColumnLayoutImpl::create(impl);
2795+ EXPECT_EQ(0, layout.size());
2796
2797 // get the internal api layout
2798- unity::scopes::ColumnLayout * api_layout = impl->get_api();
2799+ unity::scopes::ColumnLayout* api_layout = impl->get_api();
2800
2801 // start checking that the internal class has the right attributes
2802 EXPECT_EQ(api_layout->number_of_columns(), 2);
2803 EXPECT_EQ(api_layout->number_of_columns(), layout.number_of_columns());
2804
2805- QVector<QString> qt_widget_ids {"widget1", "widget2"};
2806- QVector<QString> qt_widget_ids2 {"widget3", "widget4"};
2807+ QVector<QString> qt_widget_ids{"widget1", "widget2"};
2808+ QVector<QString> qt_widget_ids2{"widget3", "widget4"};
2809 layout.add_column(qt_widget_ids);
2810 layout.add_column(qt_widget_ids2);
2811+ EXPECT_EQ(2, layout.size());
2812 QVector<QString> retrieved_widget_ids = layout.column(0);
2813
2814 std::vector<std::string> api_widgets = api_layout->column(0);
2815 EXPECT_EQ(api_widgets.size(), retrieved_widget_ids.size());
2816 EXPECT_TRUE(api_widgets.size() != 0);
2817- for(uint i = 0; i < api_widgets.size(); ++i)
2818+ for (uint i = 0; i < api_widgets.size(); ++i)
2819 {
2820 EXPECT_EQ(api_widgets[i], retrieved_widget_ids[i].toStdString());
2821 }
2822@@ -58,15 +61,41 @@
2823 api_widgets = api_layout->column(1);
2824 EXPECT_EQ(api_widgets.size(), retrieved_widget_ids.size());
2825 EXPECT_TRUE(api_widgets.size() != 0);
2826- for(uint i = 0; i < api_widgets.size(); ++i)
2827+ for (uint i = 0; i < api_widgets.size(); ++i)
2828 {
2829 EXPECT_EQ(api_widgets[i], retrieved_widget_ids[i].toStdString());
2830 }
2831
2832- EXPECT_EQ(scopeVariantMapToQVariantMap(api_layout->serialize()), layout.serialize());
2833+ EXPECT_EQ(variantmap_to_qvariantmap(api_layout->serialize()), layout.serialize());
2834
2835 QColumnLayout layout2(2);
2836 layout2.add_column(qt_widget_ids);
2837 layout2.add_column(qt_widget_ids2);
2838- EXPECT_EQ(scopeVariantMapToQVariantMap(api_layout->serialize()), layout2.serialize());
2839+ EXPECT_EQ(variantmap_to_qvariantmap(api_layout->serialize()), layout2.serialize());
2840+
2841+ {
2842+ // Coverage for copy constructor and assignment operator
2843+ QColumnLayout l2(layout);
2844+ EXPECT_EQ(2, l2.size());
2845+
2846+ l2 = l2;
2847+ EXPECT_EQ(2, l2.size());
2848+
2849+ QColumnLayout l3(2);
2850+ l3 = layout;
2851+ EXPECT_EQ(2, l3.size());
2852+ }
2853+
2854+ {
2855+ // Coverage for impl copy constructor and assignment operator
2856+ internal::QColumnLayoutImpl i2(*impl);
2857+ EXPECT_EQ(2, i2.size());
2858+
2859+ i2 = i2;
2860+ EXPECT_EQ(2, i2.size());
2861+
2862+ internal::QColumnLayoutImpl i3(2);
2863+ i3 = *impl;
2864+ EXPECT_EQ(2, i3.size());
2865+ }
2866 }
2867
2868=== modified file 'test/gtest/scopes/qt/qt-bindings/QDepartment_test.cpp'
2869--- test/gtest/scopes/qt/qt-bindings/QDepartment_test.cpp 2015-01-26 09:27:05 +0000
2870+++ test/gtest/scopes/qt/qt-bindings/QDepartment_test.cpp 2015-02-27 03:34:05 +0000
2871@@ -20,14 +20,15 @@
2872
2873 #include <unity/scopes/qt/QCannedQuery.h>
2874 #include <unity/scopes/qt/QDepartment.h>
2875-#include <unity/scopes/qt/QUtils.h>
2876 #include <unity/scopes/qt/internal/QDepartmentImpl.h>
2877+#include <unity/scopes/qt/internal/QUtils.h>
2878
2879 #include <unity/scopes/Department.h>
2880
2881 #include <iostream>
2882
2883 using namespace unity::scopes::qt;
2884+using namespace unity::scopes::qt::internal;
2885
2886 TEST(QDepartment, bindings)
2887 {
2888@@ -35,11 +36,18 @@
2889 QCannedQuery query2("scopeA", "foo2", "dep2");
2890 QCannedQuery query3("scopeA", "foo3", "dep3");
2891
2892- internal::QDepartmentImpl *impl = new internal::QDepartmentImpl(query, "label");
2893+ internal::QDepartmentImpl* impl = new internal::QDepartmentImpl(query, "label");
2894 QDepartment dep = internal::QDepartmentImpl::create(impl);
2895+ EXPECT_EQ("label", dep.label());
2896+ EXPECT_EQ("foo", dep.query().query_string());
2897+ EXPECT_FALSE(dep.has_subdepartments());
2898+ dep.set_has_subdepartments(false);
2899+ EXPECT_FALSE(dep.has_subdepartments());
2900+ dep.set_has_subdepartments(true);
2901+ EXPECT_TRUE(dep.has_subdepartments());
2902
2903 // get the internal api layout
2904- unity::scopes::Department * api_dep = impl->get_api();
2905+ unity::scopes::Department* api_dep = impl->get_api();
2906
2907 dep.set_alternate_label("alternate_label");
2908 EXPECT_EQ(api_dep->alternate_label(), dep.alternate_label().toStdString());
2909@@ -47,7 +55,7 @@
2910
2911 // add subdepartments
2912 std::shared_ptr<QDepartment const> dep2(QDepartment::create(query2, "label2"));
2913- std::shared_ptr<QDepartment const> dep3(QDepartment::create(query2, "label2"));
2914+ std::shared_ptr<QDepartment const> dep3(QDepartment::create(query2, "label3"));
2915 dep.add_subdepartment(dep2);
2916 dep.add_subdepartment(dep3);
2917
2918@@ -58,22 +66,60 @@
2919 EXPECT_EQ(qt_list.size(), api_list.size());
2920
2921 std::vector<std::string> dep_ids;
2922- for(auto item: api_list)
2923+ for (auto item : api_list)
2924 {
2925 dep_ids.push_back(item->id());
2926 }
2927
2928 std::vector<std::string> qt_dep_ids;
2929- QListIterator<QSharedPointer<QDepartment const>> it(qt_list);
2930- while(it.hasNext())
2931+ QListIterator<std::shared_ptr<QDepartment const>> it(qt_list);
2932+ while (it.hasNext())
2933 {
2934 qt_dep_ids.push_back(it.next()->id().toStdString());
2935 }
2936
2937- for(uint i=0; i < qt_dep_ids.size(); ++i)
2938+ for (uint i = 0; i < qt_dep_ids.size(); ++i)
2939 {
2940 EXPECT_EQ(qt_dep_ids[i], dep_ids[i]);
2941 }
2942
2943- EXPECT_EQ(scopeVariantMapToQVariantMap(api_dep->serialize()), dep.serialize());
2944+ EXPECT_EQ(variantmap_to_qvariantmap(api_dep->serialize()), dep.serialize());
2945+
2946+ // TODO: need coverage for set_subdepartments() once we work out the correct
2947+ // typedef for QDepartmentList.
2948+
2949+ std::shared_ptr<QDepartment const> dep4(QDepartment::create(query2, "label4"));
2950+ std::shared_ptr<QDepartment const> dep5(QDepartment::create(query2, "label5"));
2951+ QDepartmentList l;
2952+ l.append(dep4);
2953+ l.append(dep5);
2954+ dep.set_subdepartments(l);
2955+ auto l2 = dep.subdepartments();
2956+ ASSERT_EQ(2, l2.size());
2957+ it = l2;
2958+ auto d = it.next();
2959+ EXPECT_EQ("label4", d->label());
2960+ d = it.next();
2961+ EXPECT_EQ("label5", d->label());
2962+}
2963+
2964+TEST(QDepartment, construct_assign)
2965+{
2966+ QCannedQuery query("scopeA", "foo", "dep1");
2967+ internal::QDepartmentImpl* impl = new internal::QDepartmentImpl(query, "label");
2968+ QDepartment dep = internal::QDepartmentImpl::create(impl);
2969+
2970+ QDepartment dep2(dep);
2971+ EXPECT_EQ("label", dep2.label());
2972+
2973+ internal::QDepartmentImpl* impl3 = new internal::QDepartmentImpl(query, "label3");
2974+ QDepartment dep3 = internal::QDepartmentImpl::create(impl3);
2975+ EXPECT_EQ("label3", dep3.label());
2976+
2977+ dep3 = dep2;
2978+ EXPECT_EQ("label", dep3.label());
2979+
2980+ auto dep4 = QDepartment::create("id", query, "l");
2981+ EXPECT_EQ("id", dep4->id());
2982+ EXPECT_EQ("l", dep4->label());
2983 }
2984
2985=== modified file 'test/gtest/scopes/qt/qt-bindings/QEventTypeMatcher.h'
2986--- test/gtest/scopes/qt/qt-bindings/QEventTypeMatcher.h 2015-01-28 14:25:39 +0000
2987+++ test/gtest/scopes/qt/qt-bindings/QEventTypeMatcher.h 2015-02-27 03:34:05 +0000
2988@@ -24,34 +24,37 @@
2989 // class to match QEvent *
2990 // It verifies that the event has the expected type and that
2991 // it's been called in the expected thread
2992-class QEventTypeMatcher : public testing::MatcherInterface<QEvent *>
2993+class QEventTypeMatcher : public testing::MatcherInterface<QEvent*>
2994 {
2995 public:
2996- QEventTypeMatcher(int type_to_check, void *thread_id)
2997- : type_to_check_(type_to_check), thread_id_(thread_id)
2998+ QEventTypeMatcher(int type_to_check, void* thread_id)
2999+ : type_to_check_(type_to_check)
3000+ , thread_id_(thread_id)
3001 {
3002 }
3003
3004- virtual bool MatchAndExplain(QEvent * e, testing::MatchResultListener*) const
3005+ virtual bool MatchAndExplain(QEvent* e, testing::MatchResultListener*) const
3006 {
3007 std::cout << "Type is: " << e->type() << std::endl;
3008 std::cout << "Thread id when matching is: " << QThread::currentThreadId() << std::endl;
3009 bool sameThread = true;
3010- if(thread_id_)
3011+ if (thread_id_)
3012 {
3013 sameThread = thread_id_ == QThread::currentThreadId();
3014 }
3015 return ((e->type() == type_to_check_ || e->type() < 1000) && sameThread);
3016 }
3017
3018- virtual void DescribeTo(::std::ostream* os) const {
3019+ virtual void DescribeTo(::std::ostream* os) const
3020+ {
3021 *os << "is an event of type " << type_to_check_;
3022 }
3023
3024- virtual void DescribeNegationTo(::std::ostream* os) const {
3025+ virtual void DescribeNegationTo(::std::ostream* os) const
3026+ {
3027 *os << "is NOT an event of type " << type_to_check_;
3028 }
3029
3030 int type_to_check_;
3031- void *thread_id_;
3032+ void* thread_id_;
3033 };
3034
3035=== modified file 'test/gtest/scopes/qt/qt-bindings/QMockScope.h'
3036--- test/gtest/scopes/qt/qt-bindings/QMockScope.h 2015-01-28 14:25:39 +0000
3037+++ test/gtest/scopes/qt/qt-bindings/QMockScope.h 2015-02-27 03:34:05 +0000
3038@@ -28,11 +28,10 @@
3039 {
3040 public:
3041 QScopeMock()
3042- : QScope(),
3043- qt_thread(nullptr)
3044- {};
3045+ : QScope()
3046+ , qt_thread(nullptr){};
3047
3048- void setQtThread(QThread *thread)
3049+ void setQtThread(QThread* thread)
3050 {
3051 qt_thread = thread;
3052 }
3053@@ -42,17 +41,17 @@
3054 virtual unity::scopes::qt::QPreviewQueryBase::UPtr preview(const unity::scopes::qt::QResult&,
3055 const unity::scopes::qt::QActionMetadata&) override
3056 {
3057- EXPECT_EQ(QThread::currentThread(),qt_thread);
3058+ EXPECT_EQ(QThread::currentThread(), qt_thread);
3059 return unity::scopes::qt::QPreviewQueryBase::UPtr(new QPreview());
3060 }
3061
3062 virtual unity::scopes::qt::QSearchQueryBase::UPtr search(unity::scopes::CannedQuery const&,
3063- unity::scopes::SearchMetadata const&) override
3064+ unity::scopes::SearchMetadata const&) override
3065 {
3066- EXPECT_EQ(QThread::currentThread(),qt_thread);
3067+ EXPECT_EQ(QThread::currentThread(), qt_thread);
3068 return unity::scopes::qt::QSearchQueryBase::UPtr(new QQuery());
3069 }
3070
3071 protected:
3072- QThread *qt_thread;
3073+ QThread* qt_thread;
3074 };
3075
3076=== modified file 'test/gtest/scopes/qt/qt-bindings/QPreviewQueryBaseAPI_test.cpp'
3077--- test/gtest/scopes/qt/qt-bindings/QPreviewQueryBaseAPI_test.cpp 2015-01-26 09:27:05 +0000
3078+++ test/gtest/scopes/qt/qt-bindings/QPreviewQueryBaseAPI_test.cpp 2015-02-27 03:34:05 +0000
3079@@ -19,6 +19,7 @@
3080 #include <gtest/gtest.h>
3081 #include <gmock/gmock.h>
3082
3083+#include "BasicEventsChecker.h"
3084 #include "TestSetup.h"
3085 #include "FakeScope.h"
3086 #include "QEventTypeMatcher.h"
3087@@ -28,33 +29,55 @@
3088 #include <unity/scopes/internal/ResultImpl.h>
3089 #include <unity/scopes/ActionMetadata.h>
3090
3091-
3092 #include <chrono>
3093
3094 using namespace testing;
3095
3096 using namespace unity::scopes::qt;
3097
3098-class QPreviewQueryBaseAPIMock : public QPreviewQueryBaseAPI
3099+// For type numbers refer to QSearchQueryBaseAPI.cpp
3100+const int INITIALIZE_EVENT = 1000;
3101+const int RUN_EVENT = 1001;
3102+const int CANCEL_EVENT = 1002;
3103+
3104+// in milliseconds
3105+// 5 seconds should be more than enough
3106+// If we don't receive an event in 5 seconds something
3107+// is going very wrong.
3108+const int DEFAULT_TIME_TO_WAIT = 5000;
3109+
3110+namespace unity
3111+{
3112+
3113+namespace scopes
3114+{
3115+
3116+namespace qt
3117+{
3118+
3119+namespace tests
3120+{
3121+class QPreviewQueryBaseAPIMock : public QPreviewQueryBaseAPI, public BasicEventsChecker
3122 {
3123 public:
3124 QPreviewQueryBaseAPIMock(std::shared_ptr<QCoreApplication> qtapp,
3125- QScopeBase& qtscope,
3126- unity::scopes::Result const& result,
3127- unity::scopes::ActionMetadata const& metadata,
3128- QObject *parent=0)
3129- : QPreviewQueryBaseAPI(qtapp,qtscope,result, metadata,parent)
3130+ QScopeBase& qtscope,
3131+ unity::scopes::Result const& result,
3132+ unity::scopes::ActionMetadata const& metadata,
3133+ QObject* parent = nullptr)
3134+ : QPreviewQueryBaseAPI(qtapp, qtscope, result, metadata, parent)
3135+ , BasicEventsChecker()
3136 {
3137 }
3138
3139 virtual ~QPreviewQueryBaseAPIMock() = default;
3140
3141- void callCancel()
3142+ void call_cancel()
3143 {
3144 cancelled();
3145 }
3146
3147- void callRun()
3148+ void call_run()
3149 {
3150 unity::scopes::PreviewReplyProxy reply;
3151 // call with a null reply, as we are not going to use it
3152@@ -62,33 +85,60 @@
3153 run(reply);
3154 }
3155
3156- // mock event method
3157- MOCK_METHOD1(event, bool(QEvent*));
3158+ void call_init()
3159+ {
3160+ init();
3161+ }
3162+
3163+ // override the method to implement the checks
3164+ bool event(QEvent* e) override
3165+ {
3166+ return this->check_event(e);
3167+ }
3168 };
3169
3170-// For type numbers refer to QSearchQueryBaseAPI.cpp
3171-Matcher<QEvent *> CheckCancelledEventType(void *thread_id)
3172-{
3173- return MakeMatcher(new QEventTypeMatcher(1002, thread_id));
3174-}
3175-
3176-// For type numbers refer to QSearchQueryBaseAPI.cpp
3177-Matcher<QEvent *> CheckInitializeEventType(void *thread_id)
3178-{
3179- return MakeMatcher(new QEventTypeMatcher(1000, thread_id));
3180-}
3181-
3182-// For type numbers refer to QSearchQueryBaseAPI.cpp
3183-Matcher<QEvent *> CheckRunEventType(void *thread_id)
3184-{
3185- return MakeMatcher(new QEventTypeMatcher(1001, thread_id));
3186+} // namespace tests
3187+
3188+} // namespace qt
3189+
3190+} // namespace scopes
3191+
3192+} // namespace unity
3193+
3194+using namespace unity::scopes::qt::tests;
3195+
3196+// For type numbers refer to QSearchQueryBaseAPI.cpp
3197+Matcher<QEvent*> CheckCancelledEventType(void* thread_id)
3198+{
3199+ return MakeMatcher(new QEventTypeMatcher(CANCEL_EVENT, thread_id));
3200+}
3201+
3202+// For type numbers refer to QSearchQueryBaseAPI.cpp
3203+Matcher<QEvent*> CheckInitializeEventType(void* thread_id)
3204+{
3205+ return MakeMatcher(new QEventTypeMatcher(INITIALIZE_EVENT, thread_id));
3206+}
3207+
3208+// For type numbers refer to QSearchQueryBaseAPI.cpp
3209+Matcher<QEvent*> CheckRunEventType(void* thread_id)
3210+{
3211+ return MakeMatcher(new QEventTypeMatcher(RUN_EVENT, thread_id));
3212+}
3213+
3214+void verify_event(QPreviewQueryBaseAPIMock& api_query, int event, int timeout)
3215+{
3216+ if(!api_query.nb_event_calls(event))
3217+ {
3218+ api_query.wait_for_event(event, timeout);
3219+ EXPECT_EQ(1, api_query.nb_event_calls(event));
3220+ }
3221 }
3222
3223 TEST_F(TestSetup, bindings)
3224 {
3225 QScope scope;
3226
3227- unity::scopes::internal::ResultImpl *resultImpl = new unity::scopes::internal::ResultImpl();
3228+ unity::scopes::internal::ResultImpl* resultImpl = new unity::scopes::internal::ResultImpl();
3229 resultImpl->set_uri("test_uri");
3230
3231 unity::scopes::Result result = unity::scopes::internal::ResultImpl::create_result(resultImpl->serialize());
3232@@ -96,22 +146,29 @@
3233 unity::scopes::CannedQuery query("scopeA", "query", "department");
3234 unity::scopes::ActionMetadata metadata("en", "phone");
3235
3236- //construct the QSearchQueryBaseAPIMock
3237+ // construct the QSearchQueryBaseAPIMock
3238 QPreviewQueryBaseAPIMock api_query(qtapp_, scope, result, metadata);
3239-
3240- // give some time to process the events posted in the constructor
3241- std::chrono::milliseconds dura(500);
3242- std::this_thread::sleep_for( dura );
3243-
3244- // verify that the event method is called for cancel event and
3245- // from the same thread id (The Qt thread)
3246- EXPECT_CALL(api_query, event(CheckCancelledEventType(thread_id_))).Times(Exactly(1));
3247- api_query.callCancel();
3248-
3249- // verify that the event method is called for cancel event and
3250- // from the same thread id (The Qt thread)
3251- EXPECT_CALL(api_query, event(CheckRunEventType(thread_id_))).Times(Exactly(1));
3252- api_query.callRun();
3253-
3254- std::this_thread::sleep_for(dura);
3255+ api_query.set_thread_id(thread_id_);
3256+
3257+ EXPECT_EQ(0, api_query.nb_event_calls(INITIALIZE_EVENT));
3258+ api_query.call_init();
3259+ verify_event(api_query, INITIALIZE_EVENT, DEFAULT_TIME_TO_WAIT);
3260+
3261+ // verify run event.
3262+ EXPECT_EQ(0, api_query.nb_event_calls(RUN_EVENT));
3263+ api_query.call_run();
3264+ verify_event(api_query, RUN_EVENT, DEFAULT_TIME_TO_WAIT);
3265+
3266+ // verify cancel
3267+ EXPECT_EQ(0, api_query.nb_event_calls(CANCEL_EVENT));
3268+ api_query.call_cancel();
3269+ verify_event(api_query, CANCEL_EVENT, DEFAULT_TIME_TO_WAIT);
3270+
3271+ // final verification
3272+ EXPECT_EQ(1, api_query.nb_event_calls(INITIALIZE_EVENT));
3273+ EXPECT_EQ(1, api_query.nb_event_calls(RUN_EVENT));
3274+ EXPECT_EQ(1, api_query.nb_event_calls(CANCEL_EVENT));
3275+
3276+ // Now we can exit without any sleep as we know that no other event
3277+ // is going to be sent
3278 }
3279
3280=== modified file 'test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIImpl_test.cpp'
3281--- test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIImpl_test.cpp 2015-01-28 14:25:39 +0000
3282+++ test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIImpl_test.cpp 2015-02-27 03:34:05 +0000
3283@@ -37,23 +37,22 @@
3284 {
3285 QScopeMock scope;
3286
3287- //construct the QSearchQueryBaseAPIMock
3288+ // construct the QSearchQueryBaseAPIMock
3289 QScopeBaseAPIMock api_scope(scope);
3290
3291 // verify that the event method is called for start event
3292 EXPECT_CALL(scope, start(_)).Times(Exactly(1));
3293 api_scope.start("test_scope");
3294
3295- QThread *qt_thread = api_scope.getQtAppThread();
3296+ QThread* qt_thread = api_scope.getQtAppThread();
3297 scope.setQtThread(qt_thread);
3298
3299- auto CheckThread =
3300- [qt_thread]() -> void
3301- {
3302- EXPECT_EQ(qt_thread, QThread::currentThread());
3303- };
3304+ auto CheckThread = [qt_thread]() -> void
3305+ {
3306+ EXPECT_EQ(qt_thread, QThread::currentThread());
3307+ };
3308
3309- unity::scopes::internal::ResultImpl *resultImpl = new unity::scopes::internal::ResultImpl();
3310+ unity::scopes::internal::ResultImpl* resultImpl = new unity::scopes::internal::ResultImpl();
3311 resultImpl->set_uri("test_uri");
3312
3313 unity::scopes::Result result = unity::scopes::internal::ResultImpl::create_result(resultImpl->serialize());
3314@@ -65,5 +64,4 @@
3315 // that the thread is the Qt thread
3316 EXPECT_CALL(scope, stop()).Times(Exactly(1)).WillOnce(Invoke(CheckThread));
3317 api_scope.stop();
3318-
3319 }
3320
3321=== modified file 'test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIMock.h'
3322--- test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIMock.h 2015-01-28 14:25:39 +0000
3323+++ test/gtest/scopes/qt/qt-bindings/QScopeBaseAPIMock.h 2015-02-27 03:34:05 +0000
3324@@ -29,14 +29,14 @@
3325 class QScopeBaseAPIMock : public unity::scopes::qt::internal::QScopeBaseAPIImpl
3326 {
3327 public:
3328- QScopeBaseAPIMock(unity::scopes::qt::QScopeBase& qtscope, QObject *parent=0)
3329- : unity::scopes::qt::internal::QScopeBaseAPIImpl(qtscope, parent)
3330+ QScopeBaseAPIMock(unity::scopes::qt::QScopeBase& qtscope, QObject* parent = 0)
3331+ : unity::scopes::qt::internal::QScopeBaseAPIImpl(qtscope, parent)
3332 {
3333 }
3334
3335 virtual ~QScopeBaseAPIMock() = default;
3336
3337- QThread *getQtAppThread()
3338+ QThread* getQtAppThread()
3339 {
3340 return qtapp_->thread();
3341 }
3342
3343=== modified file 'test/gtest/scopes/qt/qt-bindings/QScopeCreation_test.cpp'
3344--- test/gtest/scopes/qt/qt-bindings/QScopeCreation_test.cpp 2015-01-29 13:20:00 +0000
3345+++ test/gtest/scopes/qt/qt-bindings/QScopeCreation_test.cpp 2015-02-27 03:34:05 +0000
3346@@ -20,9 +20,9 @@
3347 #include <gtest/gtest.h>
3348
3349 #include <unity/scopes/qt/QScopeBaseAPI.h>
3350-#include <unity/scopes/qt/QUtils.h>
3351
3352 #include <unity/scopes/qt/internal/QScopeBaseAPIImpl.h>
3353+#include <unity/scopes/qt/internal/QUtils.h>
3354
3355 #include <QtCore/QThread>
3356 #include <QtCore/QCoreApplication>
3357@@ -34,7 +34,7 @@
3358 using namespace unity::scopes::qt;
3359 using namespace unity::scopes;
3360
3361-QThread * qt_thread = nullptr;
3362+QThread* qt_thread = nullptr;
3363
3364 // variable to control when the user's scope
3365 // has been created
3366@@ -43,18 +43,18 @@
3367 class QScopeBaseAPIImplTest : public QScopeBaseAPIImpl
3368 {
3369 public:
3370- QScopeBaseAPIImplTest(FactoryFunc const& creator, QObject *parent=0)
3371+ QScopeBaseAPIImplTest(FactoryFunc const& creator, QObject* parent = 0)
3372 : QScopeBaseAPIImpl(creator, parent)
3373 {
3374 }
3375
3376- QThread * getQtAppThread()
3377+ QThread* getQtAppThread()
3378 {
3379 return qtapp_->thread();
3380 }
3381 };
3382
3383-QScopeBase * create_my_scope()
3384+QScopeBase* create_my_scope()
3385 {
3386 // get the current thread for further use
3387 qt_thread = QThread::currentThread();
3388@@ -74,9 +74,9 @@
3389 // As the scope is created in the Qt event loop
3390 // we have to wait until the event has been processed
3391 std::chrono::milliseconds dura(10);
3392- while(!scope_created)
3393+ while (!scope_created)
3394 {
3395- std::this_thread::sleep_for( dura );
3396+ std::this_thread::sleep_for(dura);
3397 }
3398
3399 // check that the thread of the qt app is the
3400
3401=== modified file 'test/gtest/scopes/qt/qt-bindings/QSearchMetadata_test.cpp'
3402--- test/gtest/scopes/qt/qt-bindings/QSearchMetadata_test.cpp 2015-01-26 09:27:05 +0000
3403+++ test/gtest/scopes/qt/qt-bindings/QSearchMetadata_test.cpp 2015-02-27 03:34:05 +0000
3404@@ -24,7 +24,7 @@
3405
3406 TEST(QActionMetadata, bindings)
3407 {
3408- QSearchMetadata *metadata = new QSearchMetadata("en", "phone");
3409+ QSearchMetadata* metadata = new QSearchMetadata("en", "phone");
3410
3411 QVariant data(1999);
3412
3413@@ -40,7 +40,7 @@
3414
3415 (*metadata)["test_key3"] = QVariant("test_value3");
3416 QVariantMap map_hints = metadata->hints();
3417- EXPECT_EQ(map_hints.size(),3);
3418+ EXPECT_EQ(map_hints.size(), 3);
3419
3420 EXPECT_EQ(map_hints["test_key"].toString(), "test_value");
3421 EXPECT_EQ(map_hints["test_key2"].toString(), "test_value2");
3422@@ -58,7 +58,7 @@
3423 EXPECT_TRUE(metadata2["test_key2"].toString() == "test_value22");
3424
3425 map_hints = metadata2.hints();
3426- EXPECT_EQ(map_hints.size(),3);
3427+ EXPECT_EQ(map_hints.size(), 3);
3428
3429 EXPECT_EQ(map_hints["test_key"].toString(), "test_value");
3430 EXPECT_EQ(map_hints["test_key2"].toString(), "test_value22");
3431
3432=== modified file 'test/gtest/scopes/qt/qt-bindings/QSearchQueryBaseAPI_test.cpp'
3433--- test/gtest/scopes/qt/qt-bindings/QSearchQueryBaseAPI_test.cpp 2015-01-26 09:27:05 +0000
3434+++ test/gtest/scopes/qt/qt-bindings/QSearchQueryBaseAPI_test.cpp 2015-02-27 03:34:05 +0000
3435@@ -19,39 +19,62 @@
3436 #include <gtest/gtest.h>
3437 #include <gmock/gmock.h>
3438
3439+#include "BasicEventsChecker.h"
3440 #include "TestSetup.h"
3441 #include "FakeScope.h"
3442 #include "QEventTypeMatcher.h"
3443
3444 #include <unity/scopes/qt/QSearchQueryBaseAPI.h>
3445
3446-
3447 #include <chrono>
3448
3449 using namespace testing;
3450
3451 using namespace unity::scopes::qt;
3452
3453-class QSearchQueryBaseAPIMock : public QSearchQueryBaseAPI
3454+// For type numbers refer to QSearchQueryBaseAPI.cpp
3455+const int INITIALIZE_EVENT = 1000;
3456+const int RUN_EVENT = 1001;
3457+const int CANCEL_EVENT = 1002;
3458+
3459+// in milliseconds
3460+// 5 seconds should be more than enough
3461+// If we don't receive an event in 5 seconds something
3462+// is going very wrong.
3463+const int DEFAULT_TIME_TO_WAIT = 5000;
3464+
3465+namespace unity
3466+{
3467+
3468+namespace scopes
3469+{
3470+
3471+namespace qt
3472+{
3473+
3474+namespace tests
3475+{
3476+
3477+class QSearchQueryBaseAPIMock : public QSearchQueryBaseAPI, public BasicEventsChecker
3478 {
3479 public:
3480 QSearchQueryBaseAPIMock(std::shared_ptr<QCoreApplication> qtapp,
3481 QScopeBase& qtscope,
3482 unity::scopes::CannedQuery const& query,
3483 unity::scopes::SearchMetadata const& metadata,
3484- QObject *parent=0)
3485- : QSearchQueryBaseAPI(qtapp,qtscope,query, metadata,parent)
3486+ QObject* parent = 0)
3487+ : QSearchQueryBaseAPI(qtapp, qtscope, query, metadata, parent)
3488 {
3489 }
3490
3491 virtual ~QSearchQueryBaseAPIMock() = default;
3492
3493- void callCancel()
3494+ void call_cancel()
3495 {
3496 cancelled();
3497 }
3498
3499- void callRun()
3500+ void call_run()
3501 {
3502 unity::scopes::SearchReplyProxy reply;
3503 // call with a null reply, as we are not going to use it
3504@@ -59,50 +82,84 @@
3505 run(reply);
3506 }
3507
3508- // mock event method
3509- MOCK_METHOD1(event, bool(QEvent*));
3510+ void call_init()
3511+ {
3512+ init();
3513+ }
3514+
3515+ // override the method to implement the checks
3516+ bool event(QEvent* e) override
3517+ {
3518+ return this->check_event(e);
3519+ }
3520 };
3521
3522+} // namespace tests
3523+
3524+} // namespace qt
3525+
3526+} // namespace scopes
3527+
3528+} // namespace unity
3529+
3530+using namespace unity::scopes::qt::tests;
3531+
3532 // For type numbers refer to QSearchQueryBaseAPI.cpp
3533-Matcher<QEvent *> CheckCancelledEventType(void *thread_id)
3534+Matcher<QEvent*> CheckCancelledEventType(void* thread_id)
3535 {
3536 return MakeMatcher(new QEventTypeMatcher(1002, thread_id));
3537 }
3538
3539 // For type numbers refer to QSearchQueryBaseAPI.cpp
3540-Matcher<QEvent *> CheckInitializeEventType(void *thread_id)
3541+Matcher<QEvent*> CheckInitializeEventType(void* thread_id)
3542 {
3543 return MakeMatcher(new QEventTypeMatcher(1000, thread_id));
3544 }
3545
3546 // For type numbers refer to QSearchQueryBaseAPI.cpp
3547-Matcher<QEvent *> CheckRunEventType(void *thread_id)
3548+Matcher<QEvent*> CheckRunEventType(void* thread_id)
3549 {
3550 return MakeMatcher(new QEventTypeMatcher(1001, thread_id));
3551 }
3552
3553+void verify_event(QSearchQueryBaseAPIMock& api_query, int event, int timeout)
3554+{
3555+ if(!api_query.nb_event_calls(event))
3556+ {
3557+ api_query.wait_for_event(event, timeout);
3558+ EXPECT_EQ(1, api_query.nb_event_calls(event));
3559+ }
3560+}
3561+
3562 TEST_F(TestSetup, bindings)
3563 {
3564 QScope scope;
3565 unity::scopes::CannedQuery query("scopeA", "query", "department");
3566 unity::scopes::SearchMetadata metadata("en", "phone");
3567
3568- //construct the QSearchQueryBaseAPIMock
3569+ // construct the QSearchQueryBaseAPIMock
3570 QSearchQueryBaseAPIMock api_query(qtapp_, scope, query, metadata);
3571-
3572- // give some time to process the events posted in the constructor
3573- std::chrono::milliseconds dura(500);
3574- std::this_thread::sleep_for( dura );
3575-
3576- // verify that the event method is called for cancel event and
3577- // from the same thread id (The Qt thread)
3578- EXPECT_CALL(api_query, event(CheckCancelledEventType(thread_id_))).Times(Exactly(1));
3579- api_query.callCancel();
3580-
3581- // verify that the event method is called for cancel event and
3582- // from the same thread id (The Qt thread)
3583- EXPECT_CALL(api_query, event(CheckRunEventType(thread_id_))).Times(Exactly(1));
3584- api_query.callRun();
3585-
3586- std::this_thread::sleep_for(dura);
3587+ api_query.set_thread_id(thread_id_);
3588+
3589+ EXPECT_EQ(0, api_query.nb_event_calls(INITIALIZE_EVENT));
3590+ api_query.call_init();
3591+ verify_event(api_query, INITIALIZE_EVENT, DEFAULT_TIME_TO_WAIT);
3592+
3593+ // verify run event.
3594+ EXPECT_EQ(0, api_query.nb_event_calls(RUN_EVENT));
3595+ api_query.call_run();
3596+ verify_event(api_query, RUN_EVENT, DEFAULT_TIME_TO_WAIT);
3597+
3598+ // verify cancel
3599+ EXPECT_EQ(0, api_query.nb_event_calls(CANCEL_EVENT));
3600+ api_query.call_cancel();
3601+ verify_event(api_query, CANCEL_EVENT, DEFAULT_TIME_TO_WAIT);
3602+
3603+ // final verification
3604+ EXPECT_EQ(1, api_query.nb_event_calls(INITIALIZE_EVENT));
3605+ EXPECT_EQ(1, api_query.nb_event_calls(RUN_EVENT));
3606+ EXPECT_EQ(1, api_query.nb_event_calls(CANCEL_EVENT));
3607+
3608+ // Now we can exit without any sleep as we know that no other event
3609+ // is going to be sent
3610 }
3611
3612=== added file 'test/gtest/scopes/qt/qt-bindings/QUtils_test.cpp'
3613--- test/gtest/scopes/qt/qt-bindings/QUtils_test.cpp 1970-01-01 00:00:00 +0000
3614+++ test/gtest/scopes/qt/qt-bindings/QUtils_test.cpp 2015-02-27 03:34:05 +0000
3615@@ -0,0 +1,167 @@
3616+/*
3617+ * Copyright (C) 2015 Canonical Ltd
3618+ *
3619+ * This program is free software: you can redistribute it and/or modify
3620+ * it under the terms of the GNU Lesser General Public License version 3 as
3621+ * published by the Free Software Foundation.
3622+ *
3623+ * This program is distributed in the hope that it will be useful,
3624+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
3625+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3626+ * GNU Lesser General Public License for more details.
3627+ *
3628+ * You should have received a copy of the GNU Lesser General Public License
3629+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
3630+ *
3631+ * Authored by: Michi Henning <michi.henning@canonical.com>
3632+ */
3633+
3634+#include <gtest/gtest.h>
3635+
3636+#include <unity/scopes/qt/internal/QUtils.h>
3637+
3638+#include <unity/UnityExceptions.h>
3639+
3640+using namespace unity::scopes::qt::internal;
3641+using namespace unity::scopes;
3642+
3643+TEST(QUtils, variant_to_qvariant)
3644+{
3645+ {
3646+ Variant v;
3647+ QVariant qv = variant_to_qvariant(v);
3648+ EXPECT_FALSE(qv.isValid());
3649+ }
3650+
3651+ {
3652+ Variant v(42);
3653+ QVariant qv = variant_to_qvariant(v);
3654+ EXPECT_EQ(42, qv.toInt());
3655+ }
3656+
3657+ {
3658+ Variant v(true);
3659+ QVariant qv = variant_to_qvariant(v);
3660+ EXPECT_TRUE(qv.toBool());
3661+ }
3662+
3663+ {
3664+ Variant v("Hello");
3665+ QVariant qv = variant_to_qvariant(v);
3666+ EXPECT_EQ("Hello", qv.toString());
3667+ }
3668+
3669+ {
3670+ Variant v(3.14);
3671+ QVariant qv = variant_to_qvariant(v);
3672+ EXPECT_EQ(3.14, qv.toDouble());
3673+ }
3674+
3675+ {
3676+ VariantMap vm;
3677+ vm["key"] = "val";
3678+ Variant v(vm);
3679+ QVariant qv = variant_to_qvariant(v);
3680+ EXPECT_EQ("val", qv.toMap().value("key").toString());
3681+ }
3682+
3683+ {
3684+ VariantArray va;
3685+ va.push_back(Variant(42));
3686+ va.push_back(Variant("Hello"));
3687+ Variant v(va);
3688+ QVariant qv = variant_to_qvariant(v);
3689+ ASSERT_EQ(2, qv.toList().size());
3690+ EXPECT_EQ(42, qv.toList().at(0).toInt());
3691+ EXPECT_EQ("Hello", qv.toList().at(1).toString());
3692+ }
3693+}
3694+
3695+TEST(QUtils, qvariant_to_variant)
3696+{
3697+ {
3698+ QVariant qv;
3699+ Variant v = qvariant_to_variant(qv);
3700+ EXPECT_TRUE(v.is_null());
3701+ }
3702+
3703+ {
3704+ QVariant qv(true);
3705+ Variant v = qvariant_to_variant(qv);
3706+ EXPECT_TRUE(v.get_bool());
3707+ }
3708+
3709+ {
3710+ QVariant qv(42);
3711+ Variant v = qvariant_to_variant(qv);
3712+ EXPECT_EQ(42, v.get_int());
3713+ }
3714+
3715+ {
3716+ QVariant qv(3.14);
3717+ Variant v = qvariant_to_variant(qv);
3718+ EXPECT_EQ(3.14, v.get_double());
3719+ }
3720+
3721+ {
3722+ QVariant qv("sss");
3723+ Variant v = qvariant_to_variant(qv);
3724+ EXPECT_EQ("sss", v.get_string());
3725+ }
3726+
3727+ {
3728+ QVariantMap qvm;
3729+ qvm["key"] = QVariant("val");
3730+ Variant v = qvariant_to_variant(QVariant(qvm));
3731+ EXPECT_EQ("val", v.get_dict()["key"].get_string());
3732+ }
3733+
3734+ {
3735+ QVariantList qvl;
3736+ qvl.push_back(QVariant(3.14));
3737+ Variant v = qvariant_to_variant(QVariant(qvl));
3738+ EXPECT_EQ(3.14, v.get_array()[0].get_double());
3739+ }
3740+
3741+ {
3742+ QVariant qv(QChar('a'));
3743+ try
3744+ {
3745+ Variant v = qvariant_to_variant(qv);
3746+ FAIL();
3747+ }
3748+ catch (unity::InvalidArgumentException const& e)
3749+ {
3750+ EXPECT_STREQ("unity::InvalidArgumentException: qvariant_to_variant(): invalid source type: QChar",
3751+ e.what());
3752+ }
3753+ catch (std::exception const& e)
3754+ {
3755+ FAIL() << e.what();
3756+ }
3757+ }
3758+}
3759+
3760+TEST(QUtils, variantmap_to_qvariantmap)
3761+{
3762+ VariantMap vm;
3763+ vm["int"] = 42;
3764+ vm["string"] = "Hello";
3765+
3766+ QVariantMap qvm = variantmap_to_qvariantmap(vm);
3767+ ASSERT_EQ(2, qvm.count());
3768+ EXPECT_EQ(42, qvm.value("int").toInt());
3769+ EXPECT_EQ("Hello", qvm.value("string").toString());
3770+}
3771+
3772+TEST(QUtils, qvariantmap_to_variantmap)
3773+{
3774+ QVariantMap qvm;
3775+ qvm["int"] = 42;
3776+ qvm["string"] = "Hello";
3777+
3778+ VariantMap vm = qvariantmap_to_variantmap(qvm);
3779+ ASSERT_EQ(2, vm.size());
3780+ EXPECT_EQ(42, vm["int"].get_int());
3781+ EXPECT_EQ("Hello", vm["string"].get_string());
3782+}
3783
3784=== modified file 'test/gtest/scopes/qt/qt-bindings/QVariantBuilder_test.cpp'
3785--- test/gtest/scopes/qt/qt-bindings/QVariantBuilder_test.cpp 2015-01-26 09:27:05 +0000
3786+++ test/gtest/scopes/qt/qt-bindings/QVariantBuilder_test.cpp 2015-02-27 03:34:05 +0000
3787@@ -19,22 +19,47 @@
3788 #include <gtest/gtest.h>
3789
3790 #include <unity/scopes/qt/QVariantBuilder.h>
3791-#include <unity/scopes/qt/QUtils.h>
3792-
3793 #include <unity/scopes/qt/internal/QVariantBuilderImpl.h>
3794+#include <unity/scopes/qt/internal/QUtils.h>
3795
3796 #include <unity/scopes/VariantBuilder.h>
3797-
3798-#include <iostream>
3799+#include <unity/UnityExceptions.h>
3800
3801 using namespace unity::scopes::qt::internal;
3802 using namespace unity::scopes::qt;
3803 using namespace unity::scopes;
3804
3805+TEST(QVariantBuilder, constructors)
3806+{
3807+ QVariantBuilder b;
3808+ b.add_tuple({{"int", QVariant(5)}});
3809+ QVariantBuilder b2(b);
3810+ auto v = b.end();
3811+ auto v2 = b2.end();
3812+ EXPECT_EQ(5, v.toList().at(0).toMap().value("int").toInt());
3813+ EXPECT_EQ(v, v2);
3814+}
3815+
3816+TEST(QVariantBuilder, assignment)
3817+{
3818+ QVector<QPair<QString, QVariant>> vec;
3819+ QPair<QString, QVariant> p{"int", QVariant(5)};
3820+ vec.push_back({"int", QVariant(5)});
3821+ QVariantBuilder b;
3822+ b.add_tuple(vec);
3823+ QVariantBuilder b2;
3824+ b2 = b;
3825+ auto v = b.end();
3826+ auto v2 = b2.end();
3827+ EXPECT_EQ(5, v.toList().at(0).toMap().value("int").toInt());
3828+ EXPECT_EQ(v, v2);
3829+}
3830+
3831 TEST(QVariantBuilder, bindings)
3832 {
3833- QVariantBuilderImpl *impl = new QVariantBuilderImpl();
3834+ QVariantBuilderImpl* impl = new QVariantBuilderImpl();
3835 QVariantBuilder builder = QVariantBuilderImpl::create(impl);
3836+ EXPECT_NE(nullptr, impl->get_api());
3837
3838 builder.add_tuple({{"value", QVariant("attribute 1")}});
3839 builder.add_tuple({{"value", QVariant("attribute 2")}});
3840@@ -48,6 +73,19 @@
3841 Variant val3 = builder3.end();
3842
3843 // check that the result using the Qt inter
3844- EXPECT_EQ(scopeVariantToQVariant(val3), val);
3845- EXPECT_EQ(val3, qVariantToScopeVariant(val));
3846+ EXPECT_EQ(variant_to_qvariant(val3), val);
3847+ EXPECT_EQ(val3, qvariant_to_variant(val));
3848+}
3849+
3850+TEST(QVariantBuilder, exceptions)
3851+{
3852+ QVariantBuilder b;
3853+ try
3854+ {
3855+ b.end();
3856+ }
3857+ catch (unity::LogicException const& e)
3858+ {
3859+ EXPECT_STREQ("unity::LogicException: VariantBuilder::end(): no Variant has been constructed", e.what());
3860+ }
3861 }
3862
3863=== modified file 'test/gtest/scopes/qt/qt-bindings/TestSetup.h'
3864--- test/gtest/scopes/qt/qt-bindings/TestSetup.h 2015-01-26 09:27:05 +0000
3865+++ test/gtest/scopes/qt/qt-bindings/TestSetup.h 2015-02-27 03:34:05 +0000
3866@@ -31,7 +31,9 @@
3867 class TestSetup : public testing::Test
3868 {
3869 public:
3870- TestSetup() : qtapp_(nullptr), thread_id_(nullptr)
3871+ TestSetup()
3872+ : qtapp_(nullptr)
3873+ , thread_id_(nullptr)
3874 {
3875 }
3876
3877@@ -44,40 +46,39 @@
3878 {
3879 std::cout << "SetUp()" << std::endl;
3880 qtthread_ = std::unique_ptr<std::thread>(new std::thread(&TestSetup::startQtThread, this));
3881- while(!thread_id_)
3882+ while (!thread_id_)
3883 {
3884 std::chrono::milliseconds dura(10);
3885 std::this_thread::sleep_for(dura);
3886 }
3887 }
3888
3889- virtual void TearDown()
3890- {
3891- std::cout << "TearDown()" << std::endl;
3892- if(qtapp_)
3893- {
3894- std::cout << "Stopping qt application" << std::endl;
3895- qtapp_->quit();
3896- }
3897- qtthread_->join();
3898- }
3899-
3900+ virtual void TearDown()
3901+ {
3902+ std::cout << "TearDown()" << std::endl;
3903+ if (qtapp_)
3904+ {
3905+ std::cout << "Stopping qt application" << std::endl;
3906+ qtapp_->quit();
3907+ }
3908+ qtthread_->join();
3909+ }
3910
3911 void startQtThread()
3912 {
3913- std::cout << "Starting qt application" << std::endl;
3914- int argc = 0;
3915- char* argv = NULL;
3916- qtapp_ = std::make_shared<QCoreApplication>(argc, &argv);
3917- std::cout << "Thread id is: " << QThread::currentThreadId() << std::endl;
3918- thread_id_ = QThread::currentThreadId();
3919- qtapp_->exec();
3920- std::cout << "Application finished" << std::endl;
3921- // Destroy the QCoreApplication from the same thread
3922- qtapp_.reset();
3923+ std::cout << "Starting qt application" << std::endl;
3924+ int argc = 0;
3925+ char* argv = NULL;
3926+ qtapp_ = std::make_shared<QCoreApplication>(argc, &argv);
3927+ std::cout << "Thread id is: " << QThread::currentThreadId() << std::endl;
3928+ thread_id_ = QThread::currentThreadId();
3929+ qtapp_->exec();
3930+ std::cout << "Application finished" << std::endl;
3931+ // Destroy the QCoreApplication from the same thread
3932+ qtapp_.reset();
3933 }
3934
3935 std::shared_ptr<QCoreApplication> qtapp_;
3936 std::unique_ptr<std::thread> qtthread_;
3937- std::atomic<void *> thread_id_;
3938+ std::atomic<void*> thread_id_;
3939 };
3940
3941=== modified file 'test/headers/compile_headers.py'
3942--- test/headers/compile_headers.py 2015-02-05 11:31:30 +0000
3943+++ test/headers/compile_headers.py 2015-02-27 03:34:05 +0000
3944@@ -83,8 +83,7 @@
3945
3946 # add the experimental flags at the beginning of the temporary file
3947 for flag in experimental_flags:
3948- if flag in open(hdr_dir + "/" + hdr, encoding='utf-8').read():
3949- src.write(bytes("#define " + flag + "" + "\n", 'UTF-8'))
3950+ src.write(bytes("#define " + flag + "" + "\n", 'UTF-8'))
3951
3952 src.write(bytes("#include <" + hdr + ">" + "\n", 'UTF-8'))
3953 src.flush() # Need this to make the file visible
3954
3955=== modified file 'tools/symbol_diff.in'
3956--- tools/symbol_diff.in 2014-10-17 01:59:06 +0000
3957+++ tools/symbol_diff.in 2015-02-27 03:34:05 +0000
3958@@ -18,13 +18,11 @@
3959 # Authored by: Michi Henning <michi.henning@canonical.com>
3960 #
3961
3962+import os
3963 import re
3964 import subprocess
3965
3966-OLD_FILE = './debian/lib@UNITY_SCOPES_LIB@@UNITY_SCOPES_SOVERSION@.symbols'
3967-NEW_FILE = './debian/lib@UNITY_SCOPES_LIB@@UNITY_SCOPES_SOVERSION@/DEBIAN/symbols'
3968-
3969-def run():
3970+def compare_syms(old_file, new_file):
3971 # Following the first line, lines in the original symbol file look
3972 # like this (note leading single space in each line):
3973 #
3974@@ -46,14 +44,14 @@
3975 old_regex = re.compile(r'^ (\(.*\))"(.*)" (.*)$')
3976
3977 old_syms = {} # Dictionary containing symbol -> ( tag, version )
3978- with open(OLD_FILE, encoding='utf=8') as file:
3979+ with open(old_file, encoding='utf=8') as file:
3980 file.readline() # Skip first line, which is the library name and version
3981 for line in file:
3982 mo = old_regex.match(line)
3983 if mo:
3984 old_syms[mo.group(2)] = ( mo.group(1), mo.group(3) )
3985 else:
3986- raise Exception('Invalid input line in ' + OLD_FILE + ': ' + line)
3987+ raise Exception('Invalid input line in ' + old_file + ': ' + line)
3988
3989 # Following the first line, lines in the symbol file created by dpkg-buildpkg look
3990 # like this (note leading single whitespace in each line):
3991@@ -74,30 +72,50 @@
3992
3993 # Run the new symbols file through "c++filt | sort | uniq". We need
3994 # the sort | uniq because, otherwise, we end up with duplicate demangled symbols.
3995- with open(NEW_FILE) as infile, open('new_symbols', 'w') as outfile:
3996- p = subprocess.Popen(['c++filt | sort | uniq'], shell=True, stdin=infile, stdout=subprocess.PIPE)
3997+ try:
3998+ with open(new_file) as infile, open('new_symbols', 'w') as outfile:
3999+ p = subprocess.Popen(['c++filt | sort | uniq'], shell=True, stdin=infile, stdout=subprocess.PIPE)
4000
4001- # For each symbol, if it is in the old dictionary, output the tags from the original
4002- # symbol file, followed by the symbol and version. Otherwise, use "(c++)" as the tag
4003- # and add " 0replaceme", so the new symbol will be accepted.
4004- line = p.stdout.readline().decode('utf-8')
4005- outfile.write(line) # Write library name and version
4006- for line in p.stdout:
4007- mo = new_regex.match(line.decode('utf-8'))
4008- if (mo):
4009- sym = mo.group(1)
4010- try:
4011- tag, version = old_syms[sym]
4012- except KeyError:
4013- tag = '(c++)'
4014- version = '0replaceme'
4015- outfile.write(' {}"{}" {}\n'.format(tag, sym, version))
4016- else:
4017- raise Exception('Cannot parse demangled line: ' + line)
4018+ # For each symbol, if it is in the old dictionary, output the tags from the original
4019+ # symbol file, followed by the symbol and version. Otherwise, use "(c++)" as the tag
4020+ # and add " 0replaceme", so the new symbol will be accepted.
4021+ line = p.stdout.readline().decode('utf-8')
4022+ outfile.write(line) # Write library name and version
4023+ for line in p.stdout:
4024+ mo = new_regex.match(line.decode('utf-8'))
4025+ if (mo):
4026+ sym = mo.group(1)
4027+ try:
4028+ tag, version = old_syms[sym]
4029+ except KeyError:
4030+ tag = '(c++)'
4031+ version = '0replaceme'
4032+ outfile.write(' {}"{}" {}\n'.format(tag, sym, version))
4033+ else:
4034+ raise Exception('Cannot parse demangled line: ' + line.decode("utf-8"))
4035+ except FileNotFoundError:
4036+ # One or more of the new files may not exist. dpkg-buildpackage
4037+ # leaves a symbol file behind only if it found a difference.
4038+ return
4039
4040 # Write the diff into /tmp/symbols.diff
4041- with open('/tmp/symbols.diff', 'w') as outfile:
4042- subprocess.call(['diff', '-u', OLD_FILE, 'new_symbols'], stdout=outfile)
4043+ with open('/tmp/symbols.diff', 'a') as outfile:
4044+ subprocess.call(['diff', '-u', old_file, 'new_symbols'], stdout=outfile)
4045+
4046+FILES = [
4047+ ('./debian/lib@UNITY_SCOPES_LIB@@UNITY_SCOPES_SOVERSION@.symbols',
4048+ './debian/lib@UNITY_SCOPES_LIB@@UNITY_SCOPES_SOVERSION@/DEBIAN/symbols'),
4049+ ('./debian/libunity-scopes-qt.symbols',
4050+ './debian/libunity-scopes-qt/DEBIAN/symbols')
4051+ ]
4052+
4053+def run():
4054+ try:
4055+ os.unlink('/tmp/symbols.diff')
4056+ except FileNotFoundError:
4057+ pass
4058+ for old_file, new_file in FILES:
4059+ compare_syms(old_file, new_file)
4060
4061 if __name__ == '__main__':
4062 run()

Subscribers

People subscribed via source and target branches

to all changes: