diff --git a/channels.go b/channels.go index 8fe2525..367ccfd 100644 --- a/channels.go +++ b/channels.go @@ -114,44 +114,43 @@ func (client *GUI) renderContentArea() fyne.CanvasObject { client.contentPane = widget.NewVBox() if client.selectedChannel == "" { return client.contentPane - } else { - if client.selectedMessage != 0 { - var currentMessage data.Message - for _, msg := range client.db.chanList[client.selectedChannel] { - if msg.ID == client.selectedMessage { - currentMessage = msg - break - } + } + if client.selectedMessage != 0 { + var currentMessage data.Message + for _, msg := range client.db.chanList[client.selectedChannel] { + if msg.ID == client.selectedMessage { + currentMessage = msg + break } - if currentMessage.Subject != "" { - client.contentPane.Append(newLabel("Subject: " + currentMessage.Subject)) - client.contentPane.Append(canvas.NewLine(color.White)) - if len(currentMessage.Raw.Page) > 0 { - for num, p := range currentMessage.Raw.Page[:1] { - if num >= 0 { - client.contentPane.Append(newLabel("Page: " + strconv.Itoa(num+1) + "/" + strconv.Itoa(len(currentMessage.Raw.Page)-1))) - client.contentPane.Append(newLabel(p.Data)) - client.contentPane.Append(canvas.NewLine(color.White)) - } + } + if currentMessage.Subject != "" { + client.contentPane.Append(newLabel("Subject: " + currentMessage.Subject)) + client.contentPane.Append(canvas.NewLine(color.White)) + if len(currentMessage.Raw.Page) > 0 { + for num, p := range currentMessage.Raw.Page[:1] { + if num >= 0 { + client.contentPane.Append(newLabel("Page: " + strconv.Itoa(num+1) + "/" + strconv.Itoa(len(currentMessage.Raw.Page)-1))) + client.contentPane.Append(newLabel(p.Data)) + client.contentPane.Append(canvas.NewLine(color.White)) } } - if len(currentMessage.Raw.Attachment) > 0 { - for num, a := range currentMessage.Raw.Attachment { - if num >= 0 { - client.contentPane.Append(newLabel("Attachment: " + strconv.Itoa(num+1) + "/" + strconv.Itoa(len(currentMessage.Raw.Attachment)) + " Name: " + a.Name)) - client.contentPane.Append(newLabel("Type: " + a.ContentType + " Description: " + a.Description)) - adata := a.Data - image, err := renderImage(imageExtFromName(a.ContentType), adata) - if err != nil { - client.contentPane.Append(widget.NewLabel("Unable to display preview")) - } else { - i := canvas.NewImageFromImage(image) - i.FillMode = canvas.ImageFillContain - i.SetMinSize(fyne.NewSize(fyne.Min(image.Bounds().Dx(), client.contentArea.Size().Width), image.Bounds().Dy())) - client.contentPane.Append(i) - } - client.contentPane.Append(canvas.NewLine(color.White)) + } + if len(currentMessage.Raw.Attachment) > 0 { + for num, a := range currentMessage.Raw.Attachment { + if num >= 0 { + client.contentPane.Append(newLabel("Attachment: " + strconv.Itoa(num+1) + "/" + strconv.Itoa(len(currentMessage.Raw.Attachment)) + " Name: " + a.Name)) + client.contentPane.Append(newLabel("Type: " + a.ContentType + " Description: " + a.Description)) + adata := a.Data + image, err := renderImage(imageExtFromName(a.ContentType), adata) + if err != nil { + client.contentPane.Append(widget.NewLabel("Unable to display preview")) + } else { + i := canvas.NewImageFromImage(image) + i.FillMode = canvas.ImageFillContain + i.SetMinSize(fyne.NewSize(fyne.Min(image.Bounds().Dx(), client.contentArea.Size().Width), image.Bounds().Dy())) + client.contentPane.Append(i) } + client.contentPane.Append(canvas.NewLine(color.White)) } } } diff --git a/database.go b/database.go index 78e38ad..6df0388 100644 --- a/database.go +++ b/database.go @@ -20,7 +20,7 @@ type database struct { Messages []data.Message } -func NewDatabase() *database { +func newDatabase() *database { return new(database) } diff --git a/gui.go b/gui.go index a9bdbaa..d62f19e 100644 --- a/gui.go +++ b/gui.go @@ -13,6 +13,7 @@ import ( "github.com/kpetku/syndie-core/fetcher" ) +// GUI contains various GUI configuration options type GUI struct { db *database window fyne.Window @@ -30,12 +31,14 @@ type GUI struct { selectedMessage int } +// NewGUI creates a new GUI func NewGUI() *GUI { return new(GUI) } +// Start launches a new syndie-gui application func (client *GUI) Start(path string) { - client.db = NewDatabase() + client.db = newDatabase() client.db.openDB(path) client.db.reload()