Warning, file /office/calligra/filters/sheets/html/exportdialog.cc was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2005 Bram Schoenmakers <bramschoenmakers@kde.nl>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "exportdialog.h"
0008 
0009 #include <QCheckBox>
0010 #include <QComboBox>
0011 #include <QListWidget>
0012 #include <QRadioButton>
0013 #include <QSpinBox>
0014 #include <QTextCodec>
0015 #include <QApplication>
0016 #include <QUrl>
0017 
0018 ExportDialog::ExportDialog(QWidget *parent)
0019         : KoDialog(parent), m_mainwidget(new ExportWidget(this))
0020 {
0021     setCaption(i18n("Export Sheet to HTML"));
0022     setButtons(Ok | Cancel);
0023     setDefaultButton(Cancel);
0024     QApplication::restoreOverrideCursor();
0025 
0026     connect(m_mainwidget->mCustomButton, &QAbstractButton::toggled,
0027             m_mainwidget->mCustomURL, &QWidget::setEnabled);
0028     connect(m_mainwidget->mSelectAllButton, &QAbstractButton::clicked, this, &ExportDialog::selectAll);
0029     connect(m_mainwidget->mDeselectAllButton, &QAbstractButton::clicked,
0030             m_mainwidget->mSheets, &QAbstractItemView::clearSelection);
0031 
0032     m_mainwidget->mEncodingBox->addItem(i18n("Recommended: UTF-8"));
0033     m_mainwidget->mEncodingBox->addItem(i18n("Locale (%1)", QString::fromLatin1(QTextCodec::codecForLocale()->name())));
0034 
0035     m_mainwidget->mCustomURL->setMode(KFile::ExistingOnly);
0036 
0037     setMainWidget(m_mainwidget);
0038 }
0039 
0040 void ExportDialog::selectAll()
0041 {
0042 
0043     QListWidget *view = m_mainwidget->mSheets;
0044     QAbstractItemModel *model = view->model();
0045     QModelIndex topLeft = model->index(0, 0);
0046     QModelIndex bottomRight = model->index(model->rowCount() - 1, model->columnCount() - 1);
0047     QItemSelection selection(topLeft, bottomRight);
0048     view->selectionModel()->select(selection , QItemSelectionModel::QItemSelectionModel::Select);
0049 }
0050 
0051 ExportDialog::~ExportDialog()
0052 {
0053     QApplication::setOverrideCursor(Qt::WaitCursor);
0054 }
0055 
0056 QTextCodec *ExportDialog::encoding() const
0057 {
0058     if (m_mainwidget->mEncodingBox->currentIndex() == 1)  // locale selected
0059         return QTextCodec::codecForLocale();
0060 
0061     return QTextCodec::codecForName("utf8");   // utf8 is default
0062 }
0063 
0064 bool ExportDialog::useBorders() const
0065 {
0066     return m_mainwidget->mUseBorders->isChecked();
0067 }
0068 
0069 bool ExportDialog::separateFiles() const
0070 {
0071     return m_mainwidget->mSeparateFiles->isChecked();
0072 }
0073 
0074 QUrl ExportDialog::customStyleURL() const
0075 {
0076     QUrl url = m_mainwidget->mCustomURL->url();
0077     if (m_mainwidget->mCustomButton->isChecked() && url.isValid())
0078         return url;
0079 
0080     return QUrl();
0081 }
0082 
0083 void ExportDialog::setSheets(const QStringList &list)
0084 {
0085     m_mainwidget->mSheets->addItems(list);
0086     selectAll();
0087 }
0088 
0089 QStringList ExportDialog::sheets() const
0090 {
0091     QListWidget* view = m_mainwidget->mSheets;
0092     QStringList list;
0093     for (uint i = 0; i < (uint)view->count() ; i++) {
0094         QListWidgetItem* item = view->item(i);
0095         if (item->isSelected()) {
0096             list.append(item->text());
0097         }
0098     }
0099     return list;
0100 }
0101 
0102 int ExportDialog::pixelsBetweenCells() const
0103 {
0104     return m_mainwidget->mPixelsBetweenCells->value();
0105 }