Changeset View
Changeset View
Standalone View
Standalone View
libs/textlayout/tests/MockRootAreaProvider.cpp
Show All 15 Lines | |||||
16 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 16 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
17 | * Boston, MA 02110-1301, USA. | 17 | * Boston, MA 02110-1301, USA. | ||
18 | */ | 18 | */ | ||
19 | 19 | | |||
20 | #include "MockRootAreaProvider.h" | 20 | #include "MockRootAreaProvider.h" | ||
21 | 21 | | |||
22 | #include "KoTextLayoutRootArea.h" | 22 | #include "KoTextLayoutRootArea.h" | ||
23 | 23 | | |||
24 | #include <QDebug> | ||||
25 | | ||||
24 | MockRootAreaProvider::MockRootAreaProvider() | 26 | MockRootAreaProvider::MockRootAreaProvider() | ||
25 | : m_area(0), | 27 | : maxPosition(0) | ||
26 | m_suggestedRect(QRectF(100, 100, 200,1000)), | 28 | , m_suggestedRect(QRectF(100, 100, 200, 1000)) | ||
27 | m_askedForMoreThenOneArea(false) | 29 | , m_askedForMoreThenOneArea(false) | ||
28 | { | 30 | { | ||
29 | } | 31 | } | ||
30 | 32 | | |||
31 | KoTextLayoutRootArea *MockRootAreaProvider::provide(KoTextDocumentLayout *documentLayout, const RootAreaConstraint &, int requestedPosition, bool *isNewRootArea) | 33 | KoTextLayoutRootArea *MockRootAreaProvider::provide(KoTextDocumentLayout *documentLayout, const RootAreaConstraint &constraint, int requestedPosition, bool *isNewRootArea) | ||
32 | { | 34 | { | ||
33 | if(m_area == 0) { | 35 | if (maxPosition > 0 && requestedPosition > maxPosition) { | ||
34 | m_area = new KoTextLayoutRootArea(documentLayout); | 36 | qInfo()<<"To many area requests:"<<maxPosition<<requestedPosition; | ||
35 | *isNewRootArea = true; | 37 | return 0; // guard against loop | ||
36 | return m_area; | 38 | } | ||
39 | m_askedForMoreThenOneArea |= (m_areas.count() > 1); | ||||
40 | *isNewRootArea = !m_areas.contains(requestedPosition); | ||||
41 | if (!m_areas.contains(requestedPosition)) { | ||||
42 | m_areas.insert(requestedPosition, new KoTextLayoutRootArea(documentLayout)); | ||||
43 | qInfo()<<"New area provided:"<<requestedPosition; | ||||
37 | } | 44 | } | ||
38 | *isNewRootArea = false; | 45 | return m_areas.value(requestedPosition); | ||
39 | m_askedForMoreThenOneArea |= requestedPosition > 0; | | |||
40 | return requestedPosition == 0 ? m_area : 0; | | |||
41 | } | 46 | } | ||
42 | 47 | | |||
43 | void MockRootAreaProvider::doPostLayout(KoTextLayoutRootArea *rootArea, bool isNewRootArea) | 48 | void MockRootAreaProvider::doPostLayout(KoTextLayoutRootArea *rootArea, bool isNewRootArea) | ||
44 | { | 49 | { | ||
45 | Q_UNUSED(rootArea); | 50 | Q_UNUSED(rootArea); | ||
46 | Q_UNUSED(isNewRootArea); | 51 | Q_UNUSED(isNewRootArea); | ||
47 | } | 52 | } | ||
48 | 53 | | |||
49 | void MockRootAreaProvider::updateAll() | 54 | void MockRootAreaProvider::updateAll() | ||
50 | { | 55 | { | ||
51 | } | 56 | } | ||
52 | 57 | | |||
53 | void MockRootAreaProvider::releaseAllAfter(KoTextLayoutRootArea *afterThis) | 58 | void MockRootAreaProvider::releaseAllAfter(KoTextLayoutRootArea *afterThis) | ||
54 | { | 59 | { | ||
55 | Q_UNUSED(afterThis); | 60 | Q_UNUSED(afterThis); | ||
56 | } | 61 | } | ||
57 | 62 | | |||
58 | QRectF MockRootAreaProvider::suggestRect(KoTextLayoutRootArea *rootArea) | 63 | QRectF MockRootAreaProvider::suggestRect(KoTextLayoutRootArea */*rootArea*/) | ||
59 | { | 64 | { | ||
60 | Q_UNUSED(rootArea); | | |||
61 | return m_suggestedRect; | 65 | return m_suggestedRect; | ||
62 | } | 66 | } | ||
63 | 67 | | |||
64 | void MockRootAreaProvider::setSuggestedRect(QRectF rect) | 68 | void MockRootAreaProvider::setSuggestedRect(QRectF rect) | ||
65 | { | 69 | { | ||
66 | m_suggestedRect = rect; | 70 | m_suggestedRect = rect; | ||
67 | } | 71 | } | ||
68 | 72 | | |||
69 | QList<KoTextLayoutObstruction *> MockRootAreaProvider::relevantObstructions(KoTextLayoutRootArea *rootArea) | 73 | QList<KoTextLayoutObstruction *> MockRootAreaProvider::relevantObstructions(KoTextLayoutRootArea *rootArea) | ||
70 | { | 74 | { | ||
71 | Q_UNUSED(rootArea); | 75 | Q_UNUSED(rootArea); | ||
72 | QList<KoTextLayoutObstruction*> obstructions; | 76 | QList<KoTextLayoutObstruction*> obstructions; | ||
73 | return obstructions; | 77 | return obstructions; | ||
74 | } | 78 | } | ||
79 | | ||||
80 | KoTextLayoutRootArea *MockRootAreaProvider::area(int pos) const | ||||
81 | { | ||||
82 | return m_areas.value(pos); | ||||
83 | } |