diff options
Diffstat (limited to 'src/imageplugins/inpainting/imageplugin_inpainting.cpp')
-rw-r--r-- | src/imageplugins/inpainting/imageplugin_inpainting.cpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/imageplugins/inpainting/imageplugin_inpainting.cpp b/src/imageplugins/inpainting/imageplugin_inpainting.cpp new file mode 100644 index 00000000..2c1e30f3 --- /dev/null +++ b/src/imageplugins/inpainting/imageplugin_inpainting.cpp @@ -0,0 +1,97 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date : 2005-03-30 + * Description : a digiKam image editor plugin to inpaint + * a photograph + * + * Copyright (C) 2005-2009 by Gilles Caulier <caulier dot gilles at gmail dot com> + * + * 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, 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. + * + * ============================================================ */ + +// KDE includes. + +#include <tdelocale.h> +#include <kgenericfactory.h> +#include <klibloader.h> +#include <tdeaction.h> +#include <kcursor.h> +#include <tdeapplication.h> + +// Local includes. + +#include "ddebug.h" +#include "imageiface.h" +#include "inpaintingtool.h" +#include "imageplugin_inpainting.h" +#include "imageplugin_inpainting.moc" + +using namespace DigikamInPaintingImagesPlugin; +using namespace Digikam; + +K_EXPORT_COMPONENT_FACTORY(digikamimageplugin_inpainting, + KGenericFactory<ImagePlugin_InPainting>("digikamimageplugin_inpainting")); + +ImagePlugin_InPainting::ImagePlugin_InPainting(TQObject *parent, const char*, const TQStringList &) + : Digikam::ImagePlugin(parent, "ImagePlugin_InPainting") +{ + m_inPaintingAction = new TDEAction(i18n("Inpainting..."), "inpainting", + CTRL+Key_E, + this, TQ_SLOT(slotInPainting()), + actionCollection(), "imageplugin_inpainting"); + + m_inPaintingAction->setWhatsThis( i18n( "This filter can be used to inpaint a part in a photo. " + "Select a region to inpaint to use this option.") ); + + setXMLFile( "digikamimageplugin_inpainting_ui.rc" ); + + DDebug() << "ImagePlugin_InPainting plugin loaded" << endl; +} + +ImagePlugin_InPainting::~ImagePlugin_InPainting() +{ +} + +void ImagePlugin_InPainting::setEnabledActions(bool enable) +{ + m_inPaintingAction->setEnabled(enable); +} + +void ImagePlugin_InPainting::slotInPainting() +{ + + ImageIface iface(0, 0); + + int w = iface.selectedWidth(); + int h = iface.selectedHeight(); + + if (!w || !h) + { + InPaintingPassivePopup* popup = new InPaintingPassivePopup(kapp->activeWindow()); + popup->setView(i18n("Inpainting Photograph Tool"), + i18n("You need to select a region to inpaint to use " + "this tool")); + popup->setAutoDelete(true); + popup->setTimeout(2500); + popup->show(); + return; + } + + // -- run the dlg ---------------------------------------------- + + InPaintingTool *tool = new InPaintingTool(this); + loadTool(tool); +} |