堕天使の煉獄
2025-09
23
02:32:28
あへうひはー
FileSeeker3の代替ツール開発。
とりあず完成ぽ。

前回の内容の更新案を色々盛り込んだりして、とりあえずキリのいい感じに放ったかなと。
タブの一時非表示化
親パス毎に掘るサブフォルダ階層個別指定(画像の[無制限]とか[+2]とかがそれ)
全体の検索ワード履歴
あたり。
しかしこのツール、なんか妙に時間がかかってしまったり。
ハマったのが、リスト内アイテムのD&Dでの移動。
え? そんなん簡単やん。ハマる所ある?
って感じなのですが、以外にハマってしまったり。
ドロップ先の指定にdropIndicatorPositionなるものがあって。
QAbstractItemView::OnItem
QAbstractItemView::AboveItem
QAbstractItemView::BelowItem
QAbstractItemView::OnViewport
の4種類。
「OnItem」はアイテムの上にドロップ。
コレはmoveでなくswap、D&Dでアイテムの入れ替え動作をしたい時に使う感じかな。
「OnViewport」はアイテム上ではないビューポート上。
アイテムのない空白部分へのドロップってことですね。
無視するか、リストの末尾に移動に振り分ける感じか。
で、問題がAboveItemとBelowItem。
AboveItemがインデックスの上にドロップ。
BelowItemがインデックスの下にドロップ。
これが厄介だったりで。
リストアイテムとアイテムの間にD&Dするとき、よく見ると、アイテム間にドロップする場所が2箇所あるんですよね。
んで、AboveItemの場合はインデックスの上。
つまり、ドロップ対象アイテムのindexはドロップ位置の下のアイテムのインデックスに。
BelowItemの場合はドロップ対象アイテムのindexはドロップ位置の上のアイテムのインデックスになる。
通常、アイテムの移動は、QxxxWidgetなんかに標準でついてる機能でやれはこの辺上手くやってくれてる感じで気にしないでよいのですが。
別にデータリストを自前で持ってて、QxxxWidget上でアイテムの移動あったら、移動元と移動先のindexを取得して、データリストを自分で並び替えて、そのあとQxxxWidgetをデータリストを元に更新。
みたいな運用してると、この移動先のindexの取得がAboveItemとBelowItemによってずれるんですよね。
しかも面倒くさいのが、移動先が移動元よりも上にあるか下にあるかでAboveItemとBelowItemが逆動作になったりして。
で、そのへん整理して理解するの面倒くさかったものの、なんとか組み終える。
単アイテムのD&Dは。
問題は、複数行選択時のD&D。
移動開始位置アイテムを基準にすればあとは同じかなとおもったのですが、なんか上手くいかない。
なんか位置がずれる。
しかも2つとかズレたりして、なんかバグってないかコレ?
となって、しばらく考えた後、考えることをやめましたw
そもそも複数行選択でD&Dって、いるのかな?
となったりで。
結局複数行選択時は、全部「先頭に移動」か「末尾に移動」というのを追加することに。
そんな感じで、すっげぇめんどくさくて、ひとしきりぐじぐじ弄り倒した挙げ句、いかに楽するかという方向で終わらせる感じにw
んでも、普通のwinアプリの他のツール(ファイラー系)なんかで見てみたけど、アイテムとアイテムの間の移動先が2つに別れてるのなんて無いんですが。
普通に真ん中に一個だけしか無い……。
Qtはクロスプラットフォームなので、多分そういうシステムのOSがあるのかな。
それにも対応できるようにそうなってるのかもしれないぽ。
次にハマったのが、検索結果につけた、コンテキストメニュー内の「送る」。
標準のシェル使うと必要になるwindows.hともろもろをインクルードしたくないので、自前でsendToの中身を拾ってきて表示する方向でつくってるだけど。
動作的には問題なかったんだけど、表示に違和感が。
なんかメニューのアイコンのサイズが32*32になってるんよね。
他のwin標準の機能つかってるファイラーなんかの送るメニューだと、アイコンは16*16。
んで、QMenu内のアイコンのサイズの指定というのが、どうも普通には出来ないらしい。
なんでもメニュー内のアイコンサイズは、OSのスタイルを参照してるとかで。
なるほど、4kとかデカい画面モードなんかだと、動的にアイコンサイズなんかも変更する必要があったりして、それに対応するために、setIconSizeなんかでは設定できなくなってるのね。
そういうシステム寄りの機能ってことなのかQMenuは。
んでぐぐってみると、QProxyStyleでスタイルを上書きしてPM_SmallIconSizeで返す値を設定すればOSのスタイルを部分的に書き換えられるそうな。
……確かにサイズは変えられた。
ただし、デカくするのは出来たんだけど、何故か32*32→16*16と小さくしても32のまま変わらないという。
取得してるアイコン自体に16*16サイズがないのでわ? そんな馬鹿なと思いながらも、取得したアイコンの内部で持ってるサイズを列挙する関数あるのでやってみると、ちゃんと16*16は含まれている。
んんーなんか何処かでサイズ制限かけられてる感じ??
雰囲気的にはOSの元のスタイルを反映してるっっぽいのでそのへんかと思うものの、じゃあ普通に使ってるファイラーの「送る」のアイコンは16*16になってるよ? ってなるし。
全くわからん……。
とりあえず、アイコンを一旦pixmapに出力して、サイズを16*16にした後、そのpixmapをアイコンとして登録(16*16しか存在しないアイコン)とすると、まあ16*16のアイコンで表示できるようにはなったんだけども……。
これってOSの設定なんかでスケーリングが変更された時でも、ここはハ-ドコーディングされちゃってるので16*16のちっこいアイコンしかでねぇよ?
となっちゃうので、あんまりよろしくない解決法だなぁ……。
この辺、内部でどうなってるのかとか調べてるだけでも数日経ってたりして。
まあ、わからない部分を解明していく過程で色々と知識も蓄えられていくので無駄ではないんですけどもね……それでも時間の浪費と徒労感は積もるわぁ……。
そんで最後のハマりポイントは、検索対象のパスとかファイルリストの管理方法、いつ何処で何をキャッシュするかとかそのへん。
この辺は結局いまだにどうするのがベストなのかまだ全然結論出てません。
タブ毎で検索対象パスリストを切り替える方式というのが問題を複雑にしてる感あったりもするのですがw
そこで、検索対象パスリスト自体はアプリ全体で一個共通で持つ……という方向にしたほうが管理は楽なのですが、無駄が多かったり、無駄を省こうと思うと結局複雑な感じになりそうだし……。
そんな感じで、スッキリしないモヤモヤな感じに。
んまあ、とりあえずここらでキリつけて次に進みたいかなと言う感じぽ。
しばらくは運用してみて使用感を確かめて……結局FileSeeker3でいいかってなるオチもあるんだけどね(ぉ
はふ~
とりあず完成ぽ。

前回の内容の更新案を色々盛り込んだりして、とりあえずキリのいい感じに放ったかなと。
タブの一時非表示化
親パス毎に掘るサブフォルダ階層個別指定(画像の[無制限]とか[+2]とかがそれ)
全体の検索ワード履歴
あたり。
しかしこのツール、なんか妙に時間がかかってしまったり。
ハマったのが、リスト内アイテムのD&Dでの移動。
え? そんなん簡単やん。ハマる所ある?
って感じなのですが、以外にハマってしまったり。
ドロップ先の指定にdropIndicatorPositionなるものがあって。
QAbstractItemView::OnItem
QAbstractItemView::AboveItem
QAbstractItemView::BelowItem
QAbstractItemView::OnViewport
の4種類。
「OnItem」はアイテムの上にドロップ。
コレはmoveでなくswap、D&Dでアイテムの入れ替え動作をしたい時に使う感じかな。
「OnViewport」はアイテム上ではないビューポート上。
アイテムのない空白部分へのドロップってことですね。
無視するか、リストの末尾に移動に振り分ける感じか。
で、問題がAboveItemとBelowItem。
AboveItemがインデックスの上にドロップ。
BelowItemがインデックスの下にドロップ。
これが厄介だったりで。
リストアイテムとアイテムの間にD&Dするとき、よく見ると、アイテム間にドロップする場所が2箇所あるんですよね。
んで、AboveItemの場合はインデックスの上。
つまり、ドロップ対象アイテムのindexはドロップ位置の下のアイテムのインデックスに。
BelowItemの場合はドロップ対象アイテムのindexはドロップ位置の上のアイテムのインデックスになる。
通常、アイテムの移動は、QxxxWidgetなんかに標準でついてる機能でやれはこの辺上手くやってくれてる感じで気にしないでよいのですが。
別にデータリストを自前で持ってて、QxxxWidget上でアイテムの移動あったら、移動元と移動先のindexを取得して、データリストを自分で並び替えて、そのあとQxxxWidgetをデータリストを元に更新。
みたいな運用してると、この移動先のindexの取得がAboveItemとBelowItemによってずれるんですよね。
しかも面倒くさいのが、移動先が移動元よりも上にあるか下にあるかでAboveItemとBelowItemが逆動作になったりして。
で、そのへん整理して理解するの面倒くさかったものの、なんとか組み終える。
単アイテムのD&Dは。
問題は、複数行選択時のD&D。
移動開始位置アイテムを基準にすればあとは同じかなとおもったのですが、なんか上手くいかない。
なんか位置がずれる。
しかも2つとかズレたりして、なんかバグってないかコレ?
となって、しばらく考えた後、考えることをやめましたw
そもそも複数行選択でD&Dって、いるのかな?
となったりで。
結局複数行選択時は、全部「先頭に移動」か「末尾に移動」というのを追加することに。
そんな感じで、すっげぇめんどくさくて、ひとしきりぐじぐじ弄り倒した挙げ句、いかに楽するかという方向で終わらせる感じにw
んでも、普通のwinアプリの他のツール(ファイラー系)なんかで見てみたけど、アイテムとアイテムの間の移動先が2つに別れてるのなんて無いんですが。
普通に真ん中に一個だけしか無い……。
Qtはクロスプラットフォームなので、多分そういうシステムのOSがあるのかな。
それにも対応できるようにそうなってるのかもしれないぽ。
次にハマったのが、検索結果につけた、コンテキストメニュー内の「送る」。
標準のシェル使うと必要になるwindows.hともろもろをインクルードしたくないので、自前でsendToの中身を拾ってきて表示する方向でつくってるだけど。
動作的には問題なかったんだけど、表示に違和感が。
なんかメニューのアイコンのサイズが32*32になってるんよね。
他のwin標準の機能つかってるファイラーなんかの送るメニューだと、アイコンは16*16。
んで、QMenu内のアイコンのサイズの指定というのが、どうも普通には出来ないらしい。
なんでもメニュー内のアイコンサイズは、OSのスタイルを参照してるとかで。
なるほど、4kとかデカい画面モードなんかだと、動的にアイコンサイズなんかも変更する必要があったりして、それに対応するために、setIconSizeなんかでは設定できなくなってるのね。
そういうシステム寄りの機能ってことなのかQMenuは。
んでぐぐってみると、QProxyStyleでスタイルを上書きしてPM_SmallIconSizeで返す値を設定すればOSのスタイルを部分的に書き換えられるそうな。
……確かにサイズは変えられた。
ただし、デカくするのは出来たんだけど、何故か32*32→16*16と小さくしても32のまま変わらないという。
取得してるアイコン自体に16*16サイズがないのでわ? そんな馬鹿なと思いながらも、取得したアイコンの内部で持ってるサイズを列挙する関数あるのでやってみると、ちゃんと16*16は含まれている。
んんーなんか何処かでサイズ制限かけられてる感じ??
雰囲気的にはOSの元のスタイルを反映してるっっぽいのでそのへんかと思うものの、じゃあ普通に使ってるファイラーの「送る」のアイコンは16*16になってるよ? ってなるし。
全くわからん……。
とりあえず、アイコンを一旦pixmapに出力して、サイズを16*16にした後、そのpixmapをアイコンとして登録(16*16しか存在しないアイコン)とすると、まあ16*16のアイコンで表示できるようにはなったんだけども……。
これってOSの設定なんかでスケーリングが変更された時でも、ここはハ-ドコーディングされちゃってるので16*16のちっこいアイコンしかでねぇよ?
となっちゃうので、あんまりよろしくない解決法だなぁ……。
この辺、内部でどうなってるのかとか調べてるだけでも数日経ってたりして。
まあ、わからない部分を解明していく過程で色々と知識も蓄えられていくので無駄ではないんですけどもね……それでも時間の浪費と徒労感は積もるわぁ……。
そんで最後のハマりポイントは、検索対象のパスとかファイルリストの管理方法、いつ何処で何をキャッシュするかとかそのへん。
この辺は結局いまだにどうするのがベストなのかまだ全然結論出てません。
タブ毎で検索対象パスリストを切り替える方式というのが問題を複雑にしてる感あったりもするのですがw
そこで、検索対象パスリスト自体はアプリ全体で一個共通で持つ……という方向にしたほうが管理は楽なのですが、無駄が多かったり、無駄を省こうと思うと結局複雑な感じになりそうだし……。
そんな感じで、スッキリしないモヤモヤな感じに。
んまあ、とりあえずここらでキリつけて次に進みたいかなと言う感じぽ。
しばらくは運用してみて使用感を確かめて……結局FileSeeker3でいいかってなるオチもあるんだけどね(ぉ
はふ~
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
■
■
もう9月か
03
04
05
06
07
08
09
10
11
12
13
14
■
■
んぐぁぁ
15
[敬老の日]
16
17
18
19
■
■
往くか去るか
20
21
22
23
■
■
あへうひはー
[秋分の日]
[秋分の日]
24
25
26
27
28
■
■
だいぶ終わりが見えてきた
29
30
total:2162973 t:238 y:24
■記事タイトル■
■年度別リスト■
2025年
2025年12月(0)2025年11月(0)
2025年10月(0)
2025年09月(5)
2025年08月(3)
2025年07月(1)
2025年06月(2)
2025年05月(1)
2025年04月(2)
2025年03月(3)
2025年02月(8)
2025年01月(3)
2024年
2024年12月(1)2024年11月(2)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp

