File indexing completed on 2025-01-19 10:49:25

0001 /*
0002  *  SPDX-FileCopyrightText: 2010 Carlos Licea <carlos@kdab.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #include "KoColumn.h"
0008 #include "KoColumnStyle.h"
0009 #include "KoCellStyle.h"
0010 
0011 #include <KoXmlWriter.h>
0012 
0013 #include <QString>
0014 
0015 namespace {
0016     const QMap<KoColumn::Visibility, QString> visibilityMap {
0017         { KoColumn::Collapse, "collapse" },
0018         { KoColumn::Filter, "filter" },
0019         { KoColumn::Visible, "visible" }
0020     };
0021 }
0022 
0023 KoColumn::KoColumn()
0024 : m_defaultCellStyle(0)
0025 , m_style(0)
0026 , m_visibility(Visible)
0027 {
0028 }
0029 
0030 KoColumn::~KoColumn()
0031 {
0032 }
0033 
0034 void KoColumn::setStyle(KoColumnStyle::Ptr style)
0035 {
0036     m_style = style;
0037 }
0038 
0039 KoColumnStyle::Ptr KoColumn::style()
0040 {
0041     return m_style;
0042 }
0043 
0044 KoCellStyle::Ptr KoColumn::defualtCellStyle() const
0045 {
0046     return m_defaultCellStyle;
0047 }
0048 
0049 void KoColumn::setDefaultCellStyle(KoCellStyle::Ptr defaultStyle)
0050 {
0051     m_defaultCellStyle = defaultStyle;
0052 }
0053 
0054 void KoColumn::setVisibility(KoColumn::Visibility visibility)
0055 {
0056     m_visibility = visibility;
0057 }
0058 
0059 KoColumn::Visibility KoColumn::visibility()
0060 {
0061     return m_visibility;
0062 }
0063 
0064 void KoColumn::saveOdf(KoXmlWriter& writer, KoGenStyles& styles)
0065 {
0066     writer.startElement("table:table-column");
0067     if(m_style) {
0068         writer.addAttribute("table:style-name", m_style->saveOdf(styles));
0069     }
0070     if(m_defaultCellStyle) {
0071         writer.addAttribute("table:default-cell-style-name", m_defaultCellStyle->saveOdf(styles));
0072     }
0073     writer.addAttribute("table:visibility", visibilityMap.value(m_visibility));
0074     writer.endElement();//table:column
0075 }