この記事は Qt Blog の "Gestures in 4.7.1 behavior change" を翻訳したものです。
バグの修正は時に挙動の変更を伴います。ジェスチャーフレームワークは Qt でも新しいフレームワークです。その導入は Qt 4.6 からですが、Qt 4.7 になってその利用が拡大しています。残念なことに、Qt 4.7.0 で修正するには遅すぎるバグを発見しました。そのため、Qt 4.7.1 で修正を行います。
[qt 'ピンチジェスチャー' l=qpinchgesture v=4.7] は拡大率をプロパティとして所持しています。このプロパティは 0.0 で初期化され、回転時に角度が加算されるように、すべての拡大率の総和を計算していました。
これは誤った考え方です。拡大率は乗算で計算するプロパティです。そのため、Qt 4.7.1 ではズームをより簡単に利用できるようにこの恐ろしい間違いを修正します。この挙動変更は Qt をデバイスで使用するためにも、今行うのが重要だと考えています。
これによって、画像を二本の指で拡大/縮小したい場合、指の動きに応じて計算される拡大率 QPinchGesture::scaleFactor() を使って画像を正常に拡大/縮小出来るようになります。
QPinchGesture の拡大率のプロパティを以下に示します。
Qt の 4.7 branch へのコミットは以下になります: