/* * Copyright (C) 2012 Webdoc SA * * This file is part of Open-Sankoré. * * Open-Sankoré 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, version 2, * with a specific linking exception for the OpenSSL project's * "OpenSSL" library (or with modified versions of it that use the * same license as the "OpenSSL" library). * * Open-Sankoré 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 Open-Sankoré; if not, see * . */ #include "UBStylusPalette.h" #include #include "UBMainWindow.h" #include "core/UBApplication.h" #include "core/UBSettings.h" #include "core/UBApplicationController.h" #include "board/UBDrawingController.h" #include "frameworks/UBPlatformUtils.h" #include "core/memcheck.h" UBStylusPalette::UBStylusPalette(QWidget *parent, Qt::Orientation orient) : UBActionPalette(Qt::TopLeftCorner, parent, orient) , mLastSelectedId(-1) { QList actions; actions << UBApplication::mainWindow->actionPen; actions << UBApplication::mainWindow->actionEraser; actions << UBApplication::mainWindow->actionMarker; actions << UBApplication::mainWindow->actionSelector; actions << UBApplication::mainWindow->actionPlay; actions << UBApplication::mainWindow->actionHand; actions << UBApplication::mainWindow->actionZoomIn; actions << UBApplication::mainWindow->actionZoomOut; actions << UBApplication::mainWindow->actionPointer; actions << UBApplication::mainWindow->actionLine; actions << UBApplication::mainWindow->actionText; actions << UBApplication::mainWindow->actionCapture; if(UBPlatformUtils::hasVirtualKeyboard()) actions << UBApplication::mainWindow->actionVirtualKeyboard; setActions(actions); setButtonIconSize(QSize(42, 42)); if(!UBPlatformUtils::hasVirtualKeyboard()) { groupActions(); } else { // VirtualKeyboard action is not in group // So, groupping all buttons, except last mButtonGroup = new QButtonGroup(this); for(int i=0; i < mButtons.size()-1; i++) { mButtonGroup->addButton(mButtons[i], i); } connect(mButtonGroup, SIGNAL(buttonClicked(int)), this, SIGNAL(buttonGroupClicked(int))); } adjustSizeAndPosition(); initPosition(); foreach(const UBActionPaletteButton* button, mButtons) { connect(button, SIGNAL(doubleClicked()), this, SLOT(stylusToolDoubleClicked())); } } void UBStylusPalette::initPosition() { if(!UBSettings::settings()->appToolBarOrientationVertical->get().toBool()) { QWidget* pParentW = parentWidget(); if(NULL != pParentW) { mCustomPosition = true; QPoint pos; int parentWidth = pParentW->width(); int parentHeight = pParentW->height(); int posX = (parentWidth / 2) - (width() / 2); int posY = parentHeight - border() - height(); pos.setX(posX); pos.setY(posY); moveInsideParent(pos); } } } UBStylusPalette::~UBStylusPalette() { } void UBStylusPalette::stylusToolDoubleClicked() { emit stylusToolDoubleClicked(mButtonGroup->checkedId()); }