diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:45:19 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:45:19 +0000 |
commit | 4e1a5c3eebf50657629e2b4eba13649c2b599598 (patch) | |
tree | 7757743b67ed172d113dad73a3daa5b8aa6f871a /katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp | |
download | katapult-4e1a5c3eebf50657629e2b4eba13649c2b599598.tar.gz katapult-4e1a5c3eebf50657629e2b4eba13649c2b599598.zip |
Added abandoned KDE3 version of katapult
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/katapult@1084407 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp')
-rw-r--r-- | katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp b/katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp new file mode 100644 index 0000000..5cbdbed --- /dev/null +++ b/katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp @@ -0,0 +1,122 @@ +/*************************************************************************** + * Copyright (C) 2006 Jonathan Riddell * + * jriddell@ubuntu.com * + * * + * Copyright (C) 2005 Tobi Vollebregt * + * tobivollebregt@gmail.com * + * * + * Copyright (C) 2005 by Joe Ferris * + * jferris@optimistictech.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 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 <kservicegroup.h> +#include <ksycocaentry.h> +#include <ksycocatype.h> +#include <kapplication.h> + +#include <qlineedit.h> +#include <qlabel.h> + +#include "settings.h" +#include "spellcatalog.h" +#include "actionregistry.h" +#include "actioncopyspelling.h" +#include "status.h" + +K_EXPORT_COMPONENT_FACTORY( katapult_spellcatalog, + KGenericFactory<SpellCatalog>( "katapult_spellcatalog" ) ) + +SpellCatalog::SpellCatalog(QObject*, const char*, const QStringList&): _result(this, QString::null) +{ + ActionRegistry::self()->registerAction(new ActionCopySpelling()); +} + +SpellCatalog::~SpellCatalog() +{ +} + +void SpellCatalog::queryChanged() +{ + int newStatus = 0; + QString cmd = query(); + int origLength = cmd.length(); + + if (cmd.isEmpty()) { + reset(); + setBestMatch(Match()); + } else { + if (accepts(cmd)) { + _result.setText(cmd); + + setBestMatch(Match(&_result, _result.parseError() ? 10 : 100, origLength)); + //set status. + //add S_Multiple to make sure katapult doesn't auto-exec and close the window + //add S_Active to make sure katapult doesn't start the hideTimer or clearTimer + newStatus = S_HasResults | S_Multiple | S_Active; + } else { + newStatus = 0; + } + } + setStatus(newStatus); +} + +bool SpellCatalog::accepts(const QString& str) const +{ + //accept if we begin with the triggerWord + int length = _triggerWord.length(); + return str.left(length + 1) == _triggerWord + " "; +} + +void SpellCatalog::readSettings(KConfigBase* config) +{ + _triggerWord = config->readEntry("TriggerWord", i18n("Should be short, easy and quick to type", "spell")); +} + +void SpellCatalog::writeSettings(KConfigBase* config) +{ + config->writeEntry("TriggerWord", _triggerWord); +} + +QWidget * SpellCatalog::configure() +{ + SpellCatalogSettings* settings = new SpellCatalogSettings(); + + settings->triggerWordLE->setText(_triggerWord); + connect(settings->triggerWordLE, SIGNAL(textChanged(const QString&)), this, SLOT(triggerWordChanged(const QString&))); + + settings->introLabel->setText(i18n("Use with \"%1 myword\"").arg(_triggerWord)); + + return settings; +} + +void SpellCatalog::triggerWordChanged(const QString& triggerWord) +{ + _triggerWord = QString(triggerWord); +} + +int SpellCatalog::triggerWordLength() +{ + return _triggerWord.length(); +} + +void SpellCatalog::reset() +{ + _result.setText(QString::null); +} + +#include "spellcatalog.moc" |