diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kivio/kiviopart/ui/kiviooptionsdialog.cpp | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kivio/kiviopart/ui/kiviooptionsdialog.cpp')
-rw-r--r-- | kivio/kiviopart/ui/kiviooptionsdialog.cpp | 338 |
1 files changed, 338 insertions, 0 deletions
diff --git a/kivio/kiviopart/ui/kiviooptionsdialog.cpp b/kivio/kiviopart/ui/kiviooptionsdialog.cpp new file mode 100644 index 00000000..d19dce6d --- /dev/null +++ b/kivio/kiviopart/ui/kiviooptionsdialog.cpp @@ -0,0 +1,338 @@ +/* This file is part of the KDE project + Copyright (C) 2003 Peter Simonsson <[email protected]> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "kiviooptionsdialog.h" +#include "kivio_view.h" +#include "kivio_doc.h" +#include "kivio_page.h" +#include "kivioglobal.h" +#include "kivio_grid_data.h" +#include "kivio_canvas.h" +#include "kivio_settings.h" +#include "kivio_config.h" + +#include <klocale.h> +#include <KoApplication.h> +#include <kiconloader.h> +#include <kpushbutton.h> +#include <KoPageLayoutDia.h> +#include <kurlrequester.h> +#include <kcolorbutton.h> +#include <KoUnitWidgets.h> +#include <kglobal.h> +#include <kdebug.h> +#include <kfontdialog.h> + +#include <qlabel.h> +#include <qbuttongroup.h> +#include <qgroupbox.h> +#include <qcombobox.h> +#include <qcheckbox.h> +#include <qradiobutton.h> +#include <qlayout.h> +#include <qtabwidget.h> + +// GuidesListViewItem::GuidesListViewItem(QListView* parent, KivioGuideLineData *gd, KoUnit::Unit u) +// : KListViewItem(parent), m_data(gd) +// { +// setPixmap(0, BarIcon(m_data->orientation() == Qt::Vertical ? +// "guides_vertical":"guides_horizontal")); +// QString s = KGlobal::_locale->formatNumber(KoUnit::toUserValue(m_data->position(), u), 2); +// s += " " + KoUnit::unitName(u); +// setText(1, s); +// } +// +// GuidesListViewItem::~GuidesListViewItem() +// { +// delete m_data; +// } +// +// void GuidesListViewItem::setUnit(KoUnit::Unit u) +// { +// QString s = KGlobal::_locale->formatNumber(KoUnit::toUserValue(m_data->position(), u), 2); +// s += " " + KoUnit::unitName(u); +// setText(1, s); +// } +// +// void GuidesListViewItem::setPosition(double p, KoUnit::Unit u) +// { +// m_data->setPosition(KoUnit::fromUserValue(p, u)); +// QString s = KGlobal::_locale->formatNumber(p, 2); +// s += " " + KoUnit::unitName(u); +// setText(1, s); +// } +// +// void GuidesListViewItem::setOrientation(Qt::Orientation o) +// { +// m_data->setOrientation(o); +// setPixmap(0, BarIcon(m_data->orientation() == Qt::Vertical ? +// "guides_vertical":"guides_horizontal")); +// } + +/*****************************************************************************/ + +KivioOptionsDialog::KivioOptionsDialog(KivioView* parent, const char* name) + : KDialogBase(IconList, i18n("Settings"), Ok|Cancel|Apply|Default, Ok, parent, name) +{ + initPage(); + initGrid(); + unitChanged(parent->doc()->unit()); +} + +void KivioOptionsDialog::initPage() +{ + QFrame* page = addPage(i18n("Page"), i18n("Page Settings"), + kapp->iconLoader()->loadIcon("empty", KIcon::Toolbar, 32)); + m_pageIndex = pageIndex(page); + + KivioView* view = static_cast<KivioView*>(parent()); + KoUnit::Unit unit = KoUnit::unit(Kivio::Config::unit()); + m_layout = Kivio::Config::defaultPageLayout(); + m_font = Kivio::Config::font(); + + QLabel* unitLbl = new QLabel(i18n("Default &units:"), page); + m_unitCombo = new QComboBox(page); + m_unitCombo->insertStringList(KoUnit::listOfUnitName()); + m_unitCombo->setCurrentItem(unit); + unitLbl->setBuddy(m_unitCombo); + QLabel* layoutLbl = new QLabel(i18n("Default layout:"), page); + m_layoutTxtLbl = new QLabel(page); + m_layoutTxtLbl->setFrameStyle(QFrame::LineEditPanel | QFrame::Sunken); + m_layoutTxtLbl->setSizePolicy(QSizePolicy( + QSizePolicy::Minimum, QSizePolicy::Fixed)); + setLayoutText(m_layout); + KPushButton* layoutBtn = new KPushButton(i18n("Change..."), page); + layoutBtn->setSizePolicy(QSizePolicy( + QSizePolicy::Fixed, QSizePolicy::Fixed)); + QLabel* fontLbl = new QLabel(i18n("Default font:"), page); + m_fontTxtLbl = new QLabel(page); + m_fontTxtLbl->setFrameStyle(QFrame::LineEditPanel | QFrame::Sunken); + m_fontTxtLbl->setSizePolicy(QSizePolicy( + QSizePolicy::Minimum, QSizePolicy::Fixed)); + setFontText(m_font); + KPushButton* fontBtn = new KPushButton(i18n("Change..."), page); + layoutBtn->setSizePolicy(QSizePolicy( + QSizePolicy::Fixed, QSizePolicy::Fixed)); + m_marginsChBox = new QCheckBox(i18n("Show page &margins"), page); + m_marginsChBox->setChecked(view->isShowPageMargins()); + m_rulersChBox = new QCheckBox(i18n("Show page &rulers"), page); + m_rulersChBox->setChecked(view->isShowRulers()); + + QGridLayout* gl = new QGridLayout(page); + gl->setSpacing(KDialog::spacingHint()); + gl->addWidget(unitLbl, 0, 0); + gl->addMultiCellWidget(m_unitCombo, 0, 0, 1, 2); + gl->addWidget(layoutLbl, 1, 0); + gl->addWidget(m_layoutTxtLbl, 1, 1); + gl->addWidget(layoutBtn, 1, 2); + gl->addWidget(fontLbl, 2, 0); + gl->addWidget(m_fontTxtLbl, 2, 1); + gl->addWidget(fontBtn, 2, 2); + gl->addMultiCellWidget(m_marginsChBox, 3, 3, 0, 2); + gl->addMultiCellWidget(m_rulersChBox, 4, 4, 0, 2); + gl->addMultiCell(new QSpacerItem(0, 0), 5, 5, 0, 2); + + connect(layoutBtn, SIGNAL(clicked()), SLOT(pageLayoutDlg())); + connect(fontBtn, SIGNAL(clicked()), SLOT(fontDlg())); + connect(m_unitCombo, SIGNAL(activated(int)), SLOT(unitChanged(int))); +} + +void KivioOptionsDialog::initGrid() +{ + QFrame* page = addPage(i18n("Grid"), i18n("Grid Settings"), BarIcon( "grid", KIcon::SizeMedium )); + m_gridIndex = pageIndex(page); + + KoUnit::Unit unit = static_cast<KivioView*>(parent())->doc()->unit(); + KivioGridData d = static_cast<KivioView*>(parent())->doc()->grid(); + double pgw = m_layout.ptWidth; + double pgh = m_layout.ptHeight; + double fw = Kivio::Config::gridXSpacing(); + double fh = Kivio::Config::gridYSpacing(); + double sw = Kivio::Config::gridXSnap(); + double sh = Kivio::Config::gridYSnap(); + + m_gridChBox = new QCheckBox(i18n("Show &grid"), page); + m_gridChBox->setChecked(Kivio::Config::showGrid()); + m_snapChBox = new QCheckBox(i18n("Snap to g&rid"), page); + m_snapChBox->setChecked(Kivio::Config::snapGrid()); + QLabel* gridColorLbl = new QLabel(i18n("Grid &color:"), page); + m_gridColorBtn = new KColorButton(Kivio::Config::gridColor(), page); + gridColorLbl->setBuddy(m_gridColorBtn); + QGroupBox* spacingGrp = new QGroupBox(2, Qt::Horizontal, i18n("Spacing"), page); + QLabel* spaceHorizLbl = new QLabel(i18n("&Horizontal:"), spacingGrp); + m_spaceHorizUSpin = new KoUnitDoubleSpinBox(spacingGrp, 0.0, pgw, 0.1, + fw, unit); + spaceHorizLbl->setBuddy(m_spaceHorizUSpin); + QLabel* spaceVertLbl = new QLabel(i18n("&Vertical:"), spacingGrp); + m_spaceVertUSpin = new KoUnitDoubleSpinBox(spacingGrp, 0.0, pgh, 0.1, + fh, unit); + spaceVertLbl->setBuddy(m_spaceVertUSpin); + QGroupBox* snapGrp = new QGroupBox(2, Qt::Horizontal, i18n("Snap Distance"), page); + QLabel* snapHorizLbl = new QLabel(i18n("H&orizontal:"), snapGrp); + m_snapHorizUSpin = new KoUnitDoubleSpinBox(snapGrp, 0.0, fw, 0.1, + sw, unit); + snapHorizLbl->setBuddy(m_snapHorizUSpin); + QLabel* snapVertLbl = new QLabel(i18n("V&ertical:"), snapGrp); + m_snapVertUSpin = new KoUnitDoubleSpinBox(snapGrp, 0.0, fh, 0.1, + sh, unit); + snapVertLbl->setBuddy(m_snapVertUSpin); + + QGridLayout* gl = new QGridLayout(page); + gl->setSpacing(KDialog::spacingHint()); + gl->addMultiCellWidget(m_gridChBox, 0, 0, 0, 2); + gl->addMultiCellWidget(m_snapChBox, 1, 1, 0, 2); + gl->addWidget(gridColorLbl, 2, 0); + gl->addWidget(m_gridColorBtn, 2, 1); + gl->addItem(new QSpacerItem(0, 0), 2, 2); + gl->addMultiCellWidget(spacingGrp, 3, 3, 0, 2); + gl->addMultiCellWidget(snapGrp, 4, 4, 0, 2); + gl->addMultiCell(new QSpacerItem(0, 0), 5, 5, 0, 2); + + connect(m_spaceHorizUSpin, SIGNAL(valueChanged(double)), SLOT(setMaxHorizSnap(double))); + connect(m_spaceVertUSpin, SIGNAL(valueChanged(double)), SLOT(setMaxVertSnap(double))); +} + +void KivioOptionsDialog::applyPage() +{ + KivioView* view = static_cast<KivioView*>(parent()); + view->doc()->setUnit(static_cast<KoUnit::Unit>(m_unitCombo->currentItem())); + Kivio::Config::setUnit(KoUnit::unitName(view->doc()->unit())); + Kivio::Config::setDefaultPageLayout(m_layout); + Kivio::Config::setFont(m_font); + view->doc()->setDefaultFont(m_font); + view->togglePageMargins(m_marginsChBox->isChecked()); + view->toggleShowRulers(m_rulersChBox->isChecked()); +} + +void KivioOptionsDialog::applyGrid() +{ + KivioGridData d; + Kivio::Config::setGridXSpacing(m_spaceHorizUSpin->value()); + Kivio::Config::setGridYSpacing(m_spaceVertUSpin->value()); + Kivio::Config::setGridXSnap(m_snapHorizUSpin->value()); + Kivio::Config::setGridYSnap(m_snapVertUSpin->value()); + Kivio::Config::setShowGrid(m_gridChBox->isChecked()); + Kivio::Config::setSnapGrid(m_snapChBox->isChecked()); + Kivio::Config::setGridColor(m_gridColorBtn->color()); + KivioView* view = static_cast<KivioView*>(parent()); + view->doc()->updateView(0); +} + +void KivioOptionsDialog::defaultPage() +{ + m_layout = Kivio::Config::defaultPageLayout(); + m_font = Kivio::Config::font(); + m_unitCombo->setCurrentItem(KoUnit::unit(Kivio::Config::unit())); + unitChanged(m_unitCombo->currentItem()); + setLayoutText(m_layout); + setFontText(m_font); + m_marginsChBox->setChecked(true); + m_rulersChBox->setChecked(true); +} + +void KivioOptionsDialog::defaultGrid() +{ + m_spaceHorizUSpin->changeValue(Kivio::Config::gridXSpacing()); + m_spaceVertUSpin->changeValue(Kivio::Config::gridYSpacing()); + m_snapHorizUSpin->changeValue(Kivio::Config::gridXSnap()); + m_snapVertUSpin->changeValue(Kivio::Config::gridYSnap()); + m_gridChBox->setChecked(Kivio::Config::showGrid()); + m_snapChBox->setChecked(Kivio::Config::snapGrid()); + m_gridColorBtn->setColor(Kivio::Config::gridColor()); +} + +void KivioOptionsDialog::setLayoutText(const KoPageLayout& l) +{ + KoUnit::Unit unit = static_cast<KoUnit::Unit>(m_unitCombo->currentItem()); + QString txt = i18n("Format: %1, Width: %2 %4, Height: %3 %5").arg( + KoPageFormat::formatString(l.format)).arg(KoUnit::toUserValue(l.ptWidth, unit)) + .arg(KoUnit::toUserValue(l.ptHeight, unit)).arg(KoUnit::unitName(unit)).arg( + KoUnit::unitName(unit)); + m_layoutTxtLbl->setText(txt); +} + +void KivioOptionsDialog::pageLayoutDlg() +{ + KoHeadFoot headfoot; + int tabs = FORMAT_AND_BORDERS | DISABLE_UNIT; + KoUnit::Unit unit = static_cast<KoUnit::Unit>(m_unitCombo->currentItem()); + + if(KoPageLayoutDia::pageLayout(m_layout, headfoot, tabs, unit)) + { + setLayoutText(m_layout); + } +} + +void KivioOptionsDialog::unitChanged(int u) +{ + KoUnit::Unit unit = static_cast<KoUnit::Unit>(u); + setLayoutText(m_layout); + m_snapHorizUSpin->setUnit(unit); + m_snapVertUSpin->setUnit(unit); + m_spaceHorizUSpin->setUnit(unit); + m_spaceVertUSpin->setUnit(unit); +} + +void KivioOptionsDialog::slotOk() +{ + slotApply(); + accept(); +} + +void KivioOptionsDialog::slotApply() +{ + applyPage(); + applyGrid(); + Kivio::Config::self()->writeConfig(); +} + +void KivioOptionsDialog::slotDefault() +{ + bool defaults = Kivio::Config::self()->useDefaults(true); + defaultPage(); + defaultGrid(); + Kivio::Config::self()->useDefaults(defaults); +} + +void KivioOptionsDialog::setMaxHorizSnap(double v) +{ + KoUnit::Unit unit = static_cast<KoUnit::Unit>(m_unitCombo->currentItem()); + m_snapHorizUSpin->setMaxValue(KoUnit::fromUserValue(v, unit)); +} + +void KivioOptionsDialog::setMaxVertSnap(double v) +{ + KoUnit::Unit unit = static_cast<KoUnit::Unit>(m_unitCombo->currentItem()); + m_snapVertUSpin->setMaxValue(KoUnit::fromUserValue(v, unit)); +} + +void KivioOptionsDialog::setFontText(const QFont& f) +{ + QString txt = f.family() + " " + QString::number(f.pointSize()); + m_fontTxtLbl->setText(txt); +} + +void KivioOptionsDialog::fontDlg() +{ + if(KFontDialog::getFont(m_font, false, this) == QDialog::Accepted) { + setFontText(m_font); + } +} + +#include "kiviooptionsdialog.moc" |