File indexing completed on 2024-05-12 16:35:11

0001 /* This file is part of the KDE project
0002    Copyright 2007 Stefan Nikolaus <stefan.nikolaus@kdemail.net>
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License as published by the Free Software Foundation; either
0007    version 2 of the License, or (at your option) any later version.
0008 
0009    This library is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012    Library General Public License for more details.
0013 
0014    You should have received a copy of the GNU Library General Public License
0015    along with this library; see the file COPYING.LIB.  If not, write to
0016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017    Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #ifndef CALLIGRA_SHEETS_CSV_DATA_COMMAND
0021 #define CALLIGRA_SHEETS_CSV_DATA_COMMAND
0022 
0023 #include "DataManipulators.h"
0024 
0025 #include <KoCsvImportDialog.h>
0026 
0027 namespace Calligra
0028 {
0029 namespace Sheets
0030 {
0031 
0032 /**
0033  * \ingroup Commands
0034  * \brief Parses CSV data an fills it into a cell range.
0035  */
0036 class CSVDataCommand : public AbstractDataManipulator
0037 {
0038 public:
0039     /**
0040      * Constructor.
0041      */
0042     CSVDataCommand();
0043 
0044     /**
0045      * Destructor.
0046      */
0047     ~CSVDataCommand() override;
0048 
0049     void setValue(const Value& value);
0050     void setColumnDataTypes(const QList<KoCsvImportDialog::DataType>& dataTypes);
0051     void setDecimalSymbol(const QString& symbol);
0052     void setThousandsSeparator(const QString& separator);
0053 
0054 protected:
0055     Value newValue(Element* element, int col, int row, bool* parse, Format::Type* fmtType) override;
0056     bool wantChange(Element* element, int col, int row) override;
0057     bool preProcessing() override;
0058     bool postProcessing() override;
0059 
0060 private:
0061     QList<KoCsvImportDialog::DataType> m_dataTypes;
0062     Value m_value;
0063     QString m_decimalSymbol;
0064     QString m_thousandsSeparator;
0065     QString m_documentDecimalSymbol;
0066     QString m_documentThousandsSeparator;
0067 };
0068 
0069 } // namespace Sheets
0070 } // namespace Calligra
0071 
0072 #endif // CALLIGRA_SHEETS_CSV_DATA_COMMAND