• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kanagram

  • sources
  • kde-4.12
  • kdeedu
  • kanagram
  • src
  • harmattan
kanagramenginehelper.cpp
Go to the documentation of this file.
1 /******************************************************************************
2  * This file is part of the Kanagram project
3  * Copyright (c) 2012 Laszlo Papp <lpapp@kde.org>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #include "kanagramenginehelper.h"
21 
22 #include <kanagramsettings.h>
23 
24 #include <sharedkvtmlfiles.h>
25 
26 #include <KDE/KStandardDirs>
27 #include <KDE/KLocale>
28 
29 #include <QtGui/QApplication>
30 
31 KanagramEngineHelper::KanagramEngineHelper(KanagramGame* kanagramGame, QObject* parent)
32  : QObject(parent)
33  , m_kanagramGame(kanagramGame)
34  , m_insertCounter(0)
35 {
36 }
37 
38 KanagramEngineHelper::~KanagramEngineHelper()
39 {
40  delete m_kanagramGame;
41 }
42 
43 QStringList KanagramEngineHelper::createNextAnagram()
44 {
45  m_kanagramGame->nextAnagram();
46  QStringList anagramLetters;
47  QString anagram;
48 
49  int i = 0;
50 
51  // Try to get a not too long word, still visible and looks ok on the
52  // chalkboard on the Harmattan device. Do not get stuck in such a loop
53  // either, if there are no shorter words available, just quit the
54  // application. It is an acceptable behavior for avoiding the messy layout
55  // in such cases (long words, that is).
56  //
57  do {
58  anagram = m_kanagramGame->anagram();
59  if (anagram.size() < 13) {
60  foreach (const QChar& anagramLetter, anagram)
61  {
62  anagramLetters.append(anagramLetter);
63  }
64 
65  return anagramLetters;
66  }
67  } while (++i < 200);
68 
69  QApplication::instance()->quit();
70  return QStringList();
71 }
72 
73 QStringList KanagramEngineHelper::insertInCurrentOriginalWord(int index, const QString& letter)
74 {
75  int anagramWordSize = m_kanagramGame->word().size();
76 
77  if (anagramWordSize != m_currentOriginalWord.size()
78  || m_currentOriginalWord.size() == m_insertCounter)
79  {
80  m_currentOriginalWord.clear();
81  m_insertCounter = 0;
82  }
83 
84  while (m_currentOriginalWord.size() < anagramWordSize)
85  m_currentOriginalWord.append("");
86 
87  m_currentOriginalWord.replace(index, letter);
88  ++m_insertCounter;
89  return m_currentOriginalWord;
90 }
91 
92 QStringList KanagramEngineHelper::removeInCurrentOriginalWord(int index)
93 {
94  m_currentOriginalWord.replace(index, "");
95  --m_insertCounter;
96  return m_currentOriginalWord;
97 }
98 
99 QStringList KanagramEngineHelper::anagramOriginalWord() const
100 {
101  QStringList originalWordLetters;
102 
103  QString originalWord = m_kanagramGame->word();
104 
105  foreach (const QChar& originalWordLetter, originalWord)
106  {
107  originalWordLetters.append(originalWordLetter);
108  }
109 
110  return originalWordLetters;
111 }
112 
113 bool KanagramEngineHelper::compareWords() const
114 {
115  return m_currentOriginalWord.join("") == m_kanagramGame->word();
116 }
117 
118 int KanagramEngineHelper::hintHideTime()
119 {
120  return KanagramSettings::hintHideTime().toInt();
121 }
122 
123 void KanagramEngineHelper::setHintHideTime(int hintHideTime)
124 {
125  KanagramSettings::setHintHideTime(QString::number(hintHideTime));
126  emit hintHideTimeChanged();
127 }
128 
129 int KanagramEngineHelper::resolveTime()
130 {
131  return KanagramSettings::resolveTime().toInt();
132 }
133 
134 void KanagramEngineHelper::setResolveTime(int resolveTime)
135 {
136  KanagramSettings::setResolveTime(QString::number(resolveTime));
137  emit resolveTimeChanged();
138 }
139 
140 bool KanagramEngineHelper::useSounds()
141 {
142  return KanagramSettings::useSounds();
143 }
144 
145 void KanagramEngineHelper::setUseSounds(bool useSounds)
146 {
147  KanagramSettings::setUseSounds(useSounds);
148  emit useSoundsToggled();
149 }
150 
151 QString KanagramEngineHelper::defaultVocabulary()
152 {
153  return KanagramSettings::defaultVocabulary();
154 }
155 
156 void KanagramEngineHelper::setDefaultVocabulary(const QString& defaultVocabulary)
157 {
158  KanagramSettings::setDefaultVocabulary(defaultVocabulary);
159  emit defaultVocabularyChanged();
160 }
161 
162 void KanagramEngineHelper::saveSettings()
163 {
164  KanagramSettings::self()->writeConfig();
165  m_kanagramGame->refreshVocabularyList();
166 }
167 
168 #include "kanagramenginehelper.moc"
KanagramEngineHelper::~KanagramEngineHelper
~KanagramEngineHelper()
Definition: kanagramenginehelper.cpp:38
KanagramEngineHelper::resolveTime
int resolveTime()
KanagramEngineHelper::hintHideTime
int hintHideTime()
KanagramEngineHelper::compareWords
Q_INVOKABLE bool compareWords() const
Definition: kanagramenginehelper.cpp:113
KanagramSettings::resolveTime
static QString resolveTime()
Get This setting allows you to set in seconds how much time is available for resolving the anagram...
Definition: kanagramsettings.h:70
KanagramGame::anagram
QString anagram() const
Get the anagram to show.
Definition: kanagramgame.cpp:232
KanagramGame::refreshVocabularyList
bool refreshVocabularyList()
Refresh the list of vocabulary files available from what we find on disk.
Definition: kanagramgame.cpp:105
KanagramEngineHelper::KanagramEngineHelper
KanagramEngineHelper(KanagramGame *kanagramGame, QObject *parent=0)
Definition: kanagramenginehelper.cpp:31
kanagramenginehelper.h
KanagramSettings::setUseSounds
static void setUseSounds(bool v)
Set Turns sounds on/off.
Definition: kanagramsettings.h:79
QObject
KanagramSettings::setHintHideTime
static void setHintHideTime(const QString &v)
Set This setting allows you to set in seconds how long Kanagram's hint bubble is shown.
Definition: kanagramsettings.h:41
KanagramGame::word
QString word() const
Get this anagram's answer.
Definition: kanagramgame.cpp:242
KanagramSettings::useSounds
static bool useSounds()
Get Turns sounds on/off.
Definition: kanagramsettings.h:89
KanagramSettings::self
static KanagramSettings * self()
Definition: kanagramsettings.cpp:17
kanagramsettings.h
KanagramEngineHelper::setUseSounds
void setUseSounds(bool useSounds)
Definition: kanagramenginehelper.cpp:145
KanagramEngineHelper::setHintHideTime
void setHintHideTime(int hintHideTime)
Definition: kanagramenginehelper.cpp:123
KanagramEngineHelper::anagramOriginalWord
Q_INVOKABLE QStringList anagramOriginalWord() const
Definition: kanagramenginehelper.cpp:99
KanagramEngineHelper::defaultVocabulary
QString defaultVocabulary()
KanagramEngineHelper::setDefaultVocabulary
void setDefaultVocabulary(const QString &defaultVocabulary)
Definition: kanagramenginehelper.cpp:156
KanagramEngineHelper::insertInCurrentOriginalWord
Q_INVOKABLE QStringList insertInCurrentOriginalWord(int index, const QString &letter)
Definition: kanagramenginehelper.cpp:73
KanagramEngineHelper::defaultVocabularyChanged
void defaultVocabularyChanged()
KanagramEngineHelper::saveSettings
void saveSettings()
Definition: kanagramenginehelper.cpp:162
KanagramGame
game api
Definition: kanagramgame.h:41
KanagramGame::nextAnagram
void nextAnagram()
Set the index to the next word.
Definition: kanagramgame.cpp:181
KanagramEngineHelper::hintHideTimeChanged
void hintHideTimeChanged()
KanagramEngineHelper::useSoundsToggled
void useSoundsToggled()
KanagramEngineHelper::createNextAnagram
Q_INVOKABLE QStringList createNextAnagram()
Definition: kanagramenginehelper.cpp:43
KanagramEngineHelper::removeInCurrentOriginalWord
Q_INVOKABLE QStringList removeInCurrentOriginalWord(int index)
Definition: kanagramenginehelper.cpp:92
KanagramEngineHelper::useSounds
bool useSounds()
KanagramEngineHelper::resolveTimeChanged
void resolveTimeChanged()
KanagramEngineHelper::setResolveTime
void setResolveTime(int resolveTime)
Definition: kanagramenginehelper.cpp:134
KanagramSettings::defaultVocabulary
static QString defaultVocabulary()
Get Set the default vocabulary.
Definition: kanagramsettings.h:108
KanagramSettings::setDefaultVocabulary
static void setDefaultVocabulary(const QString &v)
Set Set the default vocabulary.
Definition: kanagramsettings.h:98
KanagramSettings::hintHideTime
static QString hintHideTime()
Get This setting allows you to set in seconds how long Kanagram's hint bubble is shown.
Definition: kanagramsettings.h:51
KanagramSettings::setResolveTime
static void setResolveTime(const QString &v)
Set This setting allows you to set in seconds how much time is available for resolving the anagram...
Definition: kanagramsettings.h:60
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:35 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kanagram

Skip menu "kanagram"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal