mirror of
https://github.com/diamondburned/cchat-gtk.git
synced 2025-03-24 19:09:24 +00:00
Fixed attachment button not being visible
This commit is contained in:
parent
7d1078446a
commit
d965ed2118
|
@ -7,7 +7,7 @@ import (
|
||||||
"github.com/diamondburned/cchat-gtk/icons"
|
"github.com/diamondburned/cchat-gtk/icons"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/actions"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/actions"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session"
|
||||||
"github.com/gotk3/gotk3/glib"
|
"github.com/gotk3/gotk3/glib"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
|
@ -53,7 +53,7 @@ func newHeader() *header {
|
||||||
|
|
||||||
const BreadcrumbSlash = `<span rise="-1024" size="x-large">/</span>`
|
const BreadcrumbSlash = `<span rise="-1024" size="x-large">/</span>`
|
||||||
|
|
||||||
func (h *header) SetBreadcrumber(b breadcrumb.Breadcrumber) {
|
func (h *header) SetBreadcrumber(b traverse.Breadcrumber) {
|
||||||
if b == nil {
|
if b == nil {
|
||||||
h.right.breadcrumb.SetText("")
|
h.right.breadcrumb.SetText("")
|
||||||
return
|
return
|
||||||
|
|
|
@ -217,7 +217,8 @@ func (f *Field) SetSender(session cchat.Session, sender cchat.ServerMessageSende
|
||||||
f.typer, _ = sender.(cchat.ServerMessageTypingIndicator)
|
f.typer, _ = sender.(cchat.ServerMessageTypingIndicator)
|
||||||
|
|
||||||
// See if we can upload files.
|
// See if we can upload files.
|
||||||
_, f.upload = sender.(cchat.ServerMessageAttachmentSender)
|
_, allowUpload := sender.(cchat.ServerMessageAttachmentSender)
|
||||||
|
f.SetAllowUpload(allowUpload)
|
||||||
|
|
||||||
// Populate the duration state if typer is not nil.
|
// Populate the duration state if typer is not nil.
|
||||||
if f.typer != nil {
|
if f.typer != nil {
|
||||||
|
|
|
@ -10,9 +10,9 @@ import (
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/drag"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/drag"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/rich/parser/markup"
|
"github.com/diamondburned/cchat-gtk/internal/ui/rich/parser/markup"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
||||||
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -205,8 +205,8 @@ func (s *Service) MoveSession(id, movingID string) {
|
||||||
s.SaveAllSessions()
|
s.SaveAllSessions()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) Breadcrumb() breadcrumb.Breadcrumb {
|
func (s *Service) Breadcrumb() traverse.Breadcrumb {
|
||||||
return breadcrumb.Try(nil, s.service.Name().Content)
|
return traverse.TryBreadcrumb(nil, s.service.Name().Content)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) SaveAllSessions() {
|
func (s *Service) SaveAllSessions() {
|
||||||
|
|
|
@ -4,8 +4,8 @@ import (
|
||||||
"github.com/diamondburned/cchat"
|
"github.com/diamondburned/cchat"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/gts"
|
"github.com/diamondburned/cchat-gtk/internal/gts"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/loading"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/loading"
|
||||||
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ type Children struct {
|
||||||
|
|
||||||
Rows []*ServerRow
|
Rows []*ServerRow
|
||||||
|
|
||||||
Parent breadcrumb.Breadcrumber
|
Parent traverse.Breadcrumber
|
||||||
rowctrl Controller
|
rowctrl Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ var childrenCSS = primitives.PrepareClassCSS("server-children", `
|
||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
func NewChildren(p breadcrumb.Breadcrumber, ctrl Controller) *Children {
|
func NewChildren(p traverse.Breadcrumber, ctrl Controller) *Children {
|
||||||
main, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
|
main, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
|
||||||
main.SetMarginStart(ChildrenMargin)
|
main.SetMarginStart(ChildrenMargin)
|
||||||
childrenCSS(main)
|
childrenCSS(main)
|
||||||
|
@ -120,6 +120,6 @@ func (c *Children) SetServers(servers []cchat.Server) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Children) Breadcrumb() breadcrumb.Breadcrumb {
|
func (c *Children) Breadcrumb() traverse.Breadcrumb {
|
||||||
return breadcrumb.Try(c.Parent)
|
return traverse.TryBreadcrumb(c.Parent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@ import (
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/menu"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/menu"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server/button"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server/button"
|
||||||
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/diamondburned/cchat/text"
|
"github.com/diamondburned/cchat/text"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
@ -30,7 +30,7 @@ var serverCSS = primitives.PrepareClassCSS("server", `
|
||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
func NewServerRow(p breadcrumb.Breadcrumber, server cchat.Server, ctrl Controller) *ServerRow {
|
func NewServerRow(p traverse.Breadcrumber, server cchat.Server, ctrl Controller) *ServerRow {
|
||||||
row := NewRow(p, server.Name())
|
row := NewRow(p, server.Name())
|
||||||
row.SetIconer(server)
|
row.SetIconer(server)
|
||||||
serverCSS(row)
|
serverCSS(row)
|
||||||
|
@ -69,7 +69,7 @@ type Row struct {
|
||||||
*gtk.Box
|
*gtk.Box
|
||||||
Button *button.ToggleButtonImage
|
Button *button.ToggleButtonImage
|
||||||
|
|
||||||
parentcrumb breadcrumb.Breadcrumber
|
parentcrumb traverse.Breadcrumber
|
||||||
|
|
||||||
childrev *gtk.Revealer
|
childrev *gtk.Revealer
|
||||||
children *Children
|
children *Children
|
||||||
|
@ -77,7 +77,7 @@ type Row struct {
|
||||||
loaded bool
|
loaded bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRow(parent breadcrumb.Breadcrumber, name text.Rich) *Row {
|
func NewRow(parent traverse.Breadcrumber, name text.Rich) *Row {
|
||||||
button := button.NewToggleButtonImage(name)
|
button := button.NewToggleButtonImage(name)
|
||||||
button.Box.SetHAlign(gtk.ALIGN_START)
|
button.Box.SetHAlign(gtk.ALIGN_START)
|
||||||
button.SetRelief(gtk.RELIEF_NONE)
|
button.SetRelief(gtk.RELIEF_NONE)
|
||||||
|
@ -95,8 +95,8 @@ func NewRow(parent breadcrumb.Breadcrumber, name text.Rich) *Row {
|
||||||
return row
|
return row
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Row) Breadcrumb() breadcrumb.Breadcrumb {
|
func (r *Row) Breadcrumb() traverse.Breadcrumb {
|
||||||
return breadcrumb.Try(r.parentcrumb, r.Button.GetText())
|
return traverse.TryBreadcrumb(r.parentcrumb, r.Button.GetText())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Row) SetLabelUnsafe(name text.Rich) {
|
func (r *Row) SetLabelUnsafe(name text.Rich) {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"github.com/diamondburned/cchat-gtk/internal/humanize"
|
"github.com/diamondburned/cchat-gtk/internal/humanize"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/spinner"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/spinner"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
"github.com/gotk3/gotk3/pango"
|
"github.com/gotk3/gotk3/pango"
|
||||||
|
@ -31,7 +31,7 @@ var toplevelCSS = primitives.PrepareClassCSS("top-level", `
|
||||||
.top-level { margin: 0 3px }
|
.top-level { margin: 0 3px }
|
||||||
`)
|
`)
|
||||||
|
|
||||||
func NewServers(p breadcrumb.Breadcrumber, ctrl server.Controller) *Servers {
|
func NewServers(p traverse.Breadcrumber, ctrl server.Controller) *Servers {
|
||||||
c := server.NewChildren(p, ctrl)
|
c := server.NewChildren(p, ctrl)
|
||||||
c.SetMarginStart(0) // children is top level; there is no main row
|
c.SetMarginStart(0) // children is top level; there is no main row
|
||||||
c.SetHExpand(true) // fill
|
c.SetHExpand(true) // fill
|
||||||
|
|
|
@ -11,9 +11,9 @@ import (
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/spinner"
|
"github.com/diamondburned/cchat-gtk/internal/ui/primitives/spinner"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
"github.com/diamondburned/cchat-gtk/internal/ui/rich"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/rich/parser/markup"
|
"github.com/diamondburned/cchat-gtk/internal/ui/rich/parser/markup"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/breadcrumb"
|
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/commander"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/commander"
|
||||||
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/session/server"
|
||||||
|
"github.com/diamondburned/cchat-gtk/internal/ui/service/traverse"
|
||||||
"github.com/diamondburned/cchat/text"
|
"github.com/diamondburned/cchat/text"
|
||||||
"github.com/gotk3/gotk3/gdk"
|
"github.com/gotk3/gotk3/gdk"
|
||||||
"github.com/gotk3/gotk3/gtk"
|
"github.com/gotk3/gotk3/gtk"
|
||||||
|
@ -52,7 +52,7 @@ type Row struct {
|
||||||
*gtk.ListBoxRow
|
*gtk.ListBoxRow
|
||||||
icon *rich.EventIcon // nilable
|
icon *rich.EventIcon // nilable
|
||||||
|
|
||||||
parentcrumb breadcrumb.Breadcrumber
|
parentcrumb traverse.Breadcrumber
|
||||||
|
|
||||||
Session cchat.Session // state; nilable
|
Session cchat.Session // state; nilable
|
||||||
sessionID string
|
sessionID string
|
||||||
|
@ -86,20 +86,20 @@ var rowIconCSS = primitives.PrepareClassCSS("session-icon", `
|
||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
func New(parent breadcrumb.Breadcrumber, ses cchat.Session, ctrl Servicer) *Row {
|
func New(parent traverse.Breadcrumber, ses cchat.Session, ctrl Servicer) *Row {
|
||||||
row := newRow(parent, text.Rich{}, ctrl)
|
row := newRow(parent, text.Rich{}, ctrl)
|
||||||
row.SetSession(ses)
|
row.SetSession(ses)
|
||||||
return row
|
return row
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLoading(parent breadcrumb.Breadcrumber, id, name string, ctrl Servicer) *Row {
|
func NewLoading(parent traverse.Breadcrumber, id, name string, ctrl Servicer) *Row {
|
||||||
row := newRow(parent, text.Rich{Content: name}, ctrl)
|
row := newRow(parent, text.Rich{Content: name}, ctrl)
|
||||||
row.sessionID = id
|
row.sessionID = id
|
||||||
row.SetLoading()
|
row.SetLoading()
|
||||||
return row
|
return row
|
||||||
}
|
}
|
||||||
|
|
||||||
func newRow(parent breadcrumb.Breadcrumber, name text.Rich, ctrl Servicer) *Row {
|
func newRow(parent traverse.Breadcrumber, name text.Rich, ctrl Servicer) *Row {
|
||||||
row := &Row{
|
row := &Row{
|
||||||
svcctrl: ctrl,
|
svcctrl: ctrl,
|
||||||
parentcrumb: parent,
|
parentcrumb: parent,
|
||||||
|
@ -163,8 +163,8 @@ func (r *Row) Reset() {
|
||||||
r.cmder = nil
|
r.cmder = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Row) Breadcrumb() breadcrumb.Breadcrumb {
|
func (r *Row) Breadcrumb() traverse.Breadcrumb {
|
||||||
return breadcrumb.Try(r.parentcrumb, r.Session.Name().Content)
|
return traverse.TryBreadcrumb(r.parentcrumb, r.Session.Name().Content)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Activate executes whatever needs to be done. If the row has failed, then this
|
// Activate executes whatever needs to be done. If the row has failed, then this
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package breadcrumb
|
package traverse
|
||||||
|
|
||||||
import "strings"
|
import "strings"
|
||||||
|
|
||||||
|
@ -12,8 +12,8 @@ type Breadcrumber interface {
|
||||||
Breadcrumb() Breadcrumb
|
Breadcrumb() Breadcrumb
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try accepts a nilable breadcrumber and handles it appropriately.
|
// TryBreadcrumb accepts a nilable breadcrumber and handles it appropriately.
|
||||||
func Try(i Breadcrumber, appended ...string) []string {
|
func TryBreadcrumb(i Breadcrumber, appended ...string) []string {
|
||||||
if i == nil {
|
if i == nil {
|
||||||
return appended
|
return appended
|
||||||
}
|
}
|
Loading…
Reference in a new issue