Closed ma8ma closed 4 months ago
スレビューの「選択範囲の画像を開く」を使うと2つ目以降の画像は参照元の情報が表示されない
バグの説明
スレビューに表示された画像URLを複数範囲選択して右クリックメニューにある「選択範囲の画像を開く」コマンドを使うと 2つ目以降の画像は参照元スレ名と参照元レスがつきません。
範囲選択ではなく1つずつクリックして開いたときは参照元の情報が表示されます。
再現の方法
やりたかったこと・期待する結果
「選択範囲の画像を開く」を使ったとき2つ目以降の画像も参照元スレ名と参照元レスが表示される。
スクリーンショット
なし
動作環境
[バージョン] JDim 0.11.0-20240211(git:550c3acda1) [ディストリ ] Ubuntu 23.10 (x86_64) [パッケージ] バイナリ/ソース( <配布元> ) [ DE/WM ] KDE [ gtkmm ] 3.24.8 [ glibmm ] 2.66.6 [ TLS lib ] GnuTLS 3.8.1 [オプション ] '--with-alsa''--with-pangolayout' [ そ の 他 ]
追加の情報
ソースコードを調べたところ 複数の画像をダウンロードするときは待機処理が入ります。 待機が解除されダウンロードが開始されるときに画像データが保持する参照元のURLが使われますが ダウンロードの前に画像データを初期化する処理が入り保持していたURLが消去されてしまう状態のようです。
https://github.com/JDimproved/JDim/blob/859e3eb17cc84d8fd1829807431a07157ddbe96a/src/dbimg/img.cpp#L294-L298
上記のrefurlはDBIMG::Img::download_img( const std::string& refurl, ... )の第一引数でconst参照なので m_refurl を渡している場合はclear()したときに内容が消去されます。
refurl
DBIMG::Img::download_img( const std::string& refurl, ... )
m_refurl
clear()
スレビューの「選択範囲の画像を開く」を使うと2つ目以降の画像は参照元の情報が表示されない
バグの説明
スレビューに表示された画像URLを複数範囲選択して右クリックメニューにある「選択範囲の画像を開く」コマンドを使うと 2つ目以降の画像は参照元スレ名と参照元レスがつきません。
範囲選択ではなく1つずつクリックして開いたときは参照元の情報が表示されます。
再現の方法
やりたかったこと・期待する結果
「選択範囲の画像を開く」を使ったとき2つ目以降の画像も参照元スレ名と参照元レスが表示される。
スクリーンショット
なし
動作環境
追加の情報
ソースコードを調べたところ 複数の画像をダウンロードするときは待機処理が入ります。 待機が解除されダウンロードが開始されるときに画像データが保持する参照元のURLが使われますが ダウンロードの前に画像データを初期化する処理が入り保持していたURLが消去されてしまう状態のようです。
https://github.com/JDimproved/JDim/blob/859e3eb17cc84d8fd1829807431a07157ddbe96a/src/dbimg/img.cpp#L294-L298
上記の
refurl
はDBIMG::Img::download_img( const std::string& refurl, ... )
の第一引数でconst参照なのでm_refurl
を渡している場合はclear()
したときに内容が消去されます。