Got things back to normal with a couple bug fixes
This commit is contained in:
@@ -20,8 +20,8 @@ type app struct {
|
|||||||
ini *os.File
|
ini *os.File
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *app) getTreeIter(store *gtk.TreeStore, parent *gtk.TreeIter) *gtk.TreeIter {
|
func (a *app) getTreeIter(store *gtk.TreeStore) *gtk.TreeIter {
|
||||||
it := store.Append(parent)
|
it := store.Append(nil)
|
||||||
store.SetValue(it, 0, a.icon)
|
store.SetValue(it, 0, a.icon)
|
||||||
store.SetValue(it, 1, a.name)
|
store.SetValue(it, 1, a.name)
|
||||||
if len(a.ex) > 1 {
|
if len(a.ex) > 1 {
|
||||||
|
|||||||
@@ -0,0 +1,132 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gotk3/gotk3/glib"
|
||||||
|
"github.com/gotk3/gotk3/gtk"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ui(win *gtk.Window) {
|
||||||
|
ls := getCatRows()
|
||||||
|
var treeApps []*gtk.TreeIter
|
||||||
|
header, _ := gtk.HeaderBarNew()
|
||||||
|
header.SetShowCloseButton(true)
|
||||||
|
header.SetTitle("LinuxPA")
|
||||||
|
header.SetSubtitle("PortableApps.com type launcher")
|
||||||
|
settings, _ := gtk.ButtonNewFromIconName("applications-system", gtk.ICON_SIZE_SMALL_TOOLBAR)
|
||||||
|
settings.Connect("clicked", func() {
|
||||||
|
settingsUI()
|
||||||
|
})
|
||||||
|
settings.SetTooltipText("Settings (Coming Soon!)")
|
||||||
|
header.PackStart(settings)
|
||||||
|
win.SetTitlebar(header)
|
||||||
|
topLvl, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
|
||||||
|
lrBox, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 5)
|
||||||
|
catList, _ := gtk.ListBoxNew()
|
||||||
|
catList.SetActivateOnSingleClick(true)
|
||||||
|
store, _ := gtk.TreeStoreNew(glib.TYPE_OBJECT, glib.TYPE_STRING)
|
||||||
|
appsList, _ := gtk.TreeViewNewWithModel(store)
|
||||||
|
render, _ := gtk.CellRendererPixbufNew()
|
||||||
|
pixColumn, _ := gtk.TreeViewColumnNewWithAttribute("", render, "pixbuf", 0)
|
||||||
|
txtRender, _ := gtk.CellRendererTextNew()
|
||||||
|
txtColumn, _ := gtk.TreeViewColumnNewWithAttribute("", txtRender, "text", 1)
|
||||||
|
appsList.AppendColumn(pixColumn)
|
||||||
|
appsList.AppendColumn(txtColumn)
|
||||||
|
appsList.SetHeadersVisible(false)
|
||||||
|
catList.SetHExpand(true)
|
||||||
|
catList.SetVExpand(true)
|
||||||
|
appsList.SetHExpand(true)
|
||||||
|
appsList.SetVExpand(true)
|
||||||
|
vScrollCat, _ := gtk.AdjustmentNew(0, 0, 0, 0, 0, 0)
|
||||||
|
hScrollCat, _ := gtk.AdjustmentNew(0, 0, 0, 0, 0, 0)
|
||||||
|
vScrollApp, _ := gtk.AdjustmentNew(0, 0, 0, 0, 0, 0)
|
||||||
|
hScrollApp, _ := gtk.AdjustmentNew(0, 0, 0, 0, 0, 0)
|
||||||
|
catScrl, _ := gtk.ScrolledWindowNew(hScrollCat, vScrollCat)
|
||||||
|
catScrl.Add(catList)
|
||||||
|
catScrl.SetSizeRequest(170, 500)
|
||||||
|
appScrl, _ := gtk.ScrolledWindowNew(hScrollApp, vScrollApp)
|
||||||
|
appScrl.Add(appsList)
|
||||||
|
appScrl.SetSizeRequest(300, 500)
|
||||||
|
lrBox.Add(catScrl)
|
||||||
|
lrBox.Add(appScrl)
|
||||||
|
botBox, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 2)
|
||||||
|
wineCheck, _ := gtk.CheckButtonNewWithLabel("Show Windows apps (Wine)")
|
||||||
|
if !wineAvail {
|
||||||
|
wineCheck.SetSensitive(false)
|
||||||
|
wineCheck.SetTooltipText("Download wine to run windows apps")
|
||||||
|
}
|
||||||
|
wineCheck.Connect("toggled", func() {
|
||||||
|
wine = wineCheck.GetActive()
|
||||||
|
for i := range ls {
|
||||||
|
catList.Remove(catList.GetRowAtIndex(i))
|
||||||
|
}
|
||||||
|
ls = getCatRows()
|
||||||
|
for i, v := range ls {
|
||||||
|
catList.Insert(v, i)
|
||||||
|
}
|
||||||
|
catList.ShowAll()
|
||||||
|
})
|
||||||
|
botBox.Add(wineCheck)
|
||||||
|
topLvl.Add(lrBox)
|
||||||
|
topLvl.PackEnd(botBox, false, true, 0)
|
||||||
|
win.Add(topLvl)
|
||||||
|
for i, v := range ls {
|
||||||
|
catList.Insert(v, i)
|
||||||
|
}
|
||||||
|
catList.Connect("row-selected", func() {
|
||||||
|
store.Clear()
|
||||||
|
if catList.GetSelectedRow().GetIndex() >= 0 {
|
||||||
|
treeApps = make([]*gtk.TreeIter, 0)
|
||||||
|
if wine {
|
||||||
|
apps := master[cats[catList.GetSelectedRow().GetIndex()]]
|
||||||
|
for _, v := range apps {
|
||||||
|
treeApps = append(treeApps, v.getTreeIter(store))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
apps := linmaster[lin[catList.GetSelectedRow().GetIndex()]]
|
||||||
|
for _, v := range apps {
|
||||||
|
treeApps = append(treeApps, v.getTreeIter(store))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
appsList.Connect("row-activated", func() {
|
||||||
|
selec, _ := appsList.GetSelection()
|
||||||
|
_, it, ok := selec.GetSelected()
|
||||||
|
if ok {
|
||||||
|
pth, _ := store.GetPath(it)
|
||||||
|
ind := pth.GetIndices()
|
||||||
|
if len(ind) == 1 {
|
||||||
|
if wine {
|
||||||
|
app := master[cats[catList.GetSelectedRow().GetIndex()]][ind[0]]
|
||||||
|
app.launch()
|
||||||
|
} else {
|
||||||
|
app := linmaster[lin[catList.GetSelectedRow().GetIndex()]][ind[0]]
|
||||||
|
app.launch()
|
||||||
|
}
|
||||||
|
} else if len(ind) == 2 {
|
||||||
|
if wine {
|
||||||
|
app := master[cats[catList.GetSelectedRow().GetIndex()]][ind[0]]
|
||||||
|
app.launchSub(ind[1])
|
||||||
|
} else {
|
||||||
|
app := linmaster[lin[catList.GetSelectedRow().GetIndex()]][ind[0]]
|
||||||
|
app.launchSub(ind[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func getCatRows() (out []*gtk.Label) {
|
||||||
|
if wine {
|
||||||
|
for _, v := range cats {
|
||||||
|
txt, _ := gtk.LabelNew(v)
|
||||||
|
out = append(out, txt)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for _, v := range lin {
|
||||||
|
txt, _ := gtk.LabelNew(v)
|
||||||
|
out = append(out, txt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user