mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 02:42:51 +00:00
88 lines
3.2 KiB
C++
88 lines
3.2 KiB
C++
/*************************************************************************************
|
|
* Copyright (C) 2008-2011 by Aleix Pol <aleixpol@kde.org> *
|
|
* Copyright (C) 2008-2011 by Alex Fiestas <alex@eyeos.org> *
|
|
* *
|
|
* 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. *
|
|
* *
|
|
* This program 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 this program; if not, write to the Free Software *
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
|
|
*************************************************************************************/
|
|
|
|
#include "photoshootmode.h"
|
|
#include "kamoso.h"
|
|
#include "countdownwidget.h"
|
|
|
|
#include <KIcon>
|
|
#include <KLocalizedString>
|
|
|
|
#include <QAction>
|
|
#include <QPushButton>
|
|
#include "devicemanager.h"
|
|
|
|
PhotoShootMode::PhotoShootMode(Kamoso* camera)
|
|
: ShootMode(camera)
|
|
{
|
|
QAction* flash=new QAction(KIcon("weather-clear"), i18n("Use Flash"), this);
|
|
flash->setCheckable(true);
|
|
flash->setChecked(controller()->isFlashEnabled());
|
|
connect(flash, SIGNAL(triggered(bool)), controller(), SLOT(setFlashEnabled(bool)));
|
|
mActions += flash;
|
|
}
|
|
|
|
void PhotoShootMode::deactivate()
|
|
{
|
|
controller()->stopCountdown();
|
|
disconnect(controller()->countdown(), SIGNAL(finished()),this ,SLOT(release()));
|
|
}
|
|
|
|
QWidget* PhotoShootMode::mainAction()
|
|
{
|
|
mTrigger = new QPushButton(controller());
|
|
mTrigger->setIcon(icon());
|
|
mTrigger->setIconSize(QSize(32,32));
|
|
mTrigger->setToolTip(name());
|
|
mTrigger->setCheckable(true);
|
|
mTrigger->setShortcut(Qt::Key_WebCam);
|
|
|
|
connect(controller()->countdown(), SIGNAL(finished()), SLOT(release()));
|
|
connect(mTrigger, SIGNAL(clicked(bool)), this, SLOT(shootClicked(bool)));
|
|
return mTrigger;
|
|
}
|
|
|
|
void PhotoShootMode::release()
|
|
{
|
|
mTrigger->setChecked(false);
|
|
}
|
|
|
|
void PhotoShootMode::shootClicked(bool pressed)
|
|
{
|
|
if(pressed && DeviceManager::self()->hasDevices()) {
|
|
controller()->startCountdown();
|
|
} else {
|
|
controller()->stopCountdown();
|
|
}
|
|
}
|
|
|
|
QIcon PhotoShootMode::icon() const
|
|
{
|
|
return KIcon("camera-web");
|
|
}
|
|
|
|
QString PhotoShootMode::name() const
|
|
{
|
|
return i18n("Take pictures");
|
|
}
|
|
|
|
QStringList PhotoShootMode::thumbnailsViewMimeTypes() const
|
|
{
|
|
return QStringList() << "image/png";
|
|
}
|