/*************************************************************************** Copyright 2008 Avgoustinos Kadis ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "expression.h" #include "translation.h" namespace Scripting { Expression::Expression() { m_expression = new KEduVocExpression(); } Expression::Expression ( const QString & expression ) { m_expression = new KEduVocExpression ( expression ); } Expression::Expression ( const QStringList & translations ) { m_expression = new KEduVocExpression ( translations ); } Expression::Expression ( KEduVocExpression * expression ) : QObject(), m_expression ( expression ) { } Expression::Expression ( const Expression & other ) : QObject() { m_expression = other.kEduVocExpression(); } Expression::~Expression() { } QVariantList Expression::translationIndices() const { QVariantList vlist; foreach ( int k, m_expression->translationIndices() ) { vlist.push_back ( QVariant ( k ) ); } return vlist; } QVariantList Expression::translations() const { //build a list of all the translations QList translations; foreach ( int k, m_expression->translationIndices() ) { if ( m_expression->translation ( k ) ) translations.push_back ( m_expression->translation ( k ) ); } //convert it to QVariantList and return it return toVariantList ( translations ); } QStringList Expression::translationTexts() const { //build a list of all the translation texts QStringList list; foreach ( int k, m_expression->translationIndices() ) { if ( m_expression->translation ( k ) ) list << m_expression->translation(k)->text(); } return list; } // Expression & Expression::operator= ( const Expression &other ) // { // m_expression = other.kEduVocEntry(); // return ( *this ); // } // bool Expression::operator== ( const Expression &other ) const // { // return m_expression == other.kEduVocEntry(); // } // void Expression::setTranslation( int index, QObject* translation ) { // Translation * t = dynamic_cast(translation); // m_expression->setTranslation(index,t->kEduVocTranslation()); // } void Expression::setTranslations ( QStringList translations ) { if ( m_expression ) delete m_expression; m_expression = new KEduVocExpression ( translations ); } QObject* Expression::translation ( int index ) const { return new Translation ( m_expression->translation ( index ) ); } }