You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
4.3 KiB
186 lines
4.3 KiB
/* ============================================================
|
|
*
|
|
* This file is a part of digiKam project
|
|
* http://www.digikam.org
|
|
*
|
|
* Date : 2005-02-06
|
|
* Description : undo actions manager for image editor.
|
|
*
|
|
* Copyright (C) 2005 by Renchi Raju <renchi@pooh.tam.uiuc.edu>
|
|
* Copyright (C) 2005 by Joern Ahrens <joern.ahrens@kdemail.net>
|
|
*
|
|
* 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.
|
|
*
|
|
* ============================================================ */
|
|
|
|
// Local includes.
|
|
|
|
#include "ddebug.h"
|
|
#include "dimginterface.h"
|
|
#include "undoaction.h"
|
|
|
|
namespace Digikam
|
|
{
|
|
|
|
UndoAction::UndoAction(DImgInterface* iface)
|
|
: m_iface(iface)
|
|
{
|
|
m_title = i18n("unknown");
|
|
}
|
|
|
|
UndoAction::~UndoAction()
|
|
{
|
|
}
|
|
|
|
TQString UndoAction::getTitle() const
|
|
{
|
|
return m_title;
|
|
}
|
|
|
|
UndoActionRotate::UndoActionRotate(DImgInterface* iface,
|
|
UndoActionRotate::Angle angle)
|
|
: UndoAction(iface), m_angle(angle)
|
|
{
|
|
switch(m_angle)
|
|
{
|
|
case(R90):
|
|
m_title = i18n("Rotate 90 Degrees");
|
|
break;
|
|
case(R180):
|
|
m_title = i18n("Rotate 180 Degrees");
|
|
break;
|
|
case(R270):
|
|
m_title = i18n("Rotate 270 Degrees");
|
|
break;
|
|
}
|
|
}
|
|
|
|
UndoActionRotate::~UndoActionRotate()
|
|
{
|
|
}
|
|
|
|
void UndoActionRotate::rollBack()
|
|
{
|
|
switch(m_angle)
|
|
{
|
|
case(R90):
|
|
m_iface->rotate270(false);
|
|
return;
|
|
case(R180):
|
|
m_iface->rotate180(false);
|
|
return;
|
|
case(R270):
|
|
m_iface->rotate90(false);
|
|
return;
|
|
default:
|
|
DWarning() << "Unknown rotate angle specified" << endl;
|
|
}
|
|
}
|
|
|
|
void UndoActionRotate::execute()
|
|
{
|
|
switch(m_angle)
|
|
{
|
|
case R90:
|
|
m_iface->rotate90(false);
|
|
return;
|
|
case R180:
|
|
m_iface->rotate180(false);
|
|
return;
|
|
case R270:
|
|
m_iface->rotate270(false);
|
|
return;
|
|
default:
|
|
DWarning() << "Unknown rotate angle specified" << endl;
|
|
}
|
|
}
|
|
|
|
UndoActionFlip::UndoActionFlip(DImgInterface* iface,
|
|
UndoActionFlip::Direction dir)
|
|
: UndoAction(iface), m_dir(dir)
|
|
{
|
|
if(m_dir ==TQt::Horizontal)
|
|
m_title = i18n("Flip Horizontal");
|
|
else if(m_dir ==TQt::Vertical)
|
|
m_title = i18n("Flip Vertical");
|
|
}
|
|
|
|
UndoActionFlip::~UndoActionFlip()
|
|
{
|
|
}
|
|
|
|
void UndoActionFlip::rollBack()
|
|
{
|
|
switch(m_dir)
|
|
{
|
|
case TQt::Horizontal:
|
|
m_iface->flipHoriz(false);
|
|
return;
|
|
case TQt::Vertical:
|
|
m_iface->flipVert(false);
|
|
return;
|
|
default:
|
|
DWarning() << "Unknown flip direction specified" << endl;
|
|
}
|
|
}
|
|
|
|
void UndoActionFlip::execute()
|
|
{
|
|
rollBack();
|
|
}
|
|
|
|
UndoActionBCG::UndoActionBCG(DImgInterface* iface,
|
|
double oldGamma, double oldBrightness,
|
|
double oldContrast, double newGamma,
|
|
double newBrightness, double newContrast)
|
|
: UndoAction(iface), m_oldGamma(oldGamma), m_oldBrightness(oldBrightness),
|
|
m_oldContrast(oldContrast), m_newGamma(newGamma), m_newBrightness(newBrightness),
|
|
m_newContrast(newContrast)
|
|
{
|
|
m_title = i18n("Brightness,Contrast,Gamma");
|
|
}
|
|
|
|
UndoActionBCG::~UndoActionBCG()
|
|
{
|
|
}
|
|
|
|
void UndoActionBCG::rollBack()
|
|
{
|
|
m_iface->changeBCG(m_oldGamma, m_oldBrightness, m_oldContrast);
|
|
}
|
|
|
|
void UndoActionBCG::execute()
|
|
{
|
|
m_iface->changeBCG(m_newGamma, m_newBrightness, m_newContrast);
|
|
}
|
|
|
|
UndoActionIrreversible::UndoActionIrreversible(DImgInterface* iface,
|
|
const TQString &title)
|
|
: UndoAction(iface)
|
|
{
|
|
m_title = title;
|
|
}
|
|
|
|
UndoActionIrreversible::~UndoActionIrreversible()
|
|
{
|
|
}
|
|
|
|
void UndoActionIrreversible::rollBack()
|
|
{
|
|
}
|
|
|
|
void UndoActionIrreversible::execute()
|
|
{
|
|
}
|
|
|
|
} // namespace Digikam
|