Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
2ade0712
Kaydet (Commit)
2ade0712
authored
Haz 04, 2013
tarafından
Miklos Vajna
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
fdo#62044 RTF import: don't overwrite existing styles when pasting
Change-Id: I80a83caebc8fa3f038cf2ff080c6c6ec8e93fb70
üst
46c4e246
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
8 deletions
+39
-8
fdo62044-paste.rtf
sw/qa/extras/rtfimport/data/fdo62044-paste.rtf
+7
-0
fdo62044.rtf
sw/qa/extras/rtfimport/data/fdo62044.rtf
+7
-0
rtfimport.cxx
sw/qa/extras/rtfimport/rtfimport.cxx
+14
-0
DomainMapper_Impl.hxx
writerfilter/source/dmapper/DomainMapper_Impl.hxx
+1
-1
StyleSheetTable.cxx
writerfilter/source/dmapper/StyleSheetTable.cxx
+9
-6
StyleSheetTable.hxx
writerfilter/source/dmapper/StyleSheetTable.hxx
+1
-1
No files found.
sw/qa/extras/rtfimport/data/fdo62044-paste.rtf
0 → 100644
Dosyayı görüntüle @
2ade0712
{\rtf
{\stylesheet
{\s14\fs36 Heading1;}
}
from impress
\par
}
sw/qa/extras/rtfimport/data/fdo62044.rtf
0 → 100644
Dosyayı görüntüle @
2ade0712
{\rtf1
{\stylesheet
{\s1\fs20 Heading 1;}
}
\s1 this is heading 1
\par
}
sw/qa/extras/rtfimport/rtfimport.cxx
Dosyayı görüntüle @
2ade0712
...
...
@@ -138,6 +138,7 @@ public:
void
testN818997
();
void
testFdo64671
();
void
testPageBackground
();
void
testFdo62044
();
CPPUNIT_TEST_SUITE
(
Test
);
#if !defined(MACOSX) && !defined(WNT)
...
...
@@ -265,6 +266,7 @@ void Test::run()
{
"n818997.rtf"
,
&
Test
::
testN818997
},
{
"fdo64671.rtf"
,
&
Test
::
testFdo64671
},
{
"page-background.rtf"
,
&
Test
::
testPageBackground
},
{
"fdo62044.rtf"
,
&
Test
::
testFdo62044
},
};
header
();
for
(
unsigned
int
i
=
0
;
i
<
SAL_N_ELEMENTS
(
aMethods
);
++
i
)
...
...
@@ -1257,6 +1259,18 @@ void Test::testPageBackground()
CPPUNIT_ASSERT_EQUAL
(
sal_Int32
(
0x92D050
),
getProperty
<
sal_Int32
>
(
xPageStyle
,
"BackColor"
));
}
void
Test
::
testFdo62044
()
{
// The problem was that RTF import during copy&paste did not ignore existing paragraph styles.
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
(
mxComponent
,
uno
::
UNO_QUERY
);
uno
::
Reference
<
text
::
XTextRange
>
xText
(
xTextDocument
->
getText
(),
uno
::
UNO_QUERY
);
uno
::
Reference
<
text
::
XTextRange
>
xEnd
=
xText
->
getEnd
();
paste
(
"fdo62044-paste.rtf"
,
xEnd
);
uno
::
Reference
<
beans
::
XPropertySet
>
xPropertySet
(
getStyles
(
"ParagraphStyles"
)
->
getByName
(
"Heading 1"
),
uno
::
UNO_QUERY
);
CPPUNIT_ASSERT_EQUAL
(
10.
f
,
getProperty
<
float
>
(
xPropertySet
,
"CharHeight"
));
// Was 18, i.e. reset back to original value.
}
CPPUNIT_TEST_SUITE_REGISTRATION
(
Test
);
CPPUNIT_PLUGIN_IMPLEMENT
();
...
...
writerfilter/source/dmapper/DomainMapper_Impl.hxx
Dosyayı görüntüle @
2ade0712
...
...
@@ -481,7 +481,7 @@ public:
StyleSheetTablePtr
GetStyleSheetTable
()
{
if
(
!
m_pStyleSheetTable
)
m_pStyleSheetTable
.
reset
(
new
StyleSheetTable
(
m_rDMapper
,
m_xTextDocument
));
m_pStyleSheetTable
.
reset
(
new
StyleSheetTable
(
m_rDMapper
,
m_xTextDocument
,
m_bIsNewDoc
));
return
m_pStyleSheetTable
;
}
ListsManager
::
Pointer
GetListTable
();
...
...
writerfilter/source/dmapper/StyleSheetTable.cxx
Dosyayı görüntüle @
2ade0712
...
...
@@ -275,19 +275,21 @@ struct StyleSheetTable_Impl
PropertyMapPtr
m_pCurrentProps
;
StringPairMap_t
m_aStyleNameMap
;
ListCharStylePropertyVector_t
m_aListCharStylePropertyVector
;
bool
m_bIsNewDoc
;
StyleSheetTable_Impl
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
);
StyleSheetTable_Impl
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
,
bool
bIsNewDoc
);
OUString
HasListCharStyle
(
const
PropertyValueVector_t
&
rCharProperties
);
};
StyleSheetTable_Impl
::
StyleSheetTable_Impl
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
)
:
StyleSheetTable_Impl
::
StyleSheetTable_Impl
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
,
bool
bIsNewDoc
)
:
m_rDMapper
(
rDMapper
),
m_xTextDocument
(
xTextDocument
),
m_pCurrentEntry
(),
m_pDefaultParaProps
(
new
PropertyMap
),
m_pDefaultCharProps
(
new
PropertyMap
)
m_pDefaultCharProps
(
new
PropertyMap
),
m_bIsNewDoc
(
bIsNewDoc
)
{
//set font height default to 10pt
uno
::
Any
aVal
=
uno
::
makeAny
(
double
(
10.
)
);
...
...
@@ -342,10 +344,10 @@ OUString StyleSheetTable_Impl::HasListCharStyle( const PropertyValueVector_t& rP
}
StyleSheetTable
::
StyleSheetTable
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
)
StyleSheetTable
::
StyleSheetTable
(
DomainMapper
&
rDMapper
,
uno
::
Reference
<
text
::
XTextDocument
>
xTextDocument
,
bool
bIsNewDoc
)
:
LoggedProperties
(
dmapper_logger
,
"StyleSheetTable"
)
,
LoggedTable
(
dmapper_logger
,
"StyleSheetTable"
)
,
m_pImpl
(
new
StyleSheetTable_Impl
(
rDMapper
,
xTextDocument
)
)
,
m_pImpl
(
new
StyleSheetTable_Impl
(
rDMapper
,
xTextDocument
,
bIsNewDoc
)
)
{
}
...
...
@@ -722,7 +724,8 @@ void StyleSheetTable::ApplyStyleSheets( FontTablePtr rFontTable )
uno
::
Reference
<
container
::
XNameContainer
>
xStyles
=
bParaStyle
?
xParaStyles
:
xCharStyles
;
uno
::
Reference
<
style
::
XStyle
>
xStyle
;
OUString
sConvertedStyleName
=
ConvertStyleName
(
pEntry
->
sStyleName
);
if
(
xStyles
->
hasByName
(
sConvertedStyleName
))
// When pasting, don't update existing styles.
if
(
xStyles
->
hasByName
(
sConvertedStyleName
)
&&
m_pImpl
->
m_bIsNewDoc
)
xStyles
->
getByName
(
sConvertedStyleName
)
>>=
xStyle
;
else
{
...
...
writerfilter/source/dmapper/StyleSheetTable.hxx
Dosyayı görüntüle @
2ade0712
...
...
@@ -81,7 +81,7 @@ class StyleSheetTable :
public
:
StyleSheetTable
(
DomainMapper
&
rDMapper
,
::
com
::
sun
::
star
::
uno
::
Reference
<
::
com
::
sun
::
star
::
text
::
XTextDocument
>
xTextDocument
);
::
com
::
sun
::
star
::
uno
::
Reference
<
::
com
::
sun
::
star
::
text
::
XTextDocument
>
xTextDocument
,
bool
bIsNewDoc
);
virtual
~
StyleSheetTable
();
void
ApplyStyleSheets
(
FontTablePtr
rFontTable
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment