伝説のツール「NotesPeek」をQtでリメイク開発記2017-7-2

NotesPeekというNotesのデータベースを文書、フィールド、リッチテキスト要素のレベルまで細分化して解析できるツールに、最新のAPIバージョンと、マルチプラットフォームC++ライブラリでリメイクに挑んでいるこの企画。

一銭にもなりませんが、どうしても作ってみたくて、個人的な趣味で作っているこの企画。

今までNotesのAPIについての仕組みや洞察、C++ライブラリ化の仕方などを、愛読書Notes/Domino APIプログラミング―C++とSTLによる実践的プログラミングからの引用と私なりの新しい解釈でアレンジして紹介してきましたが、本業が多忙になったことも相まって、肝心のリメイクがはかどりません。

そこで、今週からAPIの紹介などをいったん後回しにして、週に一度は何らかの進捗をして、その様子をお伝えしていこうと思います。

今週は、NotesPeekでデータベースが展開する6つのサブカテゴリを追加したので、その紹介です。

NotesPeekでデータベース(画面ではログデータベース)を見ると、原則として6つのサブフォルダがあるのがわかります。

f:id:takahide-kondoh:20170702172651p:plain

  1. Database Information (データベース情報)
  2. Access Control List (アクセス制御リスト)
  3. Design Elements (設計要素)
  4. Documents (文書)
  5. Profiles (プロフィール文書)
  6. Deletion Stubs (削除スタブ)

ここで「Recently Peeked Notes」は、「最近覗いた文書」ということで、この機能は後回しにしようと思います。

f:id:takahide-kondoh:20170702172701p:plain

「Documents」にはすでに見つかっている文書の数も出ているので、情報としてはすでに取得済みと考えられます。

現在開発中のNotesPeekリメイクアプリ「NSFinder」で同じログデータベースを見ると、以下のようになります。

f:id:takahide-kondoh:20170702172711p:plain

もう少し下の方になります。NotesPeekはディレクトリ、Notesデータベース、Notesテンプレートの順に取得してきているようですが、NSFinderでは一括で取ってきています。いずれ改善すべきポイントです。

f:id:takahide-kondoh:20170702172722p:plain

ログデータベースが出てきました。前回から各アイテムにはアイコンも追加してあります。

f:id:takahide-kondoh:20170702172734p:plain

文書を展開するロジックは、すでにNoteFileItemというクラスで実装済みでしたが、その機能をこの「Documents」と表示するアイテムクラスに移植しました。なので、細かなUIの調整が主で、APIの面ではたいしたことはしていません。

今後の方針ですが、少し悩んでいます。文書を深掘りして、フィールド、リッチテキスト要素と「下へ、下へ」掘っていくべきか、ACLや設計要素など、「横へ、横へ」広げていくべきか。次回までには決めておかないと、先に進めなくなってしまうので、今日、明日には結論を出そうと思っています。ではまた来週。