• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kiten/lib

  • sources
  • kde-4.14
  • kdeedu
  • kiten
  • lib
  • DictEdict
linearedictfile.cpp
Go to the documentation of this file.
1 /*****************************************************************************
2  * This file is part of Kiten, a KDE Japanese Reference Tool *
3  * Copyright (C) 2001 Jason Katz-Brown <jason@katzbrown.com> *
4  * Copyright (C) 2008 Joseph Kerian <jkerian@gmail.com> *
5  * *
6  * This library is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU Library General Public *
8  * License as published by the Free Software Foundation; either *
9  * version 2 of the License, or (at your option) any later version. *
10  * *
11  * This library is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14  * Library General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Library General Public License *
17  * along with this library; see the file COPYING.LIB. If not, write to *
18  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
19  * Boston, MA 02110-1301, USA. *
20  *****************************************************************************/
21 
22 #include "linearedictfile.h"
23 
24 #include <KApplication>
25 #include <KDebug>
26 #include <KGlobal>
27 #include <KProcess>
28 #include <KStandardDirs>
29 
30 #include <QFile>
31 #include <QTextCodec>
32 
33 LinearEdictFile::LinearEdictFile()
34 : m_properlyLoaded( false )
35 {
36 }
37 
38 LinearEdictFile::~LinearEdictFile()
39 {
40 }
41 
45 QVector<QString> LinearEdictFile::findMatches( const QString &searchString ) const
46 {
47  QVector<QString> matches;
48  foreach( const QString &it, m_edict )
49  {
50  if ( it.contains( searchString ) )
51  {
52  matches.append( it );
53  }
54  }
55 
56  return matches;
57 }
58 
59 bool LinearEdictFile::loadFile( const QString& filename )
60 {
61  kDebug() << "Loading edict from " << filename << endl;
62 
63  //if already loaded
64  if ( ! m_edict.isEmpty() )
65  {
66  return true;
67  }
68 
69  QFile file( filename );
70  if ( ! file.open( QIODevice::ReadOnly | QIODevice::Text ) )
71  {
72  return false;
73  }
74 
75  QTextStream fileStream( &file );
76  fileStream.setCodec( QTextCodec::codecForName( "eucJP" ) );
77 
78  QString lastLine;
79  while ( ! fileStream.atEnd() )
80  {
81  lastLine = fileStream.readLine();
82  if ( lastLine[ 0 ] != '#' ) m_edict << lastLine;
83  }
84 
85  file.close();
86  m_properlyLoaded = true;
87 
88  return true;
89 }
90 
91 bool LinearEdictFile::valid() const
92 {
93  return m_properlyLoaded;
94 }
QTextStream::setCodec
void setCodec(QTextCodec *codec)
QTextStream::readLine
QString readLine(qint64 maxlen)
QVector::append
void append(const T &value)
QFile
QTextStream
QTextStream::atEnd
bool atEnd() const
QList::isEmpty
bool isEmpty() const
QString
QFile::open
virtual bool open(QFlags< QIODevice::OpenModeFlag > mode)
linearedictfile.h
QString::contains
bool contains(QChar ch, Qt::CaseSensitivity cs) const
LinearEdictFile::findMatches
QVector< QString > findMatches(const QString &searchString) const
Get everything that looks remotely like a given search string.
Definition: linearedictfile.cpp:45
QFile::close
virtual void close()
LinearEdictFile::loadFile
bool loadFile(const QString &filename)
Load a file, generate the index if it doesn't already exist.
Definition: linearedictfile.cpp:59
QVector
LinearEdictFile::LinearEdictFile
LinearEdictFile()
Create and initialize this object.
Definition: linearedictfile.cpp:33
QTextCodec::codecForName
QTextCodec * codecForName(const QByteArray &name)
LinearEdictFile::~LinearEdictFile
~LinearEdictFile()
Definition: linearedictfile.cpp:38
LinearEdictFile::valid
bool valid() const
Test if the file was properly loaded.
Definition: linearedictfile.cpp:91
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:16:38 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kiten/lib

Skip menu "kiten/lib"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal