Skip to content

Commit 061dbb1

Browse files
committed
fix: Use new subclassed component for description window in controls too
Signed-off-by: Felicitas Pojtinger <[email protected]>
1 parent 2ee2df2 commit 061dbb1

File tree

8 files changed

+175
-176
lines changed

8 files changed

+175
-176
lines changed

internal/components/controls.go

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -220,25 +220,7 @@ func OpenControlsWindow(
220220
builder.GetObject("copy-stream-code-button").Cast(&copyStreamCodeButton)
221221
defer copyStreamCodeButton.Unref()
222222

223-
descriptionBuilder := gtk.NewBuilderFromResource(resources.ResourceDescriptionPath)
224-
defer descriptionBuilder.Unref()
225-
var (
226-
descriptionWindow adw.Window
227-
descriptionText gtk.TextView
228-
descriptionHeaderbarTitle gtk.Label
229-
descriptionHeaderbarSubtitle gtk.Label
230-
descriptionProgressBar gtk.ProgressBar
231-
)
232-
descriptionBuilder.GetObject("description-window").Cast(&descriptionWindow)
233-
defer descriptionWindow.Unref()
234-
descriptionBuilder.GetObject("description-text").Cast(&descriptionText)
235-
defer descriptionText.Unref()
236-
descriptionBuilder.GetObject("headerbar-title").Cast(&descriptionHeaderbarTitle)
237-
defer descriptionHeaderbarTitle.Unref()
238-
descriptionBuilder.GetObject("headerbar-subtitle").Cast(&descriptionHeaderbarSubtitle)
239-
defer descriptionHeaderbarSubtitle.Unref()
240-
descriptionBuilder.GetObject("preparing-progress-bar").Cast(&descriptionProgressBar)
241-
defer descriptionProgressBar.Unref()
223+
descriptionWindow := NewDescriptionWindow(&window)
242224

243225
subtitlesBuilder := gtk.NewBuilderFromResource(resources.ResourceSubtitlesPath)
244226
defer subtitlesBuilder.Unref()
@@ -298,12 +280,12 @@ func OpenControlsWindow(
298280
defer preparingCancelButton.Unref()
299281

300282
buttonHeaderbarTitle.SetLabel(torrentTitle)
301-
descriptionHeaderbarTitle.SetLabel(torrentTitle)
283+
descriptionWindow.HeaderbarTitle().SetLabel(torrentTitle)
302284
buttonHeaderbarSubtitle.SetLabel(getDisplayPathWithoutRoot(selectedTorrentMedia))
303-
descriptionHeaderbarSubtitle.SetVisible(true)
304-
descriptionHeaderbarSubtitle.SetLabel(getDisplayPathWithoutRoot(selectedTorrentMedia))
285+
descriptionWindow.HeaderbarSubtitle().SetVisible(true)
286+
descriptionWindow.HeaderbarSubtitle().SetLabel(getDisplayPathWithoutRoot(selectedTorrentMedia))
305287

306-
descriptionProgressBar.SetVisible(true)
288+
descriptionWindow.PreparingProgressBar().SetVisible(true)
307289

308290
if community == "" || password == "" || key == "" {
309291
sid, err := shortid.New(1, shortid.DefaultABC, uint64(time.Now().UnixNano()))
@@ -447,15 +429,16 @@ func OpenControlsWindow(
447429
}
448430
ctrl.ConnectKeyReleased(&descKeyReleasedCallback)
449431

450-
descriptionText.SetWrapMode(gtk.WrapWordValue)
432+
descriptionWindow.Text().SetWrapMode(gtk.WrapWordValue)
451433
if !utf8.Valid([]byte(torrentReadme)) || strings.TrimSpace(torrentReadme) == "" {
452-
descriptionText.GetBuffer().SetText(L(readmePlaceholder), -1)
434+
descriptionWindow.Text().GetBuffer().SetText(L(readmePlaceholder), -1)
453435
} else {
454-
descriptionText.GetBuffer().SetText(torrentReadme, -1)
436+
descriptionWindow.Text().GetBuffer().SetText(torrentReadme, -1)
455437
}
456438

457439
preparingWindow.SetTransientFor(&window.Window)
458440

441+
descriptionProgressBar := descriptionWindow.PreparingProgressBar()
459442
progressBarTicker := time.NewTicker(time.Millisecond * 500)
460443
go func() {
461444
for range progressBarTicker.C {
@@ -494,7 +477,7 @@ func OpenControlsWindow(
494477
}
495478

496479
n:
497-
for _, progressBar := range []*gtk.ProgressBar{&preparingProgressBar, &descriptionProgressBar} {
480+
for _, progressBar := range []*gtk.ProgressBar{&preparingProgressBar, descriptionProgressBar} {
498481
if length > 0 {
499482
progressBar.SetFraction(completed / length)
500483
progressBar.SetText(fmt.Sprintf(L("%v MB/%v MB (%v peers)"), int(completed/1000/1000), int(length/1000/1000), peers))

internal/components/description_window.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ var (
1919
type DescriptionWindow struct {
2020
adw.Window
2121

22-
text *gtk.TextView
23-
headerbarTitle *gtk.Label
24-
headerbarSubtitle *gtk.Label
22+
text *gtk.TextView
23+
headerbarTitle *gtk.Label
24+
headerbarSubtitle *gtk.Label
25+
preparingProgressBar *gtk.ProgressBar
2526
}
2627

2728
func NewDescriptionWindow(transientFor *adw.ApplicationWindow) DescriptionWindow {
@@ -51,6 +52,11 @@ func (d *DescriptionWindow) HeaderbarSubtitle() *gtk.Label {
5152
return descW.headerbarSubtitle
5253
}
5354

55+
func (d *DescriptionWindow) PreparingProgressBar() *gtk.ProgressBar {
56+
descW := (*DescriptionWindow)(unsafe.Pointer(d.Widget.GetData(dataKeyGoInstance)))
57+
return descW.preparingProgressBar
58+
}
59+
5460
func init() {
5561
var classInit gobject.ClassInitFunc = func(tc *gobject.TypeClass, u uintptr) {
5662
typeClass := (*gtk.WidgetClass)(unsafe.Pointer(tc))
@@ -59,6 +65,7 @@ func init() {
5965
typeClass.BindTemplateChildFull("description-text", false, 0)
6066
typeClass.BindTemplateChildFull("headerbar-title", false, 0)
6167
typeClass.BindTemplateChildFull("headerbar-subtitle", false, 0)
68+
typeClass.BindTemplateChildFull("preparing-progress-bar", false, 0)
6269

6370
objClass := (*gobject.ObjectClass)(unsafe.Pointer(tc))
6471

@@ -72,19 +79,22 @@ func init() {
7279
parent.InitTemplate()
7380

7481
var (
75-
descriptionText gtk.TextView
76-
descriptionHeaderbarTitle gtk.Label
77-
descriptionHeaderbarSubtitle gtk.Label
82+
descriptionText gtk.TextView
83+
descriptionHeaderbarTitle gtk.Label
84+
descriptionHeaderbarSubtitle gtk.Label
85+
descriptionPreparingProgressBar gtk.ProgressBar
7886
)
7987
parent.Widget.GetTemplateChild(gTypeDescriptionWindow, "description-text").Cast(&descriptionText)
8088
parent.Widget.GetTemplateChild(gTypeDescriptionWindow, "headerbar-title").Cast(&descriptionHeaderbarTitle)
8189
parent.Widget.GetTemplateChild(gTypeDescriptionWindow, "headerbar-subtitle").Cast(&descriptionHeaderbarSubtitle)
90+
parent.Widget.GetTemplateChild(gTypeDescriptionWindow, "preparing-progress-bar").Cast(&descriptionPreparingProgressBar)
8291

8392
w := &DescriptionWindow{
84-
Window: parent,
85-
text: &descriptionText,
86-
headerbarTitle: &descriptionHeaderbarTitle,
87-
headerbarSubtitle: &descriptionHeaderbarSubtitle,
93+
Window: parent,
94+
text: &descriptionText,
95+
headerbarTitle: &descriptionHeaderbarTitle,
96+
headerbarSubtitle: &descriptionHeaderbarSubtitle,
97+
preparingProgressBar: &descriptionPreparingProgressBar,
8898
}
8999

90100
ctrl := gtk.NewEventControllerKey()

po/de/LC_MESSAGES/default.po

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,64 +20,64 @@ msgstr "Speicherort auswählen"
2020
msgid "This file does not contain subtitles."
2121
msgstr "Diese Datei enthält keine Untertitel."
2222

23-
#: ../internal/components/controls.go:384
23+
#: ../internal/components/controls.go:366
2424
msgid "Someone joined the session."
2525
msgstr "Jemand ist der Sitzung beigetreten."
2626

27-
#: ../internal/components/controls.go:390
27+
#: ../internal/components/controls.go:372
2828
msgid "Someone left the session."
2929
msgstr "Jemand hat die Sitzung verlassen."
3030

31-
#: ../internal/components/controls.go:396 ../assets/resources/controls.blp:205
31+
#: ../internal/components/controls.go:378 ../assets/resources/controls.blp:205
3232
#: ../assets/resources/controls.ui:225
3333
msgid "You're currently watching alone."
3434
msgstr "Sie schauen derzeit alleine zu."
3535

36-
#: ../internal/components/controls.go:402
36+
#: ../internal/components/controls.go:384
3737
msgid "You're currently watching with %v other person."
3838
msgstr "Sie schauen derzeit mit %v weiterer Person."
3939

40-
#: ../internal/components/controls.go:407
40+
#: ../internal/components/controls.go:389
4141
msgid "You're currently watching with %v other people."
4242
msgstr "Sie schauen derzeit mit %v weiteren Personen."
4343

44-
#: ../internal/components/controls.go:500
44+
#: ../internal/components/controls.go:483
4545
msgid "%v MB/%v MB (%v peers)"
4646
msgstr "%v MB/%v MB (%v Knoten)"
4747

48-
#: ../internal/components/controls.go:505
48+
#: ../internal/components/controls.go:488
4949
msgid "Searching for peers"
5050
msgstr "Suche nach Knoten"
5151

52-
#: ../internal/components/controls.go:1223
52+
#: ../internal/components/controls.go:1206
5353
msgid "Disable subtitles"
5454
msgstr "Untertitel deaktivieren"
5555

56-
#: ../internal/components/controls.go:1228
56+
#: ../internal/components/controls.go:1211
5757
msgid "Integrated subtitle"
5858
msgstr "Integrierter Untertitel"
5959

60-
#: ../internal/components/controls.go:1231
60+
#: ../internal/components/controls.go:1214
6161
msgid "Subtitle from torrent"
6262
msgstr "Untertitel aus Torrent"
6363

64-
#: ../internal/components/controls.go:1234
64+
#: ../internal/components/controls.go:1217
6565
msgid "Extra file from torrent"
6666
msgstr "Zusatzdatei aus Torrent"
6767

68-
#: ../internal/components/controls.go:1323
68+
#: ../internal/components/controls.go:1306
6969
msgid "Disable audio"
7070
msgstr "Audio deaktivieren"
7171

72-
#: ../internal/components/controls.go:1325
72+
#: ../internal/components/controls.go:1308
7373
msgid "Track %v"
7474
msgstr "Spur %v"
7575

76-
#: ../internal/components/controls.go:1333
76+
#: ../internal/components/controls.go:1316
7777
msgid "Untitled Track"
7878
msgstr "Unbenannte Spur"
7979

80-
#: ../internal/components/controls.go:1645
80+
#: ../internal/components/controls.go:1628
8181
msgid "Manually added"
8282
msgstr "Manuell hinzugefügt"
8383

@@ -548,28 +548,29 @@ msgid "Synchronization preferences"
548548
msgstr "Synchronisierungseinstellungen"
549549

550550
#: ../assets/resources/metainfo.xml.in:122
551-
msgid "Better support for systems with languages other than English"
552-
msgstr "Bessere Unterstützung für Systeme mit anderen Sprachen als Englisch"
553-
554-
#: ../assets/resources/metainfo.xml.in:130
555551
#: ../assets/resources/metainfo.xml.in:138
556-
#: ../assets/resources/metainfo.xml.in:162
552+
#: ../assets/resources/metainfo.xml.in:146
553+
#: ../assets/resources/metainfo.xml.in:170
557554
msgid "Visual refinements to match the state of the art of GNOME apps"
558555
msgstr ""
559556
"Visuelle Verfeinerungen, um dem neuesten Stand der GNOME-Apps zu entsprechen"
560557

561-
#: ../assets/resources/metainfo.xml.in:146
558+
#: ../assets/resources/metainfo.xml.in:130
559+
msgid "Better support for systems with languages other than English"
560+
msgstr "Bessere Unterstützung für Systeme mit anderen Sprachen als Englisch"
561+
562+
#: ../assets/resources/metainfo.xml.in:154
562563
msgid "Refinements to the screenshots and descriptions"
563564
msgstr "Verfeinerungen an den Screenshots und Beschreibungen"
564565

565-
#: ../assets/resources/metainfo.xml.in:154
566+
#: ../assets/resources/metainfo.xml.in:162
566567
msgid "Refinements to the screenshots and app metadata"
567568
msgstr "Verfeinerungen an den Screenshots und App-Metadaten"
568569

569-
#: ../assets/resources/metainfo.xml.in:170
570+
#: ../assets/resources/metainfo.xml.in:178
570571
msgid "Simplify summary and improve build system conventions"
571572
msgstr "Zusammenfassung vereinfacht und Build-System-Konventionen verbessert"
572573

573-
#: ../assets/resources/metainfo.xml.in:178
574+
#: ../assets/resources/metainfo.xml.in:186
574575
msgid "Initial release"
575576
msgstr "Erste Veröffentlichung"

po/default.pot

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,64 +14,64 @@ msgstr ""
1414
msgid "This file does not contain subtitles."
1515
msgstr ""
1616

17-
#: ../internal/components/controls.go:384
17+
#: ../internal/components/controls.go:366
1818
msgid "Someone joined the session."
1919
msgstr ""
2020

21-
#: ../internal/components/controls.go:390
21+
#: ../internal/components/controls.go:372
2222
msgid "Someone left the session."
2323
msgstr ""
2424

25-
#: ../internal/components/controls.go:396 ../assets/resources/controls.blp:205
25+
#: ../internal/components/controls.go:378 ../assets/resources/controls.blp:205
2626
#: ../assets/resources/controls.ui:225
2727
msgid "You're currently watching alone."
2828
msgstr ""
2929

30-
#: ../internal/components/controls.go:402
30+
#: ../internal/components/controls.go:384
3131
msgid "You're currently watching with %v other person."
3232
msgstr ""
3333

34-
#: ../internal/components/controls.go:407
34+
#: ../internal/components/controls.go:389
3535
msgid "You're currently watching with %v other people."
3636
msgstr ""
3737

38-
#: ../internal/components/controls.go:500
38+
#: ../internal/components/controls.go:483
3939
msgid "%v MB/%v MB (%v peers)"
4040
msgstr ""
4141

42-
#: ../internal/components/controls.go:505
42+
#: ../internal/components/controls.go:488
4343
msgid "Searching for peers"
4444
msgstr ""
4545

46-
#: ../internal/components/controls.go:1223
46+
#: ../internal/components/controls.go:1206
4747
msgid "Disable subtitles"
4848
msgstr ""
4949

50-
#: ../internal/components/controls.go:1228
50+
#: ../internal/components/controls.go:1211
5151
msgid "Integrated subtitle"
5252
msgstr ""
5353

54-
#: ../internal/components/controls.go:1231
54+
#: ../internal/components/controls.go:1214
5555
msgid "Subtitle from torrent"
5656
msgstr ""
5757

58-
#: ../internal/components/controls.go:1234
58+
#: ../internal/components/controls.go:1217
5959
msgid "Extra file from torrent"
6060
msgstr ""
6161

62-
#: ../internal/components/controls.go:1323
62+
#: ../internal/components/controls.go:1306
6363
msgid "Disable audio"
6464
msgstr ""
6565

66-
#: ../internal/components/controls.go:1325
66+
#: ../internal/components/controls.go:1308
6767
msgid "Track %v"
6868
msgstr ""
6969

70-
#: ../internal/components/controls.go:1333
70+
#: ../internal/components/controls.go:1316
7171
msgid "Untitled Track"
7272
msgstr ""
7373

74-
#: ../internal/components/controls.go:1645
74+
#: ../internal/components/controls.go:1628
7575
msgid "Manually added"
7676
msgstr ""
7777

@@ -522,27 +522,28 @@ msgid "Synchronization preferences"
522522
msgstr ""
523523

524524
#: ../assets/resources/metainfo.xml.in:122
525-
msgid "Better support for systems with languages other than English"
525+
#: ../assets/resources/metainfo.xml.in:138
526+
#: ../assets/resources/metainfo.xml.in:146
527+
#: ../assets/resources/metainfo.xml.in:170
528+
msgid "Visual refinements to match the state of the art of GNOME apps"
526529
msgstr ""
527530

528531
#: ../assets/resources/metainfo.xml.in:130
529-
#: ../assets/resources/metainfo.xml.in:138
530-
#: ../assets/resources/metainfo.xml.in:162
531-
msgid "Visual refinements to match the state of the art of GNOME apps"
532+
msgid "Better support for systems with languages other than English"
532533
msgstr ""
533534

534-
#: ../assets/resources/metainfo.xml.in:146
535+
#: ../assets/resources/metainfo.xml.in:154
535536
msgid "Refinements to the screenshots and descriptions"
536537
msgstr ""
537538

538-
#: ../assets/resources/metainfo.xml.in:154
539+
#: ../assets/resources/metainfo.xml.in:162
539540
msgid "Refinements to the screenshots and app metadata"
540541
msgstr ""
541542

542-
#: ../assets/resources/metainfo.xml.in:170
543+
#: ../assets/resources/metainfo.xml.in:178
543544
msgid "Simplify summary and improve build system conventions"
544545
msgstr ""
545546

546-
#: ../assets/resources/metainfo.xml.in:178
547+
#: ../assets/resources/metainfo.xml.in:186
547548
msgid "Initial release"
548549
msgstr ""

0 commit comments

Comments
 (0)