[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-edu-devel
Subject: [kde-edu-devel] Another flashKard patch
From: cfaun <cfaun () rcn ! com>
Date: 2002-04-28 12:51:55
[Download RAW message or body]
This patch does the following things:
*fixes minor bugs (such as the progress bar)
*adds easy entry of special characters (try using ALT-A or ALT-N)
*tells you what percentage you got correct in guess mode
It is attached.
cfaun
["patchForFlashkard.diff" (text/x-diff)]
? flashkard/flashkard/flineedit.cpp
? flashkard/flashkard/flineedit.h
Index: flashkard/Makefile.am
===================================================================
RCS file: /home/kde/kdeedu/flashkard/Makefile.am,v
retrieving revision 1.1
diff -u -3 -p -r1.1 Makefile.am
--- flashkard/Makefile.am 11 Apr 2002 07:29:42 -0000 1.1
+++ flashkard/Makefile.am 28 Apr 2002 12:42:17 -0000
@@ -1,6 +1,6 @@
####### kdevelop will overwrite this part!!! (begin)##########
-SUBDIRS = flashkard
+SUBDIRS = flashkard po doc
EXTRA_DIST = flashkard.kdevprj admin AUTHORS COPYING ChangeLog INSTALL README TODO \
flashkard.lsm
Index: flashkard/flashkard.kdevprj
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard.kdevprj,v
retrieving revision 1.1
diff -u -3 -p -r1.1 flashkard.kdevprj
--- flashkard/flashkard.kdevprj 11 Apr 2002 07:29:42 -0000 1.1
+++ flashkard/flashkard.kdevprj 28 Apr 2002 12:42:18 -0000
@@ -110,7 +110,7 @@ install_location=
type=DATA
[flashkard/Makefile.am]
-files=flashkard/main.cpp,flashkard/flashkard.cpp,flashkard/flashkard.h,flashkard/flas \
hkard.desktop,flashkard/datawidget.cpp,flashkard/datawidget.h,flashkard/flashkardui.rc \
,flashkard/quizwidget.cpp,flashkard/quizwidget.h,flashkard/guesswidget.cpp,flashkard/g \
uesswidget.h,flashkard/flashcardswidget.cpp,flashkard/flashcardswidget.h,flashkard/car \
d.cpp,flashkard/card.h,flashkard/xmlparser.cpp,flashkard/xmlparser.h,flashkard/xmlwriter.cpp,flashkard/xmlwriter.h
+files=flashkard/main.cpp,flashkard/flashkard.cpp,flashkard/flashkard.h,flashkard/fla \
shkard.desktop,flashkard/datawidget.cpp,flashkard/datawidget.h,flashkard/flashkardui.r \
c,flashkard/quizwidget.cpp,flashkard/quizwidget.h,flashkard/guesswidget.cpp,flashkard/ \
guesswidget.h,flashkard/flashcardswidget.cpp,flashkard/flashcardswidget.h,flashkard/ca \
rd.cpp,flashkard/card.h,flashkard/xmlparser.cpp,flashkard/xmlparser.h,flashkard/xmlwriter.cpp,flashkard/xmlwriter.h,flashkard/flineedit.cpp,flashkard/flineedit.h
sub_dirs=pics
type=prog_main
@@ -173,6 +173,18 @@ dist=true
install=false
install_location=
type=DATA
+
+[flashkard/flineedit.cpp]
+dist=true
+install=false
+install_location=
+type=SOURCE
+
+[flashkard/flineedit.h]
+dist=true
+install=false
+install_location=
+type=HEADER
[flashkard/guesswidget.cpp]
dist=true
Index: flashkard/flashkard.kdevses
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard.kdevses,v
retrieving revision 1.1
diff -u -3 -p -r1.1 flashkard.kdevses
--- flashkard/flashkard.kdevses 11 Apr 2002 07:29:42 -0000 1.1
+++ flashkard/flashkard.kdevses 28 Apr 2002 12:42:18 -0000
@@ -3,5 +3,12 @@
<KDevPrjSession>
<LastCompileConfig>(Default)</LastCompileConfig>
<Mainframe MaximizeMode="1" />
- <DocsAndViews NumberOfDocuments="0" />
+ <DocsAndViews NumberOfDocuments="2" >
+ <Doc0 CursorPosLine="35" Type="KWriteDoc" NumberOfViews="1" CursorPosCol="8" \
FileName="/home/cfaun/kdeedu/flashkard/flashkard/flineedit.cpp" > + <View0 \
Top="132" Width="764" Attach="1" Height="421" Left="132" Focus="1" Type="KWriteView" \
MinMaxMode="2" /> + </Doc0>
+ <Doc1 Type="CDocBrowser" NumberOfViews="1" \
FileName="/usr/local/qt/doc/html/qt.html#Key-enum" > + <View Top="68" Width="124" \
Attach="1" Height="115" Left="47" Focus="0" Type="KHTMLView" MinMaxMode="0" /> + \
</Doc1> + </DocsAndViews>
</KDevPrjSession>
Index: flashkard/flashkard/Makefile.am
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/Makefile.am,v
retrieving revision 1.1
diff -u -3 -p -r1.1 Makefile.am
--- flashkard/flashkard/Makefile.am 11 Apr 2002 07:29:42 -0000 1.1
+++ flashkard/flashkard/Makefile.am 28 Apr 2002 12:42:18 -0000
@@ -1,11 +1,14 @@
####### kdevelop will overwrite this part!!! (begin)##########
bin_PROGRAMS = flashkard
-flashkard_SOURCES = xmlwriter.cpp xmlparser.cpp card.cpp flashcardswidget.cpp \
guesswidget.cpp quizwidget.cpp datawidget.cpp flashkard.cpp main.cpp +
+## INCLUDES were found outside kdevelop specific part
+
+flashkard_SOURCES = flineedit.cpp xmlwriter.cpp xmlparser.cpp card.cpp \
flashcardswidget.cpp guesswidget.cpp quizwidget.cpp datawidget.cpp flashkard.cpp \
main.cpp flashkard_LDADD = $(LIB_KFILE) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) \
$(LIBSOCKET)
SUBDIRS = pics
-EXTRA_DIST = main.cpp flashkard.cpp flashkard.h flashkard.desktop datawidget.cpp \
datawidget.h flashkardui.rc quizwidget.cpp quizwidget.h guesswidget.cpp guesswidget.h \
flashcardswidget.cpp flashcardswidget.h card.cpp card.h xmlparser.cpp xmlparser.h \
xmlwriter.cpp xmlwriter.h +EXTRA_DIST = main.cpp flashkard.cpp flashkard.h \
flashkard.desktop datawidget.cpp datawidget.h flashkardui.rc quizwidget.cpp \
quizwidget.h guesswidget.cpp guesswidget.h flashcardswidget.cpp flashcardswidget.h \
card.cpp card.h xmlparser.cpp xmlparser.h xmlwriter.cpp xmlwriter.h flineedit.cpp \
flineedit.h
install-data-local:
$(mkinstalldirs) $(kde_appsdir)/Edutainment/
Index: flashkard/flashkard/datawidget.cpp
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/datawidget.cpp,v
retrieving revision 1.8
diff -u -3 -p -r1.8 datawidget.cpp
--- flashkard/flashkard/datawidget.cpp 20 Apr 2002 03:33:08 -0000 1.8
+++ flashkard/flashkard/datawidget.cpp 28 Apr 2002 12:42:18 -0000
@@ -113,10 +113,10 @@ void DataWidget::setupLayout()
backLabel->setAlignment(Qt::AlignHCenter);
labelLayout->addWidget(backLabel , 0, 1);
- frontBox = new KLineEdit(this, "frontBox");
+ frontBox = new FLineEdit(this, "frontBox");
labelLayout->addWidget(frontBox, 1, 0);
- backBox = new KLineEdit(this, "backBox");
+ backBox = new FLineEdit(this, "backBox");
labelLayout->addWidget(backBox, 1, 1);
connect(frontBox, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
@@ -145,12 +145,12 @@ void DataWidget::setupLayout()
bool DataWidget::eventFilter(QObject *object, QEvent *event)
{
if(event && event->type() == QEvent::FocusIn) {
- if(KLineEdit *lineEdit = dynamic_cast<KLineEdit *>(object))
+ if(FLineEdit *lineEdit = dynamic_cast<FLineEdit *>(object))
emit(lineEditFocusIn(lineEdit));
}
if(event && event->type() == QEvent::FocusOut) {
QFocusEvent *focusEvent = static_cast<QFocusEvent *>(event);
- if(dynamic_cast<KLineEdit *>(object) && focusEvent->reason() != \
QFocusEvent::Popup) + if(dynamic_cast<FLineEdit *>(object) && focusEvent->reason() \
!= QFocusEvent::Popup) emit(lineEditFocusOut());
}
return(QWidget::eventFilter(object, event));
Index: flashkard/flashkard/datawidget.h
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/datawidget.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 datawidget.h
--- flashkard/flashkard/datawidget.h 20 Apr 2002 03:33:08 -0000 1.4
+++ flashkard/flashkard/datawidget.h 28 Apr 2002 12:42:18 -0000
@@ -17,7 +17,7 @@
#define DATAWIDGET_H
#include <klistview.h>
-#include <klineedit.h>
+#include <flineedit.h>
#include <qwidget.h>
@@ -41,7 +41,7 @@ private:
bool eventFilter(QObject *object, QEvent *event);
KListView *cardListView;
- KLineEdit *frontBox, *backBox;
+ FLineEdit *frontBox, *backBox;
private slots:
void changeSelection(QListViewItem *);
Index: flashkard/flashkard/flashkard.cpp
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/flashkard.cpp,v
retrieving revision 1.7
diff -u -3 -p -r1.7 flashkard.cpp
--- flashkard/flashkard/flashkard.cpp 20 Apr 2002 03:33:08 -0000 1.7
+++ flashkard/flashkard/flashkard.cpp 28 Apr 2002 12:42:19 -0000
@@ -59,15 +59,6 @@ void FlashKard::dataChanged()
changed = true;
}
-void FlashKard::selectionChanged()
-{
- // kdDebug() << "FlashKard::selectionChanged()" << endl;
- if((data && data->hasSelectedText()) || (quiz && quiz->hasSelectedText()))
- enableCutCopy();
- else
- disableCutCopy();
-}
-
////////////////////////////////////////////////////////////////////////////////
// private member implementations
////////////////////////////////////////////////////////////////////////////////
@@ -80,11 +71,6 @@ void FlashKard::setupActions()
KStdAction::save(this, SLOT(fileSave()), actionCollection());
KStdAction::saveAs(this, SLOT(fileSaveAs()), actionCollection());
KStdAction::quit(this, SLOT(quit()), actionCollection());
-
- // edit menu
- cutAction = KStdAction::cut(this, SLOT(cut()), actionCollection());
- copyAction = KStdAction::copy(this, SLOT(copy()), actionCollection());
- pasteAction = KStdAction::paste(this, SLOT(paste()), actionCollection());
// function menu
showDataAction = new KAction(i18n("Data Entry"), "edit", 0, this, \
SLOT(showData()), actionCollection(), "showData"); @@ -100,9 +86,6 @@ void \
FlashKard::setupActions() connect(quizModeAction, SIGNAL(activated(int)), this, \
SLOT(changeQuizMode(int)));
createGUI();
-
- disableCutCopy();
- disablePaste();
}
void FlashKard::setupLayout()
@@ -111,9 +94,6 @@ void FlashKard::setupLayout()
data = new DataWidget(this, "data");
connect(data, SIGNAL(dataChanged()), this, SLOT(dataChanged()));
- connect(data, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
- connect(data, SIGNAL(lineEditFocusIn(KLineEdit *)), this, \
SLOT(enablePaste(KLineEdit *)));
- connect(data, SIGNAL(lineEditFocusOut()), this, SLOT(disablePaste()));
showData();
}
@@ -236,6 +216,8 @@ void FlashKard::fileSave()
void FlashKard::fileSaveAs()
{
fileName = KFileDialog::getSaveFileName(QString::null, fileMask, this, \
QString::null); + if(fileName.find(".kvml") == -1)
+ fileName += ".kvml";
if(!fileName.isEmpty())
fileSave();
}
@@ -245,64 +227,6 @@ void FlashKard::quit()
kapp->quit();
}
-// edit menu
-
-void FlashKard::cut()
-{
- if(data && data->isVisible())
- data->cut();
- else if(quiz && quiz->isVisible())
- quiz->cut();
-}
-
-void FlashKard::copy()
-{
- if(data && data->isVisible())
- data->copy();
- else if(quiz && quiz->isVisible())
- quiz->copy();
-}
-
-void FlashKard::paste()
-{
- if(focusedLineEdit)
- focusedLineEdit->paste();
-}
-
-void FlashKard::enableCutCopy()
-{
- if(cutAction && copyAction) {
- cutAction->setEnabled(true);
- copyAction->setEnabled(true);
- }
-}
-
-void FlashKard::disableCutCopy()
-{
- if(cutAction && copyAction) {
- cutAction->setEnabled(false);
- copyAction->setEnabled(false);
- }
-}
-
-void FlashKard::enablePaste(KLineEdit *lineEdit)
-{
- if(lineEdit && pasteAction) {
- // kdDebug() << "FlashKard::enablePaste()" << endl;
- focusedLineEdit = lineEdit;
- pasteAction->setEnabled(true);
- }
-}
-
-void FlashKard::disablePaste()
-{
- if(pasteAction) {
- // kdDebug() << "FlashKard::disablePaste()" << endl;
- focusedLineEdit = 0;
- pasteAction->setEnabled(false);
- }
-}
-
void FlashKard::showData()
{
statusBar()->hide();
@@ -369,9 +293,6 @@ void FlashKard::changeQuizMode(int id)
quiz = 0;
break;
}
-
- connect(quiz, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
- connect(quiz, SIGNAL(lineEditFocusIn(KLineEdit *)), this, \
SLOT(enablePaste(KLineEdit *)));
if(visible)
showQuiz();
Index: flashkard/flashkard/flashkard.h
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/flashkard.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 flashkard.h
--- flashkard/flashkard/flashkard.h 20 Apr 2002 03:33:08 -0000 1.4
+++ flashkard/flashkard/flashkard.h 28 Apr 2002 12:42:19 -0000
@@ -41,7 +41,6 @@ public:
public slots:
void dataChanged();
- void selectionChanged();
private:
void setupActions();
@@ -76,16 +75,6 @@ private slots:
void fileSaveAs();
void quit();
- // edit menu
-
- void cut();
- void copy();
- void paste();
-
- void enableCutCopy();
- void disableCutCopy();
- void enablePaste(KLineEdit *lineEdit);
- void disablePaste();
// other private slots
Index: flashkard/flashkard/flashkardui.rc
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/flashkardui.rc,v
retrieving revision 1.1
diff -u -3 -p -r1.1 flashkardui.rc
--- flashkard/flashkard/flashkardui.rc 11 Apr 2002 07:29:42 -0000 1.1
+++ flashkard/flashkard/flashkardui.rc 28 Apr 2002 12:42:19 -0000
@@ -2,7 +2,7 @@
<kpartgui name="flashkard">
<MenuBar>
- <Menu name="Function"><text>F&unction</text>
+ <Menu name="Function"><text>Function</text>
<Action name="showData"/>
<Action name="showQuiz"/>
</Menu>
@@ -16,10 +16,6 @@
<Action name="file_open"/>
<Action name="openDir"/>
<Action name="file_save"/>
- <Separator lineSeparator="true"/>
- <Action name="edit_cut"/>
- <Action name="edit_copy"/>
- <Action name="edit_paste"/>
<Separator lineSeparator="true"/>
<Action name="showData"/>
<Action name="showQuiz"/>
Index: flashkard/flashkard/guesswidget.cpp
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/guesswidget.cpp,v
retrieving revision 1.5
diff -u -3 -p -r1.5 guesswidget.cpp
--- flashkard/flashkard/guesswidget.cpp 20 Apr 2002 03:33:08 -0000 1.5
+++ flashkard/flashkard/guesswidget.cpp 28 Apr 2002 12:42:19 -0000
@@ -33,6 +33,7 @@ GuessWidget::GuessWidget(KStatusBar *sta
{
random = randomQuiz;
answer = QString::null;
+ numCorrect = 0;
showFeedbackLabel();
setupLayout();
@@ -79,7 +80,7 @@ void GuessWidget::setupLayout()
QHBoxLayout *guessLayout = new QHBoxLayout(layout(), 3);
- guessLineEdit = new KLineEdit(this);
+ guessLineEdit = new FLineEdit(this);
guessLayout->addWidget(guessLineEdit);
connect(guessLineEdit, SIGNAL(selectionChanged()), this, \
SIGNAL(selectionChanged())); @@ -112,13 +113,15 @@ void GuessWidget::checkAnswer()
{
if(guessLineEdit->text() == answer) {
setFeedbackMessage(i18n("Correct!"));
- getCard(random);
- guessLineEdit->setFocus();
+ numCorrect++;
}
- else {
- setFeedbackMessage(i18n("Incorrect."));
+ else
+ setFeedbackMessage(i18n("Incorrect."));
+
+ getCard(random, numCorrect);
+ if (last == true)
+ numCorrect = 0;
guessLineEdit->setFocus();
- }
}
void GuessWidget::showAnswer()
Index: flashkard/flashkard/guesswidget.h
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/guesswidget.h,v
retrieving revision 1.2
diff -u -3 -p -r1.2 guesswidget.h
--- flashkard/flashkard/guesswidget.h 19 Apr 2002 09:51:29 -0000 1.2
+++ flashkard/flashkard/guesswidget.h 28 Apr 2002 12:42:19 -0000
@@ -17,7 +17,7 @@
#define GUESSWIDGET_H
#include <kstatusbar.h>
-#include <klineedit.h>
+#include <flineedit.h>
#include <qwidget.h>
#include <qstring.h>
@@ -41,9 +41,10 @@ private:
virtual void showCard(Card card);
bool random;
+ int numCorrect;
QString answer;
QLabel *cardLabel;
- KLineEdit *guessLineEdit;
+ FLineEdit *guessLineEdit;
private slots:
void checkAnswer();
Index: flashkard/flashkard/quizwidget.cpp
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/quizwidget.cpp,v
retrieving revision 1.5
diff -u -3 -p -r1.5 quizwidget.cpp
--- flashkard/flashkard/quizwidget.cpp 20 Apr 2002 03:33:08 -0000 1.5
+++ flashkard/flashkard/quizwidget.cpp 28 Apr 2002 12:42:19 -0000
@@ -42,6 +42,7 @@ QuizWidget::QuizWidget(KStatusBar *statu
progressBar = 0;
feedbackLabel = 0;
+ last = false;
setupLayout();
}
@@ -93,12 +94,28 @@ QFont QuizWidget::labelFont()
return(font);
}
-Card QuizWidget::getCard(bool random)
+Card QuizWidget::getCard(bool random, int numCorrect)
{
+ if(numCorrect !=-1)
+ last = false;
if(!completeCardList->isEmpty()) {
if(remainingCardList.isEmpty()) {
- KMessageBox::information( this, i18n("Restarting the deck."), \
i18n("FlashKard"));
- remainingCardList = *completeCardList;
+ if(numCorrect != -1) {
+ progressBar->setValue(100);
+ last = true;
+ int perNum = 100*(numCorrect/completeCardList->count());
+ int total = completeCardList->count();
+ QString perStr;
+ perStr.sprintf("The percentage you got correct was %d%%.", perNum);
+ KMessageBox::information(this, i18n("Restarting the deck.") + perStr);
+ remainingCardList = *completeCardList;
+ }
+ else
+ {
+ progressBar->setValue(100);
+ KMessageBox::information( this, i18n("Restarting the deck."), \
i18n("FlashKard")); + remainingCardList = *completeCardList;
+ }
}
int cardNumber;
@@ -113,7 +130,7 @@ Card QuizWidget::getCard(bool random)
showCard(card);
if(completeCardList->count() > 0)
- progressBar->setValue(int(100.0 * (1.0 - float(remainingCardList.count()) / \
float(completeCardList->count() - 1)) + .5)); + progressBar->setValue(int(100.0 \
* (float((completeCardList->count()-1)-remainingCardList.count()) / \
float(completeCardList->count()))));
return(card);
}
Index: flashkard/flashkard/quizwidget.h
===================================================================
RCS file: /home/kde/kdeedu/flashkard/flashkard/quizwidget.h,v
retrieving revision 1.3
diff -u -3 -p -r1.3 quizwidget.h
--- flashkard/flashkard/quizwidget.h 20 Apr 2002 03:33:08 -0000 1.3
+++ flashkard/flashkard/quizwidget.h 28 Apr 2002 12:42:19 -0000
@@ -39,13 +39,14 @@ public:
virtual bool hasSelectedText() = 0;
public slots:
- Card getCard(bool random = true);
+ Card getCard(bool random = true, int numCorrect = -1);
protected:
void setFeedbackMessage(const QString message);
void showFeedbackLabel(bool show = true);
QFont labelFont();
QBoxLayout *layout();
+ bool last;
bool eventFilter(QObject *object, QEvent *event);
private:
_______________________________________________
kde-edu-devel mailing list
kde-edu-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-edu-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic