From 8362bf63dea22bbf6736609b0f49c152f975eb63 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 20 Jan 2010 01:29:50 +0000 Subject: 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 --- lib/kofficeui/KoZoomAction.cpp | 115 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 lib/kofficeui/KoZoomAction.cpp (limited to 'lib/kofficeui/KoZoomAction.cpp') diff --git a/lib/kofficeui/KoZoomAction.cpp b/lib/kofficeui/KoZoomAction.cpp new file mode 100644 index 000000000..5f53f007d --- /dev/null +++ b/lib/kofficeui/KoZoomAction.cpp @@ -0,0 +1,115 @@ +/* This file is part of the KDE libraries + Copyright (C) 2004 Ariya Hidayat + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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 + +#include +#include +#include +#include + +#include + +KoZoomAction::KoZoomAction( const QString& text, const QIconSet& pix, + const KShortcut& cut, QObject* parent, const char* name ): + KSelectAction( text, pix, cut, parent, name ) +{ + init(); +} + +KoZoomAction::KoZoomAction( const QString& text, const QString& pix, + const KShortcut& cut, QObject* parent, const char* name ): + KSelectAction( text, pix, cut, parent, name ) +{ + init(); + +} + +void KoZoomAction::setZoom( const QString& text ) +{ + bool ok = false; + QString t = text; + int zoom = t.remove( '%' ).toInt( &ok ); + + // where we'll store sorted new zoom values + QValueList list; + if( zoom > 10 ) list.append( zoom ); + + // "Captured" non-empty sequence of digits + QRegExp regexp("(\\d+)"); + + const QStringList itemsList( items() ); + for( QStringList::ConstIterator it = itemsList.begin(); it != itemsList.end(); ++it ) + { + regexp.search( *it ); + const int val=regexp.cap(1).toInt( &ok ); + + //zoom : limit inferior=10 + if( ok && val>9 && list.contains( val )==0 ) + list.append( val ); + } + + qHeapSort( list ); + + // update items with new sorted zoom values + QStringList values; + for (QValueList::Iterator it = list.begin(); it != list.end(); ++it ) + values.append( i18n("%1%").arg(*it) ); + setItems( values ); + + QString zoomStr = i18n("%1%").arg( zoom ); + setCurrentItem( values.findIndex( zoomStr ) ); +} + +void KoZoomAction::setZoom( int zoom ) +{ + setZoom( QString::number( zoom ) ); +} + +void KoZoomAction::activated( const QString& text ) +{ + setZoom( text ); + emit zoomChanged( text ); +} + +void KoZoomAction::init() +{ + setEditable( true ); + + QStringList values; + values << i18n("%1%").arg("33"); + values << i18n("%1%").arg("50"); + values << i18n("%1%").arg("75"); + values << i18n("%1%").arg("100"); + values << i18n("%1%").arg("125"); + values << i18n("%1%").arg("150"); + values << i18n("%1%").arg("200"); + values << i18n("%1%").arg("250"); + values << i18n("%1%").arg("350"); + values << i18n("%1%").arg("400"); + values << i18n("%1%").arg("450"); + values << i18n("%1%").arg("500"); + setItems( values ); + + setCurrentItem( values.findIndex( i18n("%1%").arg( 100 ) ) ); + + connect( this, SIGNAL( activated( const QString& ) ), + SLOT( activated( const QString& ) ) ); +} + +#include "KoZoomAction.moc" -- cgit v1.2.3