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/plugins/kiviotexttool/stenciltexteditor.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/plugins/kiviotexttool/stenciltexteditor.cpp')
-rw-r--r-- | kivio/plugins/kiviotexttool/stenciltexteditor.cpp | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/kivio/plugins/kiviotexttool/stenciltexteditor.cpp b/kivio/plugins/kiviotexttool/stenciltexteditor.cpp new file mode 100644 index 00000000..9cf3a7e5 --- /dev/null +++ b/kivio/plugins/kiviotexttool/stenciltexteditor.cpp @@ -0,0 +1,190 @@ +/* + * Kivio - Visual Modelling and Flowcharting + * Copyright (C) 2005 Peter Simonsson <psn@linux.se> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include "stenciltexteditor.h" + +#include <qtoolbutton.h> +#include <qfont.h> +#include <qcolor.h> +#include <qpopupmenu.h> + +#include <kiconloader.h> +#include <ktextedit.h> +#include <kfontcombo.h> +#include <kcolorbutton.h> +#include <kdebug.h> +#include <klocale.h> +#include <karrowbutton.h> + +#include "kivio_stenciltexteditorui.h" + +namespace Kivio { + +StencilTextEditor::StencilTextEditor(const QString& caption, QWidget *parent, const char *name) + : KDialogBase(parent, name, true, caption, KDialogBase::Ok|KDialogBase::Cancel) +{ + m_hAlign = -1; + m_vAlign = -1; + m_mainWidget = new StencilTextEditorUI(this); + setMainWidget(m_mainWidget); + + m_mainWidget->m_boldButton->setIconSet(SmallIconSet("text_bold", 16)); + m_mainWidget->m_italicsButton->setIconSet(SmallIconSet("text_italic", 16)); + m_mainWidget->m_underLineButton->setIconSet(SmallIconSet("text_under", 16)); + + QPopupMenu* menu = new QPopupMenu(m_mainWidget->m_hAlignButton, "hAlignMenu"); + menu->setCheckable(true); + menu->insertItem(SmallIconSet("text_left", 16), i18n("Align Left"), Qt::AlignLeft); + menu->insertItem(SmallIconSet("text_center", 16), i18n("Align Center"), Qt::AlignHCenter); + menu->insertItem(SmallIconSet("text_right", 16), i18n("Align Right"), Qt::AlignRight); + m_mainWidget->m_hAlignButton->setPopup(menu); + connect(menu, SIGNAL(activated(int)), this, SLOT(setHorizontalAlign(int))); + connect(m_mainWidget->m_hAlignButton, SIGNAL(clicked()), this, SLOT(showHAlignPopup())); + + menu = new QPopupMenu(m_mainWidget->m_vAlignButton, "hAlignMenu"); + menu->setCheckable(true); + menu->insertItem(SmallIconSet("align_top", 16), i18n("Align Top"), Qt::AlignTop); + menu->insertItem(SmallIconSet("align_vcenter", 16), i18n("Align Vertical Center"), Qt::AlignVCenter); + menu->insertItem(SmallIconSet("align_bottom", 16), i18n("Align Bottom"), Qt::AlignBottom); + m_mainWidget->m_vAlignButton->setPopup(menu); + connect(menu, SIGNAL(activated(int)), this, SLOT(setVerticalAlign(int))); + connect(m_mainWidget->m_vAlignButton, SIGNAL(clicked()), this, SLOT(showVAlignPopup())); + + connect(m_mainWidget->m_fontCombo, SIGNAL(activated(int)), this, SLOT(updateFormating())); + connect(m_mainWidget->m_fontSizeCombo, SIGNAL(activated(int)), this, SLOT(updateFormating())); + connect(m_mainWidget->m_boldButton, SIGNAL(clicked()), this, SLOT(updateFormating())); + connect(m_mainWidget->m_italicsButton, SIGNAL(clicked()), this, SLOT(updateFormating())); + connect(m_mainWidget->m_underLineButton, SIGNAL(clicked()), this, SLOT(updateFormating())); + connect(m_mainWidget->m_textColorButton, SIGNAL(clicked()), this, SLOT(updateFormating())); + + m_mainWidget->m_textArea->setFocus(); +} + +StencilTextEditor::~StencilTextEditor() +{ +} + +void StencilTextEditor::setFont(const QFont& font) +{ + m_mainWidget->m_textArea->setFont(font); + m_mainWidget->m_fontCombo->setCurrentFont(font.family()); + m_mainWidget->m_fontSizeCombo->setCurrentText(QString::number(font.pointSize())); + m_mainWidget->m_boldButton->setOn(font.bold()); + m_mainWidget->m_italicsButton->setOn(font.italic()); + m_mainWidget->m_underLineButton->setOn(font.underline()); +} + +void StencilTextEditor::setFontColor(const QColor& color) +{ + m_mainWidget->m_textArea->setPaletteForegroundColor(color); + m_mainWidget->m_textColorButton->setColor(color); +} + +void StencilTextEditor::setBackgroundColor(const QColor& color) +{ + m_mainWidget->m_textArea->setPaletteBackgroundColor(color); +} + +void StencilTextEditor::setHorizontalAlign(int flag) +{ + if(m_hAlign >= 0) { + m_mainWidget->m_hAlignButton->popup()->setItemChecked(m_hAlign, false); + } + + m_mainWidget->m_hAlignButton->popup()->setItemChecked(flag, true); + m_mainWidget->m_hAlignButton->setIconSet(*(m_mainWidget->m_hAlignButton->popup()->iconSet(flag))); + m_mainWidget->m_textArea->setAlignment(flag|verticalAlignment()); + m_hAlign = flag; +} + +void StencilTextEditor::setVerticalAlign(int flag) +{ + if(m_vAlign >= 0) { + m_mainWidget->m_vAlignButton->popup()->setItemChecked(m_vAlign, false); + } + + m_mainWidget->m_vAlignButton->popup()->setItemChecked(flag, true); + m_mainWidget->m_vAlignButton->setIconSet(*(m_mainWidget->m_vAlignButton->popup()->iconSet(flag))); + m_mainWidget->m_textArea->setAlignment(flag|horizontalAlignment()); + m_vAlign = flag; +} + +QFont StencilTextEditor::font() const +{ + QFont font; + font.setFamily(m_mainWidget->m_fontCombo->currentFont()); + font.setPointSize(m_mainWidget->m_fontSizeCombo->currentText().toInt()); + font.setBold(m_mainWidget->m_boldButton->isOn()); + font.setItalic(m_mainWidget->m_italicsButton->isOn()); + font.setUnderline(m_mainWidget->m_underLineButton->isOn()); + + return font; +} + +QColor StencilTextEditor::fontColor() const +{ + return m_mainWidget->m_textColorButton->color(); +} + +Qt::AlignmentFlags StencilTextEditor::horizontalAlignment() const +{ + return static_cast<Qt::AlignmentFlags>(m_hAlign); +} + +Qt::AlignmentFlags StencilTextEditor::verticalAlignment() const +{ + return static_cast<Qt::AlignmentFlags>(m_vAlign); +} + +void StencilTextEditor::setText(const QString& text) +{ + m_mainWidget->m_textArea->setText(text); +} + +QString StencilTextEditor::text() const +{ + return m_mainWidget->m_textArea->text(); +} + +void StencilTextEditor::updateFormating() +{ + m_mainWidget->m_textArea->setFont(font()); + + m_mainWidget->m_textArea->setPaletteForegroundColor(fontColor()); + + + m_mainWidget->m_textArea->selectAll(true); + m_mainWidget->m_textArea->setAlignment(horizontalAlignment()|verticalAlignment()); + m_mainWidget->m_textArea->selectAll(false); + + m_mainWidget->m_textArea->setFocus(); +} + +void StencilTextEditor::showHAlignPopup() +{ + m_mainWidget->m_hAlignButton->openPopup(); +} + +void StencilTextEditor::showVAlignPopup() +{ + m_mainWidget->m_vAlignButton->openPopup(); +} + +} + +#include "stenciltexteditor.moc" |