プロジェクト

全般

プロフィール

提案 #1532

完了

gtk3: gladeファイルの使用は続ける?中止する?

Shibafu Midorino さんが2年以上前に追加. 2年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:

説明

gtk3ブランチではいくつかのWindowのレイアウトが.glade拡張子のXMLファイルによって記述されています。
GladeはGTK界隈のUIデザインツールですが、理由があってgtk2時代には採用しなかった話を聞いた覚えがあります。

このまま使う気があるのか、やっぱりやめる方向でRubyコードでレイアウトを組むように戻すか意思確認をしたいです。


ファイル

toshi_a 初音 さんが2年以上前に更新

  • ステータス分類待ち から 実装待ち に変更

Shibafu Midorino さんが2年以上前に更新

  • ステータス実装待ち から レビュー待ち に変更
  • ブランチtopic/1532-deglade にセット

plugin/gtk3/widget/dialog.glade 以外のgladeファイルを廃止し、Rubyコードでの実装に差し替えました。

影響範囲

  • メインウィンドウのレイアウト
  • 設定ダイアログのレイアウト
  • 設定>抽出タブの右ペインのレイアウト

dialog.glade が消せない理由

OK/キャンセル等を上に置くために use-header-bar というプロパティを与えるようになっているのですが、このプロパティはBuilderかgtk_dialog_new_with_buttons()、もしくはg_object_new()での初期化でしか与えることができません。
Builder (ここではGlade経由って解釈でいいです) を使わない場合は他の関数を使うしかないのですが、これらはruby-gnomeで使うことができません……。
gtk_dialog_new_with_buttons() はGI非公開関数、g_object_new() ……は多分呼べるわけないですね。

探せば何らかのハックはあるかもしれませんが、Gladeで手打ちにするか、昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。

toshi_a 初音 さんが2年以上前に更新

  • 担当者toshi_a 初音 にセット

昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。

ダイアログウィンドウ下部にボタンが置かれているようなもののことですよね。use-header-barを与えることに特に魅力を感じないのと、これを諦めたらgladeを完全にやめられるならぜひ実装したいです。

toshi_a 初音 さんが2年以上前に更新

  • ステータスレビュー待ち から まだダメ に変更
  • 担当者toshi_a 初音 から Shibafu Midorino に変更

(昨日つついさんと話したけど、ステータス「まだダメ」は「差し戻し」くらいのほうが良さそうだなぁ)

Shibafu Midorino さんが2年以上前に更新

  • ステータスまだダメ から レビュー待ち に変更
  • 担当者Shibafu Midorino から toshi_a 初音 に変更

dialog.gladeを削除し、Gtk::DialogのサブクラスとしてPlugin::Gtk3::Dialogを書き換えました。

Izumi Tsutsui さんが2年以上前に更新

Raleigh-Reloaded の環境で topic/1532-deglade を試すと
statusbar の横幅がなんかはみ出してる感じです。

develop

topic/1532-deglade

d38ceddcmargin の左右がダメなんか、と以下のパッチを当てると一応それっぽくなります。

diff --git a/plugin/gtk3/widget/mikutterwindow.rb b/plugin/gtk3/widget/mikutterwindow.rb
index d874d254..521f1459 100644
--- a/plugin/gtk3/widget/mikutterwindow.rb
+++ b/plugin/gtk3/widget/mikutterwindow.rb
@@ -74,7 +74,8 @@ module Plugin::Gtk3
     # Gtk::Statusbar
     def create_statusbar
       statusbar = Gtk::Statusbar.new
-      statusbar.margin = 0
+      statusbar.margin_top = 0
+      statusbar.margin_bottom = 0
       statusbar.push(statusbar.get_context_id("system"), @plugin._("Statusbar default message"))
       @statusbar = statusbar.pack_start(status_button(Gtk::Box.new(:horizontal)), expand: false)
     end

adwaita だと左右にマージンあるので Raleigh-Reloaded の問題という気もしますが。

toshi_a 初音 さんが2年以上前に更新

  • ステータスレビュー待ち から マージ待ち に変更

OKです
つついさんの提案受け入れるかだけ判断してください

Shibafu Midorino さんが2年以上前に更新

別のマシンで表示確認したら、そんなに削りたいほどのマージンではなかったので d38ceddc をrevertします

Izumi Tsutsui さんが2年以上前に更新

git merge topic/1532-deglade して develop と同じ感じです。

toshi_a 初音 さんが2年以上前に更新

  • ステータスマージ待ち から 終了 に変更

merged.

他の形式にエクスポート: Atom PDF