2021年の Qt Project に対する貢献を振り返る

この記事は [Qt Advent Calendar 2021](https://qiita.com/advent-calendar/2021/qt) １日目の記事になります。

# はじめに

今年も早いものでもう12月。１年中仕事が忙しくて、それ以外のことはほぼ何もせずに１年が終わりそうです。だれか助けて。

仕事に関係したものや、仕事に疲れて現実逃避な感じで、今年も結構 Qt Project に貢献したので、今回は簡単にいくつか紹介したいと思います。

# Qt への貢献

[様々なかたちでの貢献](https://wiki.qt.io/Qt_Contribution_Guidelines) が可能ですが、今回は私が実際にソースコードをいじったものが対象とします。

では、実際に見てみましょう。
https://codereview.qt-project.org/q/owner:tasuku.suzuki

今年の分のスクリーンショットも貼っておきます。
![codereview.qt-project.org_q_owner_tasuku.suzuki,50 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/a65341bf-fa85-7ffd-dcbd-b56a0c04fa9a.png)
![codereview.qt-project.org_q_owner_tasuku.suzuki,50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/94192816-bad6-52f4-c5a9-aaf1a3d4bead.png)

2021 年は、本日12/1時点で57個コミットをプッシュしていますね。

# 貢献の紹介

## １番小さいでしょう

- [Fix a typo in resources_functions.prf](https://codereview.qt-project.org/c/qt/qtbase/+/338994)

いや、これはすごい。

ソースコードといっても、C++ ではなく、Qt のビルドシステム(qmake)まわりの機能の定義をしているところの「リソース(qrc)」に関わる部分のファイルで、
そのなかの「コメント行」に書かれているqmakeの変数名の大文字小文字が間違っていたものの修正ですね。

おそらく Qt ユーザーで気づく人は世界中どこを探してもいなく、Qt 自体の開発者の中にもここを直そうとする人はいないと思える、オンリーワンの修正だったと思います。

こんな１文字の修正でも、大事にしてくれる Qt Project はとても素晴らしい！

- [Fix a typo in the comment for TrueType fonts with embedded bitmaps](https://codereview.qt-project.org/c/qt/qtbase/+/359172)

こっちはもっと小さいですね。

C++ のソースに埋め込まれているコメントに記載のある関数名が間違っていたのを修正しました。

## ドキュメント関連の修正

- [Doc: remove extra close parentheses](https://codereview.qt-project.org/c/qt/qtremoteobjects/+/322101)
- [Doc: fix a centering bug in Printing Widgets' code snippet](https://codereview.qt-project.org/c/qt/qtbase/+/310289)
- [Doc: Fix broken link to obsolete QFtp](https://codereview.qt-project.org/c/qt/qtdoc/+/355205)
- [Doc: bump the OpenSSL minimum supported version to 1.1.1](https://codereview.qt-project.org/c/qt/qtbase/+/356271)

どれもちょっとしたものですが、Qt のドキュメントはむかしからちゃんとしていると評判なので、細かいところでも直したくなるんですよね。

最後の修正は、WolfSSL のセミナーを聞いていたときに、講師の人がそこのドキュメントを参照して、「Qt は OpenSSL 1.0.0 以上を必要とするよ」って言ってたので、え、うそ？って思って、ドキュメントを修正したという経緯があります。

## Qt Creator の変更

バージョンが変わるごとに仕様が変わると噂の(？) Qt Creator ですが、良くしたいところがまだまだたくさんあるので変わっても怒らないでください。

- [Git: Improve technical term "Tarball" for archive](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/342105)

昔自分が作った git archive の機能で、tar.gz の表現が手抜きだぞって指摘があったので改善しました。

- [Improve grouping and order in the build menu](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/339305)

Qt Creator の「ビルド」メニューが項目が多くて（しかも似たようなのが）ぐちゃぐちゃしてきたので整理をしました。結構ユーザーのみなさんに取って影響の大きい変更だったと思います。

- [QbsProjectManager: Fix context menu grouping warning](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/340889)

もはやなぜ／なにを直したのか覚えていませんが、一つ上の修正時になんか気になったんだと思います。

- [ResourceEditor: Set focus to the prefix line edit after creating new one](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/340835)

Qt Creator でリソースファイルの作成直後に、プレフィックスを作成するボタンを押した直後に、名前の編集コントロールに自動でフォーカスがあたらなくていらっとして改善したものです。

- [Locator: elide middle of long text](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/362766)

Locator(Ctrl+K) で、ファイルのパスが長くなった際に、... と省略する場所をパスの後方ではなく中間にしました。同じファイル名があったときに、それが存在するディレクトリ名が見やすくなって判別しやすくなったと思います。

- [Find: improve status message](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/362785)

ディレクトリなどの検索機能で、検索開始直後で、まだ何も見つかっていない状態の時に、検索は続いているものの「No matches found.」と表示されるのが嫌だったので、「Searching...」と表示するようにしました。

- [Apply ManhattanStyle to QSpinBox on a toolbar](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/373504)

Qt Creator のツールバー上に QSpinBox が乗っている時に、スタイルが採用されていなかったのを修正しました。

- [Change prev/next icons on toolbars to up/down arrows](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/353831)

画面右下の出力ペインの移動ボタンが < と > になっていたのですが、出力ペイン自体はリスト表示のものが多く、移動は上下にするものなのでボタンも上下に変更しました。


- [Git: fix archive file name](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/353831)
- [Git: set --prefix to archive](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/382016)

昔、私が追加した git archive の機能の修正と機能追加です。
後者はまだ作業の途中ですね。

- [Find: Enlarge Scope combobox](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/373538)

検索画面で、プロジェクト名が見きれる場合があったので修正しました。


- [Core: Disable the "New Search" tool button after clearing searches](https://codereview.qt-project.org/c/qt-creator/qt-creator/+/376945)

同じく検索画面で、ある状態になったときにボタンの押せる／押せないが間違っていたのを修正しました。

## お掃除

- [Cleanup leftover QWS](https://codereview.qt-project.org/c/qt/qtbase/+/342808)

Qt Windowing System という、Qt2~4 まで存在していた組み込み機器向けのウィンドウ管理の機能の名残りが Qt6 にまだあったので、お掃除しました。

## Qt のビルドの修正

- Fix build without features.なんとか

[Qtアプリのバイナリサイズを削減する(4)](https://qt5.jp/2019/06/qt-lite4/) という記事で過去に紹介したのですが、Qt ではビルド時に細かい単位で機能を抜くことができます。
ただ、それがあまりメンテされていないため、定期的にビルドの修正を行っています。

# おわりに

以上が、今年 Qt Project に行った修正になります。最初に書いたとおり、忙しかったみたいであまり貢献できて。。。いませんね。

Qt に対する貢献の統計は、[https://qt-project-org.herokuapp.com/](https://qt-project-org.herokuapp.com/) の右側で見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/a211c9c0-fcaf-1ed3-99ea-e2501cf0d49d.png)

こんな条件で確認してみると、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/2f39970c-6a42-9a2d-148d-732ff25649e2.png)

こんな感じで自分の貢献が見えるはうれしいことですね！

QtQuickControls2 への貢献なんてすごいですよ？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13867/969b3465-587c-de33-d3e0-dd8b55023cd2.png)

というわけで、みなさん、気が向いたら、Qt を改善してみましょうね！

明日は、@phyblas さんの「PyQtのドラッグ&ドロップの使い方」の予定です。お楽しみに！