Warning, /education/kiten/TODO is written in an unsupported language. File is not indexed.
0001 ---------------------------TODO List--------------------------- 0002 Cat By Description 0003 By 4.1: 0004 R+ 4.1 Profile the linear vs indexed EDICT back-ends 0005 By 4.2: 0006 B 4.2 Investigate crash with kinput2, long ago... https://bugs.kde.org/show_bug.cgi?id=115579 0007 B 4.2 Investigate https://bugs.kde.org/show_bug.cgi?id=115579 , this is probably dated 0008 B 4.2 Make radselect hilight colors noticeable (use current theme) 0009 F+ 4.2 GHNS support (including dictionary "updates") https://bugs.kde.org/show_bug.cgi?id=110541 0010 R+ 4.2 Trim data/edict down to "common entries only" to help distros/svn users 0011 R 4.2 Correct radselect license/move some of radselect into libkiten 0012 R 4.2 DBUS Interface + Documentation 0013 R 4.2 Be EBN-clean and dashboard-clean (RECURRENT) 0014 R 4.2 Update Help Files (RECURRENT) 0015 Unscheduled: 0016 B - Handle searches that don't include Word, Reading or Meaning in a sane way 0017 B- - Searching is duplicated from input box, atm 0018 F+ - Radical decomposition in radselect (including in drag and drop) 0019 F+ - Heisig "primitive" set in radselect 0020 F+ - Mouse-over kanji information in radselect 0021 F+ - Greatly expand the radkfile, to include pronunciation, alternatives, etc 0022 F+ - Multi-thread the app, so the interface doesn't wait for the results 0023 F+ - Add a kana table (it would be good to have audio samples for pronunciation as well) 0024 F+ - Handle searches of adjectives ending in -na (like deconjugation of verbs) 0025 F+ - Handle JMDict files 0026 F+ - Handle KANJIDIC2 files 0027 F+ - Handle fpwing files 0028 F+ - "Quick-Select" widget to adjust which dictionaries a given query will use 0029 F+ - Export to various types of flashcard programs (Learn mode replacement) 0030 F - New Icons (radselect launch, filter rare, match beginning/exact/any) 0031 F - Add "drawn kanji" support somewhere (kanjidic synthetic output field?) 0032 F - Add sub-program to support mouse/tablet drawn kanji for lookup 0033 F - Opening radselect while looking at a 1 kanji search displays radicals 0034 F- - Add popup menus to Forward/Back history buttons 0035 F- - Nicely format output fields (word type in particular) 0036 F- - Links directly from things like word type to Help File 0037 F- - Seperate Project: Screensaver to display random entries https://bugs.kde.org/show_bug.cgi?id=63296 0038 F- - Can we omit/seperate name readings? https://bugs.kde.org/show_bug.cgi?id=46511 0039 C - Move display to an MVC system 0040 C - Preferences Framework 0041 ? - Case sensitive non-japanese searches? 0042 ? - Look carefully at EDICT2 format... note the multiple kanji/kana given 0043 ? - Input Filters? 0044 ? - Implement Multi-search? 0045 ? - Sequential lists? 0046 ? - Dictionary Editor? (Version and upload changes?) 0047 ? - Custom Dictionaries? (Open flashcard decks as dictionaries?) 0048 Category: (F)eature, (B)ug, (R)elease Requirement, (C)ode Organizaion, (?)Investigate as possible 0049 (+/- indicate relative importance IMNSHO) 0050 (RECURRENT) = After a release, move this to the next planned release 0051 0052 ---------------------------TODO Details--------------------------- 0053 MVC: Primary advantages of moving to a model-view system are that we would be able to offer things like 0054 "right click on the entry, and see a list of other fields that could be displayed". Mouse-over kanji 0055 writing and such would be easy 0056 Disadvantages: the current CSS code is fairly easy to work with and understand 0057 0058 Preferences Framework: 0059 At the moment, the lib and app preference files need to be exactly in sync, or a crash will occur. 0060 We probably need to make our own layer on top of the general preferences code. 0061 Connections: 0062 Select Dictionary File: 0063 Currently handled entirely between app and .kcfg (lib is just a server here) 0064 Select Display Fields: 0065 List of widgets is returned from DictionaryManager, plugged into a KTabWidget 0066 by the app. Requires app to include space in .kcfg if supporting a dict type. 0067 Display Field includes things like "--NewLine--" 0068 Sort Order: 0069 DictionaryManager is asked for a complete <long name> -> <short abbreviation> 0070 QMap. Uses the keys from this. 0071 0072 Multi-search; 0073 This capability would allow you to select, for example, all words that contain any of a list of kanji. 0074 Alternatively, it would allow you select all words that contain at least one of the listed kanji, and 0075 no kanji that are not on the list. The interface for this might be tricky. 0076 0077 Sequential Lists 0078 Be able to generate sequential learning lists, given a list of known kanji 0079 The Layered method is either very time intensive, or very memory intensive 0080 pick one and try implementing. Provided we limit the lists to containing 0081 only the resultant kanji, even the memory intensive version will only be a 0082 few (~20) megs for fairly large lists. Even on modern hardware, a perl implementation 0083 with ~40 kanji on each list takes about 10-15 seconds to run. 0084 Split into a separate app. This is the optimal time for a complete rewrite 0085 "inspired by learn mode". 0086 0087 Other Formats: 0088 (Potential) other formats to look into: 0089 (fre)epwing: http://www.sra.co.jp/people/m-kasahr/freepwing/ 0090 using libeb? Using it would allow "accessing EB, EBG, EBXA and EPWING CD-ROM dictionaries" 0091 jdictionary: http://jdictionary.info/ 0092 stardict: http://stardict.sourceforge.net 0093 DICT: http://www.dict.org/ 0094 English -> English mainly, but networked ... would be cool to see. 0095 Check out kdict for a client in action. 0096 JMDict: http://www.csse.monash.edu.au/~jwb/j_jmdict.html 0097 0098 0099 ---------------------------Design Notes--------------------------- 0100 Search String Design: 0101 Add some complex search capabilities (space seperated or symbol seperated) 0102 Search String BNF: [<item>]* 0103 <item> ::= <non-japanese meaning - not allowed to contain ':'> 0104 <item> ::= <kana word - must be exclusively kana> 0105 <item> ::= <word containing kanji - may contain kana> 0106 <item> ::= <key>:<extended value> 0107 <key> ::= either a single character or code for one of the dictionaries 0108 <extended value> ::= a value that the key has to match 0109 The Search <item> list is "and"ed together logically, to determine results 0110 This can be modified with the match-type setting, which is evaluated 0111 seperately for each field 0112 0113 Code Audit Checklist: 0114 Static Variables (avoid them)... use KStaticDeleter with pointers if needed 0115 Static Methods (use them if possible) 0116 Forward Declarations (eliminate header includes from header files) 0117 Iterators (Cache an Iterator.end() object instead of using end() in the loop) 0118 Iterators (Use const interators whenever possible) 0119 Iterators (foreach) 0120 Review the Initialization chain for using Delayed Init 0121 Double check the QCString usage for termination (in the indexer code) 0122 Use QString.isNull() and isEmpty()... not comparison to QString(""), "" or QString::null 0123 Use deleteLater() as a shortcut instead of manually implementing QTimer::oneShot() code 0124 Check ALL files for i18n strings that are not inside of i18n() or tr() methods 0125 Look through and get rid of redundant headers (particularly in the lib files) 0126