File: radical.cpp

package info (click to toggle)
kiten 4%3A25.04.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 34,156 kB
  • sloc: cpp: 6,079; xml: 239; makefile: 8; sh: 2
file content (53 lines) | stat: -rw-r--r-- 1,029 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
    This file is part of Kiten, a KDE Japanese Reference Tool
    SPDX-FileCopyrightText: 2006 Joseph Kerian <jkerian@gmail.com>

    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#include <tuple>

#include "radical.h"

Radical::Radical()
    : strokeCount(0)
{
}

Radical::Radical(const QString &irad, unsigned int strokes, unsigned int index)
    : string(irad.at(0))
    , strokeCount(strokes)
    , idx(index)
{
}

QString Radical::toString() const
{
    return string;
}

void Radical::addKanji(const QSet<QString> &newKanji)
{
    kanji += newKanji;
}

const QSet<QString> &Radical::getKanji() const
{
    return kanji;
}

unsigned int Radical::strokes() const
{
    return strokeCount;
}

bool Radical::compareIndices(const Radical &a, const Radical &b)
{
    return a.idx < b.idx;
}

bool Radical::compareFrequencies(const Radical &a, const Radical &b)
{
    // Negative frequency results in a descending order
    return std::make_tuple(-a.getKanji().size(), a.idx) < std::make_tuple(-b.getKanji().size(), b.idx);
}