File indexing completed on 2024-05-12 16:36:45

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2009 Alexia Allanic <alexia_allanic@yahoo.fr>
0003  * Copyright (C) 2009 Jérémy Lugagne <jejewindsurf@hotmail.com>
0004  * Copyright (C) 2009 Thorsten Zachmann <zachmann@kde.org>
0005  *
0006  * This library is free software; you can redistribute it and/or
0007  * modify it under the terms of the GNU Library General Public
0008  * License as published by the Free Software Foundation; either
0009  * version 2 of the License, or (at your option) any later version.
0010  *
0011  * This library is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014  * Library General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU Library General Public License
0017  * along with this library; see the file COPYING.LIB.  If not, write to
0018  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0019  * Boston, MA 02110-1301, USA.
0020  */
0021 #include "KPrPresentationDrawStrategy.h"
0022 
0023 #include <QKeyEvent>
0024 #include <QApplication>
0025 #include <QStandardPaths>
0026 
0027 #include <KoPACanvasBase.h>
0028 
0029 #include "KPrPresentationTool.h"
0030 #include "KPrPresentationDrawWidget.h"
0031 
0032 KPrPresentationDrawStrategy::KPrPresentationDrawStrategy( KPrPresentationTool * tool )
0033 : KPrPresentationStrategyBase( tool )
0034 {
0035     m_widget = new KPrPresentationDrawWidget(canvas());
0036     QPixmap pix(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "calligrastage/cursors/pen.png"));
0037     const qreal factor = 1.2;
0038     const int oldWidth = pix.width();
0039     const int oldHeight = pix.height();
0040     pix = pix.scaled(oldWidth*factor, oldHeight*factor);
0041     QCursor cur(pix);
0042     QApplication::setOverrideCursor(cur);
0043 
0044     setToolWidgetParent( m_widget );
0045     m_widget->show();
0046     m_widget->installEventFilter( m_tool );
0047 }
0048 
0049 KPrPresentationDrawStrategy::~KPrPresentationDrawStrategy()
0050 {
0051     setToolWidgetParent( canvas()->canvasWidget() );
0052     QApplication::restoreOverrideCursor();
0053 }
0054 
0055 bool KPrPresentationDrawStrategy::keyPressEvent( QKeyEvent * event )
0056 {
0057     bool handled = true;
0058     switch ( event->key() )
0059     {
0060         case Qt::Key_Escape:
0061             activateDefaultStrategy();
0062             break;
0063         case Qt::Key_H:
0064             handled = false;
0065             break;
0066     }
0067     return handled;
0068 }