/* * Copyright (C) 2015-2016 Département de l'Instruction Publique (DIP-SEM) * * Copyright (C) 2013 Open Education Foundation * * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour * l'Education Numérique en Afrique (GIP ENA) * * This file is part of OpenBoard. * * OpenBoard 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, version 3 of the License, * 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). * * OpenBoard 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 OpenBoard. If not, see . */ #include "UBDesktopPropertyPalette.h" #include "core/UBApplication.h" #include "board/UBBoardController.h" #include "board/UBDrawingController.h" #include "gui/UBMainWindow.h" #include "gui/UBToolbarButtonGroup.h" #include "gui/UBRightPalette.h" #include "core/memcheck.h" UBDesktopPropertyPalette::UBDesktopPropertyPalette(QWidget *parent, UBRightPalette* _rightPalette) :UBPropertyPalette(Qt::Horizontal, parent) ,rightPalette(_rightPalette) {} int UBDesktopPropertyPalette::getParentRightOffset() { return rightPalette->width(); } UBDesktopPenPalette::UBDesktopPenPalette(QWidget *parent, UBRightPalette* rightPalette) : UBDesktopPropertyPalette(parent, rightPalette) { // Setup color choice widget QList colorActions; colorActions.append(UBApplication::mainWindow->actionColor0); colorActions.append(UBApplication::mainWindow->actionColor1); colorActions.append(UBApplication::mainWindow->actionColor2); colorActions.append(UBApplication::mainWindow->actionColor3); colorActions.append(UBApplication::mainWindow->actionColor4); UBToolbarButtonGroup *colorChoice = new UBToolbarButtonGroup(UBApplication::mainWindow->boardToolBar, colorActions); colorChoice->displayText(false); //connect(colorChoice, SIGNAL(activated(int)), this, SLOT(UBApplication::boardController->setColorIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(colorIndexChanged(int)), colorChoice, SLOT(setCurrentIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(colorIndexChanged(int)), this, SLOT(close())); connect(UBDrawingController::drawingController(), SIGNAL(colorPaletteChanged()), colorChoice, SLOT(colorPaletteChanged())); connect(UBDrawingController::drawingController(), SIGNAL(colorPaletteChanged()), this, SLOT(close())); layout()->addWidget(colorChoice); // Setup line width choice widget QList lineWidthActions; lineWidthActions.append(UBApplication::mainWindow->actionLineSmall); lineWidthActions.append(UBApplication::mainWindow->actionLineMedium); lineWidthActions.append(UBApplication::mainWindow->actionLineLarge); UBToolbarButtonGroup *lineWidthChoice = new UBToolbarButtonGroup(UBApplication::mainWindow->boardToolBar, lineWidthActions); lineWidthChoice->displayText(false); connect(lineWidthChoice, SIGNAL(activated(int)), UBDrawingController::drawingController(), SLOT(setLineWidthIndex(int))); connect(lineWidthChoice, SIGNAL(activated(int)), this, SLOT(close())); connect(UBDrawingController::drawingController(), SIGNAL(lineWidthIndexChanged(int)), lineWidthChoice, SLOT(setCurrentIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(lineWidthIndexChanged(int)), this, SLOT(close())); onParentMaximized(); layout()->addWidget(lineWidthChoice); } void UBDesktopPenPalette::onButtonReleased() { close(); } /** * \brief Disconnect the released event of the buttons */ void UBDesktopPenPalette::onParentMinimized() { for(int i = 0; i < mButtons.size(); i++) { disconnect(mButtons.at(i), SIGNAL(released()), this, SLOT(onButtonReleased())); } } /** * \brief Connect the released event of the buttons */ void UBDesktopPenPalette::onParentMaximized() { for(int i = 0; i < mButtons.size(); i++) { connect(mButtons.at(i), SIGNAL(released()), this, SLOT(onButtonReleased())); } } UBDesktopEraserPalette::UBDesktopEraserPalette(QWidget *parent, UBRightPalette* rightPalette) : UBDesktopPropertyPalette(parent, rightPalette) { // Setup eraser width choice widget QList eraserWidthActions; eraserWidthActions.append(UBApplication::mainWindow->actionEraserSmall); eraserWidthActions.append(UBApplication::mainWindow->actionEraserMedium); eraserWidthActions.append(UBApplication::mainWindow->actionEraserLarge); UBToolbarButtonGroup *eraserWidthChoice = new UBToolbarButtonGroup(UBApplication::mainWindow->boardToolBar, eraserWidthActions); connect(eraserWidthChoice, SIGNAL(activated(int)), UBDrawingController::drawingController(), SLOT(setEraserWidthIndex(int))); connect(eraserWidthChoice, SIGNAL(activated(int)), this, SLOT(close())); connect(UBApplication::mainWindow->actionEraseDesktopAnnotations, SIGNAL(triggered()), this, SLOT(close())); eraserWidthChoice->displayText(false); eraserWidthChoice->setCurrentIndex(UBSettings::settings()->eraserWidthIndex()); layout()->addWidget(eraserWidthChoice); addAction(UBApplication::mainWindow->actionEraseDesktopAnnotations); } UBDesktopMarkerPalette::UBDesktopMarkerPalette(QWidget *parent, UBRightPalette* rightPalette) : UBDesktopPropertyPalette(parent, rightPalette) { // Setup color choice widget QList colorActions; colorActions.append(UBApplication::mainWindow->actionColor0); colorActions.append(UBApplication::mainWindow->actionColor1); colorActions.append(UBApplication::mainWindow->actionColor2); colorActions.append(UBApplication::mainWindow->actionColor3); colorActions.append(UBApplication::mainWindow->actionColor4); UBToolbarButtonGroup *colorChoice = new UBToolbarButtonGroup(UBApplication::mainWindow->boardToolBar, colorActions); colorChoice->displayText(false); //connect(colorChoice, SIGNAL(activated(int)), this, SLOT(UBApplication::boardController->setColorIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(colorIndexChanged(int)), colorChoice, SLOT(setCurrentIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(colorIndexChanged(int)), this, SLOT(close())); connect(UBDrawingController::drawingController(), SIGNAL(colorPaletteChanged()), colorChoice, SLOT(colorPaletteChanged())); connect(UBDrawingController::drawingController(), SIGNAL(colorPaletteChanged()), this, SLOT(close())); layout()->addWidget(colorChoice); // Setup line width choice widget QList lineWidthActions; lineWidthActions.append(UBApplication::mainWindow->actionLineSmall); lineWidthActions.append(UBApplication::mainWindow->actionLineMedium); lineWidthActions.append(UBApplication::mainWindow->actionLineLarge); UBToolbarButtonGroup *lineWidthChoice = new UBToolbarButtonGroup(UBApplication::mainWindow->boardToolBar, lineWidthActions); lineWidthChoice->displayText(false); connect(lineWidthChoice, SIGNAL(activated(int)), UBDrawingController::drawingController(), SLOT(setLineWidthIndex(int))); connect(lineWidthChoice, SIGNAL(activated(int)), this, SLOT(close())); connect(UBDrawingController::drawingController(), SIGNAL(lineWidthIndexChanged(int)), lineWidthChoice, SLOT(setCurrentIndex(int))); connect(UBDrawingController::drawingController(), SIGNAL(lineWidthIndexChanged(int)), this, SLOT(close())); layout()->addWidget(lineWidthChoice); }