[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice
From: Thomas Zander <zander () kde ! org>
Date: 2007-06-30 21:39:23
Message-ID: 1183239563.476005.27252.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 681931 by zander:
New test and fix for KWPageManger::pageNumber in combination with page-spreads.
Introduce directionality in a page.
Move the Direction enum from the paragStyle to the KoText namespace.
M +3 -0 kword/part/KWPage.cpp
M +8 -2 kword/part/KWPage.h
M +2 -2 kword/part/KWPageManager.cpp
M +2 -0 kword/part/frames/KWTextFrameSet.h
M +11 -1 kword/part/frames/tests/CMakeLists.txt
A kword/part/frames/tests/TestTextFrameSorting.cpp [License: no \
copyright] A kword/part/frames/tests/TestTextFrameSorting.h [License: \
no copyright] M +11 -0 libs/kotext/KoText.h
M +7 -7 libs/kotext/styles/KoParagraphStyle.cpp
M +2 -12 libs/kotext/styles/KoParagraphStyle.h
--- trunk/koffice/kword/part/KWPage.cpp #681930:681931
@@ -21,6 +21,7 @@
#include "KoZoomHandler.h"
#include <QRect>
+#include <QApplication>
KWPage::KWPage(KWPageManager *parent, int pageNum) {
m_parent = parent;
@@ -35,6 +36,8 @@
m_pageLayout.bindingSide = -1.0;
m_pageLayout.orientation = parent->m_defaultPageLayout.orientation;
m_pageSide = pageNum%2==0 ? Left : Right;
+
+ m_textDirectionHint = QApplication::isLeftToRight() ? \
KoText::LeftRightTopBottom : KoText::RightLeftTopBottom; }
double KWPage::width() const {
--- trunk/koffice/kword/part/KWPage.h #681930:681931
@@ -1,5 +1,5 @@
/* This file is part of the KOffice project
- * Copyright (C) 2005 Thomas Zander <zander@kde.org>
+ * Copyright (C) 2005, 2007 Thomas Zander <zander@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -21,7 +21,9 @@
#include "KWPageManager.h"
#include "KoPageLayout.h"
-#include <kword_export.h>
+#include "kword_export.h"
+
+#include <KoText.h>
#include <QRectF>
class KoZoomHandler;
@@ -143,6 +145,9 @@
*/
KoPageFormat::Orientation orientationHint() const;
+ void setDirectionHint(KoText::Direction direction) { m_textDirectionHint = \
direction; } + KoText::Direction directionHint() const { return \
m_textDirectionHint; } +
private:
/** private constructor, only for our friends
* @param parent the KWPageManager that we belong to.
@@ -153,6 +158,7 @@
int m_pageNum;
PageSide m_pageSide;
KoPageLayout m_pageLayout;
+ KoText::Direction m_textDirectionHint;
KWPageManager *m_parent;
--- trunk/koffice/kword/part/KWPageManager.cpp #681930:681931
@@ -45,9 +45,9 @@
if(startOfpage >= point.y())
break;
startOfpage += page->height();
- pageNumber++;
+ pageNumber = page->pageNumber();
}
- return pageNumber-1;
+ return pageNumber;
}
int KWPageManager::pageNumber(const KoShape *shape) const {
--- trunk/koffice/kword/part/frames/KWTextFrameSet.h #681930:681931
@@ -98,6 +98,7 @@
protected:
friend class KWTextDocumentLayout;
+ friend class TestTextFrameSorting;
void setupFrame(KWFrame *frame);
/**
* Call this to make it know that the text we want to layout needs more space to \
be shown fully. @@ -125,6 +126,7 @@
const KWPageManager *m_pageManager;
const KWDocument *m_kwordDocument;
+ // return true if frame1 is sorted before frame2
static bool sortTextFrames(const KWFrame *frame1, const KWFrame *frame2);
};
--- trunk/koffice/kword/part/frames/tests/CMakeLists.txt #681930:681931
@@ -4,7 +4,9 @@
add_definitions(-DCOMPILING_TESTS)
include_directories( ${KOMAIN_INCLUDES} ${FLAKE_INCLUDES} ${KOTEXT_INCLUDES} \
${KDE4_INCLUDES}
- ${QT_INCLUDES} ${CMAKE_SOURCE_DIR}/kword/part \
${CMAKE_SOURCE_DIR}/kword/part/frames) + ${QT_INCLUDES} \
${CMAKE_SOURCE_DIR}/kword/part ${CMAKE_SOURCE_DIR}/kword/part/frames + \
${CMAKE_SOURCE_DIR}/libs/flake/tests +)
########### next target ###############
@@ -24,4 +26,12 @@
########### next target ###############
+set(TestTextFrameSorting_test_SRCS TestTextFrameSorting.cpp)
+kde4_automoc(${TestTextFrameSorting_test_SRCS})
+kde4_add_executable(TestTextFrameSorting RUN_UNINSTALLED \
${TestTextFrameSorting_test_SRCS}) +target_link_libraries(TestTextFrameSorting \
kwordprivate ${QT_QTTEST_LIBRARY}) +add_test(kword-part-frame-TestTextFrameSorting \
${EXECUTABLE_OUTPUT_PATH}/TestTextFrameSorting) +
+########### next target ###############
+
endif(KDE4_BUILD_TESTS)
--- trunk/koffice/libs/kotext/KoText.h #681930:681931
@@ -59,6 +59,17 @@
bool operator==(const Tab &tab) const;
};
+
+ /// Text in this object will be positioned according to the direction.
+ enum Direction {
+ AutoDirection, ///< Take the direction from the text.
+ LeftRightTopBottom, ///< Text layout for most western languages
+ RightLeftTopBottom, ///< Text layout for langauges like Hebrew
+ TopBottomRightLeft, ///< Vertical text layout.
+ PerhapsLeftRightTopBottom,
+ PerhapsRightLeftTopBottom
+ };
+
}
Q_DECLARE_METATYPE( KoText::Tab )
--- trunk/koffice/libs/kotext/styles/KoParagraphStyle.cpp #681930:681931
@@ -734,11 +734,11 @@
return KoListStyle(0); // an invalid one
}
-KoParagraphStyle::Direction KoParagraphStyle::textProgressionDirection() const {
- return static_cast<Direction> (propertyInt(TextProgressionDirection));
+KoText::Direction KoParagraphStyle::textProgressionDirection() const {
+ return static_cast<KoText::Direction> (propertyInt(TextProgressionDirection));
}
-void KoParagraphStyle::setTextProgressionDirection(KoParagraphStyle::Direction dir) \
{ +void KoParagraphStyle::setTextProgressionDirection(KoText::Direction dir) {
setProperty(TextProgressionDirection, dir);
}
@@ -749,13 +749,13 @@
// LTR is lr-tb. RTL is rl-tb
QString writingMode = styleStack.property( KoXmlNS::style, "writing-mode" );
if(writingMode == "lr" || writingMode == "lr-tb")
- setTextProgressionDirection(LeftRightTopBottom);
+ setTextProgressionDirection(KoText::LeftRightTopBottom);
else if(writingMode == "rl" || writingMode == "rl-tb")
- setTextProgressionDirection(RightLeftTopBottom);
+ setTextProgressionDirection(KoText::RightLeftTopBottom);
else if(writingMode == "tb" || writingMode == "tb-rl")
- setTextProgressionDirection(TopBottomRightLeft);
+ setTextProgressionDirection(KoText::TopBottomRightLeft);
else
- setTextProgressionDirection(AutoDirection);
+ setTextProgressionDirection(KoText::AutoDirection);
}
// Alignment
--- trunk/koffice/libs/kotext/styles/KoParagraphStyle.h #681930:681931
@@ -125,16 +125,6 @@
BorderDashDotDotPattern
};
- /// Text in this paragraph will be positioned according to the direction.
- enum Direction {
- AutoDirection, ///< Take the direction from the text.
- LeftRightTopBottom, ///< Text layout for most western languages
- RightLeftTopBottom, ///< Text layout for langauges like Hebrew
- TopBottomRightLeft, ///< Vertical text layout.
- PerhapsLeftRightTopBottom,
- PerhapsRightLeftTopBottom
- };
-
/// Constructor
KoParagraphStyle();
/// Copy constructor
@@ -338,8 +328,8 @@
void setBottomBorderColor(const QColor& color);
QColor bottomBorderColor();
- Direction textProgressionDirection() const;
- void setTextProgressionDirection(Direction dir);
+ KoText::Direction textProgressionDirection() const;
+ void setTextProgressionDirection(KoText::Direction dir);
// ************ properties from QTextBlockFormat
/// duplicated property from QTextBlockFormat
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic