diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch) | |
tree | d3bb9f5d25a2dc09ca81adecf39621d871534297 /kmplot/kmplot/coordsconfigdialog.cpp | |
download | tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmplot/kmplot/coordsconfigdialog.cpp')
-rw-r--r-- | kmplot/kmplot/coordsconfigdialog.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/kmplot/kmplot/coordsconfigdialog.cpp b/kmplot/kmplot/coordsconfigdialog.cpp new file mode 100644 index 00000000..bc6df41e --- /dev/null +++ b/kmplot/kmplot/coordsconfigdialog.cpp @@ -0,0 +1,90 @@ +/* +* KmPlot - a math. function plotter for the KDE-Desktop +* +* Copyright (C) 2004 Fredrik Edemar +* f_edemar@linux.se +* +* This file is part of the KDE Project. +* KmPlot is part of the KDE-EDU Project. +* +* 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 <klocale.h> +#include <klineedit.h> +#include <kmessagebox.h> +#include <qradiobutton.h> + +#include "settings.h" +#include "settingspagecoords.h" +#include "coordsconfigdialog.h" + +CoordsConfigDialog::CoordsConfigDialog(XParser *p, QWidget *parent) + : KConfigDialog(parent, "coords", Settings::self()), m_parser(p) +{ + configAxesDialog = new SettingsPageCoords( 0, "coordsSettings" ); + addPage(configAxesDialog , i18n( "Coords" ), "coords", i18n( "Edit Coordinate System" ) ); + setHelp("axes-config"); +} + +CoordsConfigDialog::~CoordsConfigDialog() +{ +} + +bool CoordsConfigDialog::evalX() +{ + double const min = m_parser->eval( configAxesDialog->kcfg_XMin->text() ); + if ( m_parser->parserError()!=0 ) + return false; + double const max = m_parser->eval( configAxesDialog->kcfg_XMax->text() ); + if ( m_parser->parserError()!=0 ) + return false; + if ( min >= max ) + { + KMessageBox::error(this,i18n("The minimum range value must be lower than the maximum range value")); + return false; + } + return true; +} +bool CoordsConfigDialog::evalY() +{ + double const min = m_parser->eval( configAxesDialog->kcfg_YMin->text() ); + if ( m_parser->parserError()!=0 ) + return false; + double const max = m_parser->eval( configAxesDialog->kcfg_YMax->text() ); + if ( m_parser->parserError()!=0 ) + return false; + if ( min >= max ) + { + KMessageBox::error(this,i18n("The minimum range value must be lower than the maximum range value")); + return false; + } + return true; +} + +void CoordsConfigDialog::slotOk() +{ + if ( !(configAxesDialog->radioButton1_4->isChecked() && !evalX()) && !(configAxesDialog->radioButton1_4_2->isChecked() && !evalY())) + KConfigDialog::slotOk(); +} + +void CoordsConfigDialog::slotApply() +{ + if ( !(configAxesDialog->radioButton1_4->isChecked() && !evalX()) && !(configAxesDialog->radioButton1_4_2->isChecked() && !evalY())) + KConfigDialog::slotApply(); +} + +#include "coordsconfigdialog.moc" |