[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/edu/kanagram/src
From:       Joshua Keel <joshuakeel () gmail ! com>
Date:       2005-07-28 18:46:24
Message-ID: 1122576384.813504.8958.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 439716 by jkeel:

Add preliminary NewStuff support, make vocab switching work better (forward and \
backward)


 M  +3 -5      Makefile.am  
 M  +14 -4     kanagram.cpp  
 M  +2 -1      kanagram.h  
 M  +4 -0      kanagram.kcfg  
 M  +34 -9     kanagramgame.cpp  
 M  +3 -0      kanagramgame.h  
 A             newstuff.cpp   [License: no copyright]
 A             newstuff.h   [License: no copyright]
 A             newstuffwidget.ui  


--- trunk/playground/edu/kanagram/src/Makefile.am #439715:439716
@@ -2,7 +2,7 @@
 INCLUDES = $(all_includes)
 
 # these are the headers for your project
-noinst_HEADERS = kanagram.h kanagramgame.h fontutils.h vocabsettings.h vocabedit.h \
vocabsettingswidget.h vocabeditwidget.h mainsettingswidget.h +noinst_HEADERS = \
kanagram.h kanagramgame.h fontutils.h vocabsettings.h vocabedit.h \
vocabsettingswidget.h vocabeditwidget.h mainsettingswidget.h newstuffwidget.h \
newstuff.h  
 # let automoc handle all of the meta source files (moc)
 METASOURCES = AUTO
@@ -21,10 +21,9 @@
 bin_PROGRAMS = kanagram
 
 # the application source, library search path, and link libraries
-kanagram_SOURCES = main.cpp kanagram.cpp kanagramgame.cpp fontutils.cpp \
kanagramsettings.kcfgc mainsettingswidget.ui vocabsettingswidget.ui \
vocabeditwidget.ui vocabsettings.cpp vocabedit.cpp keduvocdocument.cpp \
keduvocexpression.cpp keduvockvtmlreader.cpp keduvockvtmlwriter.cpp leitnerbox.cpp \
leitnersystem.cpp multiplechoice.cpp grammarmanager.cpp leitnersystemview.cpp \
+kanagram_SOURCES = main.cpp kanagram.cpp kanagramgame.cpp fontutils.cpp \
kanagramsettings.kcfgc mainsettingswidget.ui vocabsettingswidget.ui \
vocabeditwidget.ui vocabsettings.cpp vocabedit.cpp keduvocdocument.cpp \
keduvocexpression.cpp keduvockvtmlreader.cpp keduvockvtmlwriter.cpp leitnerbox.cpp \
leitnersystem.cpp multiplechoice.cpp grammarmanager.cpp leitnersystemview.cpp \
newstuffwidget.ui newstuff.cpp  kanagram_LDFLAGS = $(KDE_RPATH) $(all_libraries)
-#TODO -libkdeeducore will have to be changed to \
                ../../libkdeedu/kdeeducore/libkdeeducore.la when kanagram gets in \
                kdeedu module
-kanagram_LDADD =  $(LIB_KDEUI) -lkio
+kanagram_LDADD =  $(LIB_KDEUI) $(LIB_KNEWSTUFF) $(LIB_KIO)
 
 kde_kcfg_DATA=kanagram.kcfg
 
@@ -36,4 +35,3 @@
 # TODO does this app need an ui.rc ? If it does put it here
 # shellrcdir   = $(kde_datadir)/kanagram
 # shellrc_DATA = kanagramui.rc
-
--- trunk/playground/edu/kanagram/src/kanagram.cpp #439715:439716
@@ -41,14 +41,14 @@
 #include <kconfigdialog.h>
 #include <kconfigskeleton.h>
 #include <krandomsequence.h>
-#include <knewstuff/downloaddialog.h>
-#include <knewstuff/knewstuff.h>
+#include <kdebug.h>
 
 #include "kanagram.h"
 #include "fontutils.h"
 #include "kanagramsettings.h"
 #include "mainsettingswidget.h"
 #include "vocabsettings.h"
+#include "newstuff.h"
 
 
 Kanagram::Kanagram() : QWidget(0, 0, WStaticContents | WNoAutoErase), \
m_overNewWord(false), m_overSettings(false), m_overHelp(false), m_overQuit(false), \
m_overReveal(false), m_overHint(false), m_overTry(false), m_showHint(false) @@ -100,6 \
+100,8 @@  f.setPointSize(17);
 	m_inputBox->setFont(f);
 	m_inputBox->show();
+
+	m_buttonFont = KGlobalSettings::generalFont();
 }
 
 Kanagram::~Kanagram()
@@ -125,6 +127,8 @@
 		m_blackboardFont = KGlobalSettings::generalFont();
 	else
 		m_blackboardFont = QFont("squeaky chalk sound");
+
+	m_defaultVocab = KanagramSettings::defaultVocab();
 }
 
 void Kanagram::paintEvent(QPaintEvent *)
@@ -142,7 +146,7 @@
 	drawText(p, i18n("Quit"), QPoint(543, 391), false, 0, 0, 0, m_overQuit, true, \
m_font, m_fontColor, m_fontHighlightColor);  drawText(p, i18n("reveal word"), \
QPoint(336, 353), false, 0, 0, 0, m_overReveal, true, m_blackboardFont, m_chalkColor, \
m_chalkHighlightColor, 14);  drawText(p, i18n("hint"), QPoint(70, 353), false, 0, 0, \
                0, m_overHint, true, m_blackboardFont, m_chalkColor, \
                m_chalkHighlightColor, 14);
