summaryrefslogtreecommitdiffstats
path: root/kanagram/src/leitnersystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kanagram/src/leitnersystem.cpp')
-rw-r--r--kanagram/src/leitnersystem.cpp192
1 files changed, 192 insertions, 0 deletions
diff --git a/kanagram/src/leitnersystem.cpp b/kanagram/src/leitnersystem.cpp
new file mode 100644
index 00000000..3f633526
--- /dev/null
+++ b/kanagram/src/leitnersystem.cpp
@@ -0,0 +1,192 @@
+//
+// C++ Implementation: leitnersystem
+//
+// Description:
+//
+//
+// Author: Martin Pfeiffer <martin-pfeiffer-bensheim@web.de>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "leitnersystem.h"
+#include <kdebug.h>
+
+LeitnerSystem::LeitnerSystem(QValueList<LeitnerBox>& boxes, QString name)
+{
+ if( !boxes.empty() )
+ m_boxes = boxes;
+
+ if( name.isNull() )
+ m_systemName = name;
+}
+
+LeitnerSystem::LeitnerSystem()
+{
+}
+
+LeitnerSystem::~LeitnerSystem()
+{
+}
+
+QStringList LeitnerSystem::getBoxNameList()
+{
+ QStringList boxNameList;
+ QValueList<LeitnerBox>::iterator it;
+
+
+ for(it = m_boxes.begin(); it != m_boxes.end(); ++it)
+ {
+ boxNameList.append((*it).getBoxName());
+ }
+
+ return boxNameList;
+}
+
+int LeitnerSystem::getNumberOfBoxes()
+{
+ return m_boxes.count();
+}
+
+LeitnerBox* LeitnerSystem::getBoxWithNumber( int number )
+{
+ return &m_boxes[ number ];
+}
+
+LeitnerBox* LeitnerSystem::getBoxWithName( const QString& name )
+{
+ QValueList<LeitnerBox>::iterator it;
+
+ for(it = m_boxes.begin(); it != m_boxes.end(); ++it)
+ {
+ if((*it).getBoxName() == name)
+ return &(*it);
+ }
+
+ return 0;
+}
+
+QString& LeitnerSystem::getSystemName()
+{
+ return m_systemName;
+}
+
+const QString& LeitnerSystem::getNextBox( QString& previousBox )
+{
+ for( int i = 0; i < m_boxes.count(); i++ )
+ {
+ if( m_boxes[i].getVocabCount() > 0 )
+ return getBox( i );
+ }
+
+ return QString::null;
+}
+
+const QString& LeitnerSystem::getCorrectBox( int box )
+{
+ return m_boxes[ box ].getCorrectWordBox()->getBoxName();
+}
+
+const QString& LeitnerSystem::getWrongBox( int box )
+{
+ return m_boxes[ box ].getWrongWordBox()->getBoxName();
+}
+
+int LeitnerSystem::getWrongBoxNumber( int box )
+{
+ return getNumber( m_boxes[ box ].getWrongWordBox() );
+}
+
+int LeitnerSystem::getCorrectBoxNumber( int box )
+{
+ return getNumber( m_boxes[ box ].getCorrectWordBox() );
+}
+
+void LeitnerSystem::deleteBox( int box )
+{
+ m_boxes.remove( m_boxes.at( box ) );
+}
+
+void LeitnerSystem::deleteBox( LeitnerBox* box )
+{
+ m_boxes.remove( *box );
+}
+
+bool LeitnerSystem::insertBox( const QString& name, int correctWordBox, int wrongWordBox )
+{
+ if( getBoxNameList().contains( name ) != 0 )
+ return false;
+
+ LeitnerBox tmpBox;
+ tmpBox.setBoxName( name );
+ tmpBox.setCorrectWordBox( getBoxWithNumber( correctWordBox ) );
+ tmpBox.setWrongWordBox( getBoxWithNumber( wrongWordBox ) );
+
+ m_boxes.append( tmpBox );
+ return true;
+}
+
+void LeitnerSystem::setSystemName( const QString& name )
+{
+ m_systemName = name;
+}
+
+int LeitnerSystem::getNumber( LeitnerBox* box )
+{
+ if( m_boxes.findIndex( *box ) == -1 )
+ kdDebug() << "muhaha" << endl;
+ return m_boxes.findIndex( *box );
+}
+
+bool LeitnerSystem::setBoxName( int box, const QString& name )
+{
+ if( getBoxWithName( name ) == 0 || getBoxWithName( name ) == getBoxWithNumber( box ) )
+ {
+ getBoxWithNumber( box )->setBoxName( name );
+
+ return true;
+ }
+ else
+ return false;
+}
+
+bool LeitnerSystem::setBoxName( LeitnerBox* box, const QString& name )
+{
+ if( getBoxWithName( name ) == 0 || getBoxWithName( name ) == box )
+ {
+ box->setBoxName( name );
+
+ return true;
+ }
+ else
+ return false;
+}
+
+bool LeitnerSystem::insertBox( const QString& name )
+{
+ if( getBoxNameList().contains( name ) != 0 )
+ return false;
+
+ LeitnerBox tmpBox;
+ tmpBox.setBoxName( name );
+ //tmpBox.setVocabCount( count );
+
+ m_boxes.append( tmpBox );
+ return true;
+}
+
+void LeitnerSystem::setCorrectBox( const QString& box, const QString& correctWordBox )
+{
+ getBoxWithName( box )->setCorrectWordBox( getBoxWithName( correctWordBox ) );
+}
+
+void LeitnerSystem::setWrongBox( const QString& box, const QString& wrongWordBox )
+{
+ getBoxWithName( box )->setWrongWordBox( getBoxWithName( wrongWordBox ) );
+}
+
+const QString& LeitnerSystem::getBox( int i )
+{
+ return getBoxWithNumber( i )->getBoxName();
+}
+