堕天使の煉獄

Gallery
Comic
Story
Production
Work
Link

2025-09

14

06:22:39

んぐぁぁ

FileSeeker3の代替ツール開発。

ようやく検索周りに取り掛かったところで、次から次へと問題というか、考慮するべき問題が噴出して、あまりの物量というか考えなきゃいけない事の多さに一旦現実逃避してました(ぉ

o_027.jpg

とりあえず検索まで出来た~。

まず検索対象フォルダの方、最初はQListViewを使ってたのだけども、model/view構造だと、D&Dでの移動がなんか上手くいかない。
まあ登録パスだけなので数ないし、D&Dの移動が簡単なQListWidgetに切り替えるか。
出来た~。
んんん……複数選択してのD&Dでの移動、移動先のindexに移動元のindexListのアイテムを移動。
QListだとどうやるんだ??
泥臭くちまちまやる以外になんか機能として無いのかなそういうの。
……またgoogle先生のAIが有りもしない関数使ってるコード吐いてて、ねえじゃんそんなメンバ関数……嘘吐きぃぃ!
ってなったりw
この流れ何度目って感じぽ。


ん~でもやっぱ、階層の深さ指定出来るんなら、サブフォルダ表示ある方が捗るかなぁ。
じゃあQTreeWidgetに変更するか。

なんか挙動がQListWidgetと色々違う。
チェックボックス付けるとItemフラグが選択可能だのなんだの、Treeアイテム固有の設定が色々あって、複数選択周りの挙動がQListWidgetと全然違う。

あとD&D移動は一番親のアイテムのみ可能で、下位フォルダは移動不可というかD&Dも不可にしたい。
チェックボックスのon・offでの下位フォルダの扱いとか、下位フォルダはツリーの開閉時に取得する形にしたほうがいい(先に一旦取得しておく形だと、フォルダ構成が外部で変更時に自動で変更しないので面倒)

などなど、次から次へと、考慮すべき問題が出てきて、ここだけでもえらく時間食ったり。
Qtって、ちょっと変わった独自の動作とかさせようと思うと途端にいろいろと面倒になるんだよなw
コーディングの時間よりもドキュメント調べてる時間のほうが遥かに長い……。

D&Dでもドロップ位置が、アイテム上なら位置入れ替え(swap)、アイテムの上の位置、下の位置(微妙によく見るとアイテムとアイテムの間に2つドロップ位置がある)で、上から下にD&Dした場合と、その逆で動作が変わったりするのとかも地味に面倒だったりするし。


で、そこからようやく検索周りに。

QFileSystemWatcherで検索対象フォルダパスの構成に外部で変更あればリストを更新。
QFutureWatcherで別スレッドで検索実行。

結果のキャッシュとか、検索対象フォルダパスに変更あった時に、どのタイミングで再作成するかとか、タブを切り替えた時にどのキャッシュを残したままにするのかとか。

また、QFileSystemWatcherで監視できるパスの数はOS依存で決まっているらしいので、現在のタブ内の登録検索対象フォルダパスのみ監視対象にしているので、タブを切り替えて戻ってくるまでの間にファイル構成に変更あったときはどうすんの?
とか。

とにかく色々と考慮すべき事がいぱーい。
そりゃ、検索対象をタブで分けて管理とか出来るファイル検索ソフトとかみたことねーわ。
それ起因の面倒がかなり多い印象だったりして。
むううん。


FileSeeker3では経過時間でも一定間隔空くとキャッシュをクリアしてるっぽい?

検索結果というか、検索対象のファイルリストのキャッシュ(インデックス作成)もしてるっぽいんだけど、同じ検索対象フォルダパス群に対して別の検索ワードで検索すると、一瞬で結果表示できるのはオンメモリのファイルリストに対して検索を行ってるからっぽいよね。

同一タブ内で別のワードで再検索する場合には高速で結果でていいんだけども、ファイル構成変更あった場合、変更のあったパスのところだけインデックス再取得&再検索とかになるのか?
そうなるとインデックスはパス毎に別れてて欲しいけど……。

今作ってるのは、タブで検索対象の分類を分けれるのが特色の一つなので、つまるところ検索対象をもともとかなり絞る作りになっている感じで。
なので、ドライブ指定で以下全検索みたいなのはそもそもやらない&出来ない(走査するサブディレクトリの階層に制限ある)

なので、インデックス使わないで毎度検索でもそれなりに速度もでるんじゃないかなぁとか思ったり。
検索対象のファイル構成に変更がない場合は、検索結果のキャッシュはしてるので、検索ワードの履歴から何個か前の結果を表示するときはすぐに出る感じにはなってるし。

うーん。
FileSeeker3だと検索後にステータスバーで検索ヒット件数と掛かった秒数が表示されてるので、そこも真似してみる。
んで、大量のファイルのあるフォルダの場合の時間とか見ながらこのへんの、何処にどれだけコストかけたり、キャッシュ効かせたりするのかとか探って行くしかないか。

「最高のテストは実戦」とジオブリ栄子ちゃんも言ってたしな(ぉ


後はちょろっとだけある設定まわり(検索ワード履歴の最高保持件数だとかそんなん)の設定ダイアログと、検索結果リストアイテムの処理周りぐらいかな。

検索結果リストアイテムの処理周りは、コンテキストメニューで「送る」メニューを自前で読み込む方向に舵を切ったんだけども。
そのおかげでwinAPIを直接触らなくても良くなったのだけど。
あとCOMライブラリを初期化&開放処理もいらない。やったねたえちゃん!

今度はダブルクリックでファイルタイプに関連付けられたアプリで起動……てのがQProcessでは出来ないっぽい??

結局「ShellExecute」ていうwinAPIを使う羽目に。
COMライブラリを初期化&開放処理もやっぱり必要になるというオチ。たえちゃんやっぱりバッドエンド!
んーなんとかならんのかこれ。

windows.hをincludeすると、名前空間が大量のゴミであふれるのでやりたくないんですよね……。
windows.hをc++のモジュール化する話はどこいったんだろね(モジュール化することで名前空間の汚染も止められる)
めちゃくちゃに肥大&依存関係てんてこもり&影響範囲が大きすぎて怖くて弄れない巨大な負の遺産windows.h……。

したらQDesktopServices::openUrlで出来るのか。
QUrlの指定で「file:///」から初めてファイルパスを書けば規定のアプリで開けるように。
今度こそやったねたえちゃん!
無事にwindows.hのincludeを削除。
はースッキリ。

なんかQFileでもそれ出来るでと例の如くgoogle先生のAIが申しております。

「QFile::open(QIODevice::ReadWrite)の引数でQIODevice::ShowInWindowフラグを使うと、ファイルをデフォルトのアプリケーションで開くことができます」

QIODevice::ShowInWindowフラグでググってもなんにもヒットしねぇ。
どんだけ調べてもQFileにデフォルトのアプリ開く機能ないぞコレ。
またAIの嘘吐きぃ!

真っ先に嘘かも? と疑う前提でしか見れないAIってもはや害悪だろこれ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:2162979 t:244 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)

■レス履歴■

2025-05-11 11:50:17 - まうる

2025-05-09 02:22:38 - 織田霧さくら

2025-05-05 11:04:08 - まうる@ZONA

2023-09-26 14:59:38 - 久慈光樹

2023-09-26 14:29:10 - 織田霧さくら

2023-09-26 13:10:45 - 久慈光樹

2023-03-20 05:30:16 - 織田霧さくら

2023-03-15 20:42:58 - まうる

2022-12-26 19:14:57 - 織田霧さくら

2022-12-25 02:28:36 - まうる@まるるん


■ファイル抽出■

■ワード検索■

堕天使の煉獄

https://rengoku.sakura.ne.jp
管理人

織田霧さくら(oda-x)

E-mail (■を@に)

oda-x■rengoku.sakura.ne.jp

堕天使の煉獄バナー 堕天使の煉獄バナー