bool operator< (const KEduVocExpression &e1, const KEduVocExpression &e2)
{
- int i;
if (sortAscending)
if (sortIndex == 0)
- i = QString::localeAwareCompare(e1.original(), e2.original());
+ return e1.original() < e2.original();
else
- i = QString::localeAwareCompare(e1.translation(sortIndex), e2.translation(sortIndex));
+ return e1.translation(sortIndex) < e2.translation(sortIndex);
else
if (sortIndex == 0)
- i = QString::localeAwareCompare(e2.original(), e1.original());
+ return !(e1.original() < e2.original());
else
- i = QString::localeAwareCompare(e2.translation(sortIndex), e2.translation(sortIndex));
- return (i >= 0);
+ return !(e1.translation(sortIndex) < e2.translation(sortIndex));
+}
+
+bool KEduVocDocument::sort(int index, Qt::SortOrder order)
+{
+ bool result = false;
+ if (m_enableSorting && index < numIdentifiers())
+ {
+ if (m_sortIdentifier.count() < m_identifiers.count())
+ for (int i = m_sortIdentifier.count(); i < (int) m_identifiers.count(); i++)
+ m_sortIdentifier.append(false);
+
+ m_sortIdentifier[index] = (order == Qt::AscendingOrder);
+ result = sort(index);
+ }
+ return result;
}
bool KEduVocDocument::sort(int index)
sortAscending = m_sortIdentifier[index];
sortIndex = index;
- qStableSort(m_vocabulary);
+ qSort(m_vocabulary);
m_sortIdentifier[index] = !m_sortIdentifier[index];
result = m_sortIdentifier[index];
}
/**
* Sorts vocabulary alphabetically
*
- * @param index index expression
+ * @param index index identifier (0 = original, 1..n = translations
* @returns the direction of sorting: true = ascending
*/
bool sort(int index);
+ /**
+ * Sorts vocabulary alphabetically
+ *
+ * @param index index identifier (0 = original, 1..n = translations
+ * @param order the order used when sorting
+ * @returns the direction of sorting: true = ascending
+ */
+ bool sort(int index, Qt::SortOrder order);
+
/**
* Removes equal entries (original plus all translations)
*
-----------------------------------------------------------------------
copyright : (C) 1999-2001 Ewald Arnold
(C) 2001 The KDE-EDU team
- (C) 2005 Peter Hedlund
+ (C) 2005-2006 Peter Hedlund
email : peter.hedlund@kdemail.net
***************************************************************************/
m_queryDates.append(dt);
m_reverseQueryDates.append(dt);
m_lesson = 0;
+ m_sortIndex = 0;
}
KEduVocExpression::KEduVocExpression ()
void KEduVocExpression::setLeitnerBox( const QString& box )
{
- m_leitnerBox = box;
+ m_leitnerBox = box;
}
QString& KEduVocExpression::leitnerBox()
{
- return m_leitnerBox;
+ return m_leitnerBox;
}
-----------------------------------------------------------------------
copyright : (C) 1999-2001 Ewald Arnold
(C) 2001 The KDE-EDU team
- (C) 2005 Peter Hedlund
+ (C) 2005-2006 Peter Hedlund
email : peter.hedlund@kdemail.net
***************************************************************************/
*/
QString& leitnerBox();
- protected:
+protected:
void Init();
- private:
+private:
QString m_original;
// all these vectors must be deleted in removeTranslation()
QList<KEduVocMultipleChoice> m_multipleChoices;
QString m_leitnerBox;
+ int m_sortIndex;
int m_lesson;
bool m_inQuery;
bool m_active;