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
0bd4408a
Kaydet (Commit)
0bd4408a
authored
Agu 23, 2014
tarafından
Markus Mohrhard
Kaydeden (comit)
Markus Mohrhard
Agu 28, 2015
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
next step on correct styles import from orcus
Change-Id: I5d7487dee3120b2a74affe6b081d0c1ea338edc0
üst
ab036f3b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
97 additions
and
2 deletions
+97
-2
orcusinterface.hxx
sc/source/filter/inc/orcusinterface.hxx
+8
-0
interface.cxx
sc/source/filter/orcus/interface.cxx
+89
-2
No files found.
sc/source/filter/inc/orcusinterface.hxx
Dosyayı görüntüle @
0bd4408a
...
...
@@ -31,6 +31,7 @@ class ScDocumentImport;
class
ScOrcusSheet
;
class
ScOrcusFactory
;
class
ScRangeData
;
class
SfxItemSet
;
namespace
com
{
namespace
sun
{
namespace
star
{
namespace
task
{
...
...
@@ -160,6 +161,7 @@ public:
class
ScOrcusStyles
:
public
orcus
::
spreadsheet
::
iface
::
import_styles
{
private
:
ScDocument
&
mrDoc
;
struct
font
{
...
...
@@ -170,6 +172,8 @@ private:
Color
maColor
;
font
();
void
applyToItemSet
(
SfxItemSet
&
rSet
)
const
;
};
font
maCurrentFont
;
...
...
@@ -220,6 +224,7 @@ private:
size_t
mnBorderId
;
size_t
mnProtectionId
;
size_t
mnNumberFormatId
;
size_t
mnStyleXf
;
xf
();
};
...
...
@@ -239,7 +244,10 @@ private:
cell_style
maCurrentCellStyle
;
void
applyXfToItemSet
(
SfxItemSet
&
rSet
,
const
xf
&
rXf
);
public
:
ScOrcusStyles
(
ScDocument
&
rDoc
);
// font
virtual
void
set_font_count
(
size_t
n
)
SAL_OVERRIDE
;
...
...
sc/source/filter/orcus/interface.cxx
Dosyayı görüntüle @
0bd4408a
...
...
@@ -18,6 +18,12 @@
#include "globstr.hrc"
#include "compiler.hxx"
#include "dbdata.hxx"
#include "stlpool.hxx"
#include "scitems.hxx"
#include <editeng/postitem.hxx>
#include <editeng/wghtitem.hxx>
#include <editeng/colritem.hxx>
#include <formula/token.hxx>
#include <tools/datetime.hxx>
...
...
@@ -52,6 +58,7 @@ ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc) :
maDoc
(
rDoc
),
maGlobalSettings
(
maDoc
),
maSharedStrings
(
*
this
),
maStyles
(
rDoc
),
mnProgress
(
0
)
{}
orcus
::
spreadsheet
::
iface
::
import_sheet
*
ScOrcusFactory
::
append_sheet
(
const
char
*
sheet_name
,
size_t
sheet_name_length
)
...
...
@@ -470,6 +477,11 @@ size_t ScOrcusSharedStrings::commit_segments()
return
mrFactory
.
addString
(
OStringToOUString
(
aStr
,
RTL_TEXTENCODING_UTF8
));
}
ScOrcusStyles
::
ScOrcusStyles
(
ScDocument
&
rDoc
)
:
mrDoc
(
rDoc
)
{
}
ScOrcusStyles
::
font
::
font
()
:
mbBold
(
false
),
mbItalic
(
false
),
...
...
@@ -477,6 +489,17 @@ ScOrcusStyles::font::font():
{
}
void
ScOrcusStyles
::
font
::
applyToItemSet
(
SfxItemSet
&
rSet
)
const
{
FontItalic
eItalic
=
mbItalic
?
ITALIC_NORMAL
:
ITALIC_NONE
;
rSet
.
Put
(
SvxPostureItem
(
eItalic
,
ATTR_FONT_POSTURE
));
FontWeight
eWeight
=
mbBold
?
WEIGHT_BOLD
:
WEIGHT_NORMAL
;
rSet
.
Put
(
SvxWeightItem
(
eWeight
,
ATTR_FONT_WEIGHT
));
rSet
.
Put
(
SvxColorItem
(
maColor
,
ATTR_FONT_COLOR
));
}
ScOrcusStyles
::
protection
::
protection
()
:
mbHidden
(
false
),
mbLocked
(
false
)
...
...
@@ -492,7 +515,8 @@ ScOrcusStyles::xf::xf():
mnFillId
(
0
),
mnBorderId
(
0
),
mnProtectionId
(
0
),
mnNumberFormatId
(
0
)
mnNumberFormatId
(
0
),
mnStyleXf
(
0
)
{
}
...
...
@@ -502,6 +526,47 @@ ScOrcusStyles::cell_style::cell_style():
{
}
void
ScOrcusStyles
::
applyXfToItemSet
(
SfxItemSet
&
rSet
,
const
xf
&
rXf
)
{
size_t
nFontId
=
rXf
.
mnFontId
;
if
(
nFontId
>=
maFonts
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid font id"
);
return
;
}
const
font
&
rFont
=
maFonts
[
nFontId
];
rFont
.
applyToItemSet
(
rSet
);
size_t
nFillId
=
rXf
.
mnFillId
;
if
(
nFillId
>=
maFills
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid fill id"
);
return
;
}
size_t
nBorderId
=
rXf
.
mnBorderId
;
if
(
nBorderId
>=
maBorders
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid border id"
);
return
;
}
size_t
nProtectionId
=
rXf
.
mnProtectionId
;
if
(
nProtectionId
>=
maProtections
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid protection id"
);
return
;
}
size_t
nNumberFormatId
=
rXf
.
mnNumberFormatId
;
if
(
nNumberFormatId
>=
maNumberFormats
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid number format id"
);
return
;
}
}
void
ScOrcusStyles
::
set_font_count
(
size_t
/*n*/
)
{
// needed at all?
...
...
@@ -542,6 +607,7 @@ void ScOrcusStyles::set_font_color(orcus::spreadsheet::color_elem_t alpha,
size_t
ScOrcusStyles
::
commit_font
()
{
SAL_INFO
(
"sc.orcus.style"
,
"commit font"
);
maFonts
.
push_back
(
maCurrentFont
);
return
maFonts
.
size
()
-
1
;
}
...
...
@@ -567,6 +633,7 @@ void ScOrcusStyles::set_fill_bg_color(orcus::spreadsheet::color_elem_t /*alpha*/
size_t
ScOrcusStyles
::
commit_fill
()
{
SAL_INFO
(
"sc.orcus.style"
,
"commit fill"
);
return
0
;
}
...
...
@@ -593,6 +660,7 @@ void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t /*di
size_t
ScOrcusStyles
::
commit_border
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit border"
);
return
0
;
}
...
...
@@ -609,6 +677,7 @@ void ScOrcusStyles::set_cell_locked(bool b)
size_t
ScOrcusStyles
::
commit_cell_protection
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit cell protection"
);
maProtections
.
push_back
(
maCurrentProtection
);
return
maProtections
.
size
()
-
1
;
}
...
...
@@ -629,6 +698,7 @@ void ScOrcusStyles::set_number_format_code(const char* s, size_t n)
size_t
ScOrcusStyles
::
commit_number_format
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit number format"
);
maNumberFormats
.
push_back
(
maCurrentNumberFormat
);
return
maNumberFormats
.
size
()
-
1
;
}
...
...
@@ -642,6 +712,7 @@ void ScOrcusStyles::set_cell_style_xf_count(size_t /*n*/)
size_t
ScOrcusStyles
::
commit_cell_style_xf
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit cell style xf"
);
maCellStyleXfs
.
push_back
(
maCurrentXF
);
return
maCellStyleXfs
.
size
()
-
1
;
}
...
...
@@ -655,6 +726,7 @@ void ScOrcusStyles::set_cell_xf_count(size_t /*n*/)
size_t
ScOrcusStyles
::
commit_cell_xf
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit cell xf"
);
maCellXfs
.
push_back
(
maCurrentXF
);
return
maCellXfs
.
size
()
-
1
;
}
...
...
@@ -697,8 +769,9 @@ void ScOrcusStyles::set_xf_protection(size_t index)
maCurrentXF
.
mnProtectionId
=
index
;
}
void
ScOrcusStyles
::
set_xf_style_xf
(
size_t
/*index*/
)
void
ScOrcusStyles
::
set_xf_style_xf
(
size_t
index
)
{
maCurrentXF
.
mnStyleXf
=
index
;
}
void
ScOrcusStyles
::
set_xf_apply_alignment
(
bool
/*b*/
)
...
...
@@ -740,6 +813,20 @@ void ScOrcusStyles::set_cell_style_builtin(size_t index)
size_t
ScOrcusStyles
::
commit_cell_style
()
{
SAL_INFO
(
"sc.orcus.styles"
,
"commit cell styles"
);
if
(
maCurrentCellStyle
.
mnXFId
>=
maCellStyleXfs
.
size
())
{
SAL_WARN
(
"sc.orcus.styles"
,
"invalid xf id for commit cell style"
);
return
0
;
}
ScStyleSheetPool
*
pPool
=
mrDoc
.
GetStyleSheetPool
();
SfxStyleSheetBase
&
rBase
=
pPool
->
Make
(
maCurrentCellStyle
.
maName
,
SFX_STYLE_FAMILY_PARA
);
SfxItemSet
&
rSet
=
rBase
.
GetItemSet
();
xf
&
rXf
=
maCellStyleXfs
[
maCurrentCellStyle
.
mnXFId
];
applyXfToItemSet
(
rSet
,
rXf
);
return
0
;
}
...
...
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