diff options
Diffstat (limited to 'src/gui/editors/matrix/MatrixEraser.cpp')
-rw-r--r-- | src/gui/editors/matrix/MatrixEraser.cpp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/gui/editors/matrix/MatrixEraser.cpp b/src/gui/editors/matrix/MatrixEraser.cpp new file mode 100644 index 0000000..6c2373e --- /dev/null +++ b/src/gui/editors/matrix/MatrixEraser.cpp @@ -0,0 +1,110 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Rosegarden + A MIDI and audio sequencer and musical notation editor. + + This program is Copyright 2000-2008 + Guillaume Laurent <[email protected]>, + Chris Cannam <[email protected]>, + Richard Bown <[email protected]> + + The moral rights of Guillaume Laurent, Chris Cannam, and Richard + Bown to claim authorship of this work have been asserted. + + Other copyrights also apply to some parts of this work. Please + see the AUTHORS file and individual file headers for details. + + 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. See the file + COPYING included with this distribution for more information. +*/ + + +#include "MatrixEraser.h" +#include "misc/Debug.h" + +#include <klocale.h> +#include <kstddirs.h> +#include "base/ViewElement.h" +#include "commands/matrix/MatrixEraseCommand.h" +#include "gui/general/EditTool.h" +#include "MatrixStaff.h" +#include "MatrixTool.h" +#include "MatrixView.h" +#include <kaction.h> +#include <kglobal.h> +#include <qiconset.h> +#include <qstring.h> + + +namespace Rosegarden +{ + +MatrixEraser::MatrixEraser(MatrixView* parent) + : MatrixTool("MatrixEraser", parent), + m_currentStaff(0) +{ + QString pixmapDir = KGlobal::dirs()->findResource("appdata", "pixmaps/"); + QCanvasPixmap pixmap(pixmapDir + "/toolbar/select.xpm"); + QIconSet icon = QIconSet(pixmap); + + new KAction(i18n("Switch to Select Tool"), icon, 0, this, + SLOT(slotSelectSelected()), actionCollection(), + "select"); + + new KAction(i18n("Switch to Draw Tool"), "pencil", 0, this, + SLOT(slotDrawSelected()), actionCollection(), + "draw"); + + new KAction(i18n("Switch to Move Tool"), "move", 0, this, + SLOT(slotMoveSelected()), actionCollection(), + "move"); + + pixmap.load(pixmapDir + "/toolbar/resize.xpm"); + icon = QIconSet(pixmap); + new KAction(i18n("Switch to Resize Tool"), icon, 0, this, + SLOT(slotResizeSelected()), actionCollection(), + "resize"); + + createMenu("matrixeraser.rc"); +} + +void MatrixEraser::handleLeftButtonPress(timeT, + int, + int staffNo, + QMouseEvent*, + ViewElement* el) +{ + MATRIX_DEBUG << "MatrixEraser::handleLeftButtonPress : el = " + << el << endl; + + if (!el) + return ; // nothing to erase + + m_currentStaff = m_mParentView->getStaff(staffNo); + + MatrixEraseCommand* command = + new MatrixEraseCommand(m_currentStaff->getSegment(), el->event()); + + m_mParentView->addCommandToHistory(command); + + m_mParentView->update(); +} + +void MatrixEraser::ready() +{ + m_mParentView->setCanvasCursor(Qt::pointingHandCursor); + setBasicContextHelp(); +} + +void MatrixEraser::setBasicContextHelp() +{ + setContextHelp(i18n("Click on a note to delete it")); +} + +const QString MatrixEraser::ToolName = "eraser"; + +} |