-	drawText(p, i18n("Try"), QPoint(369, 442), true, 10, 5, &m_tryRect, m_overTry, \
true, m_font, QColor(126, 126, 126), m_chalkHighlightColor); +	drawText(p, \
i18n("Try"), QPoint(369, 442), true, 10, 5, &m_tryRect, m_overTry, true, \
m_buttonFont, QColor(126, 126, 126), m_chalkHighlightColor);  
 	drawSwitcherText(p, m_game.getDocTitle());
 	if(m_overSwitcher)
@@ -255,8 +259,13 @@
 
 	if(m_switcherRect.contains(e->pos()) || m_arrowRect.contains(e->pos()))
 	{
-		m_game.nextVocab();
+		if(!(e->button() == RightButton))
+			m_game.nextVocab();
+		else
+			m_game.previousVocab();
 		m_game.nextAnagram();
+		KanagramSettings::setDefaultVocab(m_game.getFilename());
+		KanagramSettings::writeConfig();
 		update();
 	}
 
@@ -531,6 +540,7 @@
 	m_configDialog = new KConfigDialog( this, "settings", KanagramSettings::self() );
 	m_configDialog->addPage( new MainSettingsWidget( m_configDialog ), i18n( "Settings" \
), "configure" );  m_configDialog->addPage( new VocabSettings( m_configDialog ), \
i18n("Vocabularies"), "edit" ); +	m_configDialog->addPage( new NewStuff( \
m_configDialog ), i18n("New Stuff"), "new");  connect(m_configDialog, \
SIGNAL(settingsChanged()), this, SLOT(loadSettings()));  m_configDialog->show();
 }
--- trunk/playground/edu/kanagram/src/kanagram.h #439715:439716
@@ -83,8 +83,9 @@
 		//Values for settings
 		int m_hintHideTime;
 		bool m_useSounds, m_standardBlackboardFonts, m_standardInterfaceFonts;
+		QString m_defaultVocab;
 
-		QFont m_font, m_blackboardFont;
+		QFont m_font, m_blackboardFont, m_buttonFont;
 		
 		KHelpMenu *m_helpMenu;
 
--- trunk/playground/edu/kanagram/src/kanagram.kcfg #439715:439716
@@ -16,5 +16,9 @@
 	<label>Uses a standard font for the blackboard</label>
 	<default>false</default>
 </entry>
+<entry name="defaultVocab" type="Path">
+	<label>Set the default vocabulary</label>
+	<default>/usr/share/apps/kanagram/data/objects.kvtml</default>
+</entry>
 </group>
 </kcfgfile>
--- trunk/playground/edu/kanagram/src/kanagramgame.cpp #439715:439716
@@ -29,9 +29,12 @@
 #include "kanagramsettings.h"
 
 
-KanagramGame::KanagramGame()
+KanagramGame::KanagramGame() : m_index(0)
 {
-	nextVocab();
+	//m_fileList.append(KanagramSettings::defaultVocab());
+	//KEduVocDocument *doc = new KEduVocDocument(this);
+	//doc->open(KURL(locate("appdata", m_fileList[m_index])), false);
+	//m_docTitle = doc->getTitle();
 	nextAnagram();
 }
 
@@ -39,10 +42,22 @@
 {
 }
 
+void KanagramGame::previousVocab()
+{
+	m_index--;
+	m_fileList = KGlobal::dirs()->findAllResources("appdata", "data/*.kvtml");
+	if(m_index < 0)
+		m_index = m_fileList.size() - 1;
+	KEduVocDocument *doc = new KEduVocDocument(this);
+	doc->open(KURL(locate("appdata", m_fileList[m_index])), false);
+	m_docTitle = doc->getTitle();
+}
+
 void KanagramGame::nextVocab()
 {
+	if(!m_fileList.empty())
+		m_index++;
 	m_fileList = KGlobal::dirs()->findAllResources("appdata", "data/*.kvtml");
-	m_index++;
 	if(m_index >= m_fileList.size())
 		m_index = 0;
 	KEduVocDocument *doc = new KEduVocDocument(this);
@@ -55,16 +70,26 @@
 	return m_docTitle;
 }
 
+QString KanagramGame::getFilename()
+{
+	if(m_fileList.empty())
+		return m_filename;
+	else
+		return m_fileList[m_index];
+}
+
 void KanagramGame::nextAnagram()
 {
-	//TODO: Fix this so that it doesn't load the list every time
-	//Make sure that no word gets repeated twice
-
 	KEduVocDocument	*doc = new KEduVocDocument(this);
-	doc->open(KURL(locate("appdata", m_fileList[m_index])), false);
-	kdDebug() << m_fileList[m_index] << endl;
+	if(m_fileList.empty())
+	{
+		doc->open(KURL(KanagramSettings::defaultVocab()), false);
+		m_docTitle = doc->getTitle();
+		m_filename = KanagramSettings::defaultVocab();
+	}
+	else
+		doc->open(KURL(locate("appdata", m_fileList[m_index])), false);
 	int totalWords = doc->numEntries();
-	kdDebug() << "Number of entries:" << totalWords << endl;
 	int wordNumber = m_random.getLong(totalWords);
 	while(m_anagram == doc->getEntry(wordNumber)->getOriginal())
 	{
--- trunk/playground/edu/kanagram/src/kanagramgame.h #439715:439716
@@ -34,11 +34,13 @@
 		~KanagramGame();
 		void nextAnagram();
 		void nextVocab();
+		void previousVocab();
 		QString getAnagram();
 		QString getHint();
 		QString getWord();
 		void restoreWord();
 		QString getDocTitle();
+		QString getFilename();
 	private:
 		QString createAnagram(QString original);
 		KRandomSequence m_random;
@@ -49,6 +51,7 @@
 		int m_index;
 		QStringList m_fileList;
 		QString m_docTitle;
+		QString m_filename;
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic