/* * dlg_rotateimage.cc - part of KimageShop^WKrayon^WChalk * * Copyright (c) 2004 Michael Thaler * * 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 #include #include using namespace std; #include #include #include #include #include #include #include #include "dlg_rotateimage.h" #include "wdg_rotateimage.h" DlgRotateImage::DlgRotateImage( TQWidget * parent, const char * name) : super (parent, name, true, i18n("Rotate Image"), Ok | Cancel, Ok) { m_lock = false; m_page = new WdgRotateImage(this, "rotate_image"); TQ_CHECK_PTR(m_page); setMainWidget(m_page); resize(m_page->sizeHint()); connect(this, TQT_SIGNAL(okClicked()), this, TQT_SLOT(okClicked())); connect( m_page->doubleCustom, TQT_SIGNAL( valueChanged ( double ) ), this, TQT_SLOT( slotAngleValueChanged( double ) ) ); } DlgRotateImage::~DlgRotateImage() { delete m_page; } void DlgRotateImage::slotAngleValueChanged( double ) { m_page->radioCustom->setChecked(true); } void DlgRotateImage::setAngle(double angle) { if (angle == 90) { m_page->radio90->setChecked(true); } else if (angle == 180) { m_page->radio180->setChecked(true); } else if (angle == 270) { m_page->radio270->setChecked(true); } else { m_page->radioCustom->setChecked(true); m_page->doubleCustom->setValue(angle); } if (m_oldAngle != angle) resetPreview(); m_oldAngle = angle; } double DlgRotateImage::angle() { double angle = 0; if (m_page->radio90->isChecked()) { angle = 90; } else if (m_page->radio180->isChecked()) { angle = 180; } else if (m_page->radio270->isChecked()) { angle = 270; } else { angle = tqRound(m_page->doubleCustom->value()); } if (m_page->radioCW->isChecked()) { return angle; } else { return -angle; } } void DlgRotateImage::setDirection (enumRotationDirection direction) { if (direction == CLOCKWISE) { m_page->radioCW->setChecked(true); } else if (direction== COUNTERCLOCKWISE) { m_page->radioCCW->setChecked(true); } } enumRotationDirection DlgRotateImage::direction() { if (m_page->radioCCW->isChecked()) { return COUNTERCLOCKWISE; } else { return CLOCKWISE; } } void DlgRotateImage::okClicked() { accept(); } void DlgRotateImage::resetPreview() { // Code to update preview here. } #include "dlg_rotateimage.moc"