Project

General

Profile

Actions

提案 #1532

closed

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

Added by Shibafu Midorino 7 months ago. Updated 5 months ago.

Status:
終了
Priority:
通常
Target version:
プラグイン名:
ブランチ:
topic/1532-deglade

Description

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

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


Files

Actions #1

Updated by toshi_a 初音 5 months ago

  • Status changed from 分類待ち to 実装待ち
Actions #2

Updated by Shibafu Midorino 5 months ago

  • Status changed from 実装待ち to レビュー待ち
  • ブランチ set to 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で手打ちにするか、昔ながらのレイアウトのダイアログに戻すかが無難な手だと思います。

Actions #3

Updated by toshi_a 初音 5 months ago

  • Assignee set to toshi_a 初音

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

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

Actions #4

Updated by toshi_a 初音 5 months ago

  • Status changed from レビュー待ち to まだダメ
  • Assignee changed from toshi_a 初音 to Shibafu Midorino

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

Actions #5

Updated by Shibafu Midorino 5 months ago

  • Status changed from まだダメ to レビュー待ち
  • Assignee changed from Shibafu Midorino to toshi_a 初音

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

Actions #6

Updated by Izumi Tsutsui 5 months ago

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 の問題という気もしますが。

Actions #7

Updated by toshi_a 初音 5 months ago

  • Status changed from レビュー待ち to マージ待ち

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

Actions #8

Updated by Shibafu Midorino 5 months ago

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

Actions #9

Updated by Izumi Tsutsui 5 months ago

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

Actions #10

Updated by toshi_a 初音 5 months ago

  • Status changed from マージ待ち to 終了

merged.

Actions

Also available in: Atom PDF