Kaydet (Commit) 11652be4 authored tarafından Tamás Zolnai's avatar Tamás Zolnai

tdf#108925: Too small bullet size confuses the user

Add a constraint for bullet relative size to avoid too small
bullets which are hardly recognizable. Use the same 25% lower
limit what MSO uses.

Change-Id: Id956ecf3ec831c569188b944be58da03bf30a55e
Reviewed-on: https://gerrit.libreoffice.org/39696Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Zolnai <tamas.zolnai@collabora.com>
üst 7878bcf5
......@@ -1112,6 +1112,7 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(vcl::Window* pParent,
get(m_pBulRelSizeFT, "relsizeft");
get(m_pBulRelSizeMF, "relsize");
m_pBulRelSizeMF->SetMin(SVX_NUM_REL_SIZE_MIN);
get(m_pAllLevelFT, "sublevelsft");
get(m_pAllLevelNF, "sublevels");
......
......@@ -34,6 +34,7 @@
#include <editeng/editengdllapi.h>
#include <o3tl/typed_flags_set.hxx>
#include <memory>
#include <algorithm>
class SvxBrushItem;
namespace vcl { class Font; }
......@@ -48,6 +49,8 @@ namespace com{namespace sun{ namespace star{
#define SVX_NO_NUM 200 // Marker for no numbering
#define SVX_NO_NUMLEVEL 0x20
#define SVX_NUM_REL_SIZE_MIN 25 // Lower limit for numbering relative size
#define LINK_TOKEN 0x80 //indicate linked bitmaps - for use in dialog only
class EDITENG_DLLPUBLIC SvxNumberType
......@@ -168,7 +171,7 @@ public:
const vcl::Font* GetBulletFont() const {return pBulletFont;}
void SetBulletChar(sal_Unicode cSet){cBullet = cSet;}
sal_Unicode GetBulletChar()const {return cBullet;}
void SetBulletRelSize(sal_uInt16 nSet) {nBulletRelSize = nSet;}
void SetBulletRelSize(sal_uInt16 nSet) {nBulletRelSize = std::max(nSet,sal_uInt16(SVX_NUM_REL_SIZE_MIN));}
sal_uInt16 GetBulletRelSize() const { return nBulletRelSize;}
void SetBulletColor(Color nSet){nBulletColor = nSet;}
const Color& GetBulletColor()const {return nBulletColor;}
......
......@@ -160,6 +160,7 @@ public:
void testTdf105150PPT();
void testTdf100926();
void testTdf89064();
void testTdf108925();
bool checkPattern(sd::DrawDocShellRef& rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected);
void testPatternImport();
......@@ -228,6 +229,7 @@ public:
CPPUNIT_TEST(testTdf100926);
CPPUNIT_TEST(testPatternImport);
CPPUNIT_TEST(testTdf89064);
CPPUNIT_TEST(testTdf108925);
CPPUNIT_TEST_SUITE_END();
};
......@@ -2187,6 +2189,23 @@ void SdImportTest::testTdf89064()
xDocShRef->DoClose();
}
void SdImportTest::testTdf108925()
{
// Test document contains bulleting with too small bullet size (1%) which breaks the lower constraint
// So it should be converted to the lowest allowed value (25%).
sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/tdf108925.odp"), ODP);
const SdrPage *pPage = GetPage(1, xDocShRef);
SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>(pPage->GetObj(0));
CPPUNIT_ASSERT_MESSAGE("No text object", pTxtObj != nullptr);
const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
const SvxNumBulletItem *pNumFmt = dynamic_cast<const SvxNumBulletItem *>(aEdit.GetParaAttribs(0).GetItem(EE_PARA_NUMBULLET));
CPPUNIT_ASSERT(pNumFmt);
CPPUNIT_ASSERT_EQUAL(pNumFmt->GetNumRule()->GetLevel(0).GetBulletRelSize(), sal_uInt16(25));
xDocShRef->DoClose();
}
CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment