Masaatoshi Ito の備忘録

主にザウルス(SL-C3100)に関する備忘録を書いています。更新停滞中&書く内容迷走中…。

SHARP純正Qtopia環境のタスクバーのアイコンについて

2010年07月02日 07時00分00秒 | Zaurus
Konqueror/embeddedをコンパイルして気になっていたのですが、アプリケーションとして登録してKonqueror/embeddedを起動するとタスクバーにアイコンが表示されるのですが、終了しても残ったままになってしまいました。おそらく、マルチスレッドに対応したQt-embeddedやQtopiaを別ライブラリで作成して、そちらを動的リンクしているからだと思ったのですが、よく分かりませんでした。

Qtopiaの1.5.0のソースを覗いても、6つぐらいアプリケーションのアイコンは残したままにして、古いものから自動で削除していくみたいな記述がされており、終了時に削除していそうな記述はありませんでした。

Qtopiaの1.6.0ですと終了時に削除していそうですが、かなり手が入っておりクラス体系も変化しているため、あまり当てになりませんでした。

結局、straceでqcopメッセージのソケットへのwriteを追っていくと、
QPE/Applicaiton/qpe
removeTask(const QString&) 'アプリケーション名'
というメッセージを送ってそうなのを発見しました。しかもメッセージの関数?の引数の型が「const QString&」となっているため、C++で書けば送信できますがqcopコマンドでは送信できません。多分、SHARP独自のQtopia-1.5への機能追加だと思います。

qcoptest(http://www2.gol.com/users/ikezawa/zaurus/qcoptest.html)というアプリで試したら送信できましたが(引数の型が間違っていても送信してしまうみたい)、アプリケーション名が送信できずqpe自体が終了(Qtopia環境が終了)してしまいました。

最終的に、QPEApplicationクラスで、アプリケーションが終了するときに上記メッセージを送ったらアイコンが消えるようになりました。

ということで、以上メモ書きです。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Konqueror Embedded のコンパ... | トップ | ZauCashのxslファイル »
最新の画像もっと見る

コメントを投稿

Zaurus」カテゴリの最新記事