summaryrefslogtreecommitdiffstats
path: root/katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-03 02:45:19 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-03 02:45:19 +0000
commit4e1a5c3eebf50657629e2b4eba13649c2b599598 (patch)
tree7757743b67ed172d113dad73a3daa5b8aa6f871a /katapult/plugins/catalogs/spellcatalog/spellcatalog.cpp
downloadkatapult-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.cpp122
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"