KOrganizerのJurnal と Hatena diary の同期を取る。
まずは、KOrganizerを起動し、オブジェクトの名前を調べる。
kdcopで korganizerのツリーを調べる。
# Journal のパネルを表示 dcop korganizer "KOrganizer MainWindow" activateAction view_journal # 今日の日付へ dcop korganizer "KOrganizer MainWindow" activateAction go_today # action一覧(共通) dcop korganizer "KOrganizer MainWindow" actions
と、GUIを操作する関数は見つかったが、
テキストコントロール内の情報を得るには到らず。
他に利用できそうなactionは、
file_save ... セーブしてファイルからデータを読む、、、だと DCOP関係ないし。
~/.kde/share/apps/korganizer/std.ics から読み込む方が簡単そう。
edit_copy ... でクリップボード経由でテキストを得られるかな。など考えたけど(選択方法が分からなかったので諦めた。select_allみたいなのがあればなぁ...)
情報を得るにはプロパティの方かなと思い、
property, propertyNames を探ってみるが、こちらはスタイル関連のプロパティばかりだった。
関数の型をみても他に文字列の情報を返しそうな関数はなかったので、DCOP関連のドキュメントを当たる事にした。
- DCOP作成のチュートリアル
http://developer.kde.org/documentation/tutorials/dot/dcopiface/dcop-interface.html
なければ QCString getJournalText(int year, int month, int day) みたいなのを追加しよう。
を読み、該当するコントロールを探す方法を探ってみる。
# オブジェクト一覧表示 dcop korganizer qt objects | grep -i journal
dcop korganizer "qt/KXMLGUIClient-KActionCollection/view_journal" property text
と打つと、"ジャーナル(&J)"と言う文字列が得られた。
これは、ツールバーのボタンのラベルらしい。
この調子で、ジャーナルのテキスト・コントロールのプロパティを参照すれば目的の情報を得られるかなと思ったけど、
まだ日付をどうやって指定すればいいのか問題が残っている。
散文になってしまったけどそのままPOST。(汗