Skip to content

Commit

Permalink
Merge pull request #12 from nwg-piotr/chrome
Browse files Browse the repository at this point in the history
bug fixes and new arguments
  • Loading branch information
nwg-piotr authored Aug 16, 2021
2 parents 033a4d5 + 875e7ca commit 6ac486a
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 21 deletions.
Binary file modified bin/nwg-drawer
Binary file not shown.
54 changes: 41 additions & 13 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ var (
fileSearchResultWrapper *gtk.Box
pinnedFlowBox *gtk.FlowBox
pinnedFlowBoxWrapper *gtk.Box
categoriesWrapper *gtk.Box
catButtons []*gtk.Button
statusLabel *gtk.Label
status string
Expand All @@ -109,6 +110,8 @@ var lang = flag.String("lang", "", "force lang, e.g. \"en\", \"pl\"")
var fileManager = flag.String("fm", "thunar", "File Manager")
var term = flag.String("term", "alacritty", "Terminal emulator")
var nameLimit = flag.Int("fslen", 80, "File Search name length Limit")
var noCats = flag.Bool("nocats", false, "Disable filtering by category")
var noFS = flag.Bool("nofs", false, "Disable file search")

func main() {
timeStart := time.Now()
Expand Down Expand Up @@ -240,6 +243,15 @@ func main() {
gtk.MainQuit()
})

win.Connect("button-release-event", func(sw *gtk.Window, e *gdk.Event) bool {
btnEvent := gdk.EventButtonNewFromEvent(e)
if btnEvent.Button() == 1 || btnEvent.Button() == 3 {
gtk.MainQuit()
return true
}
return false
})

win.Connect("key-press-event", func(window *gtk.Window, event *gdk.Event) bool {
key := &gdk.EventKey{Event: event}
switch key.KeyVal() {
Expand All @@ -254,7 +266,6 @@ func main() {
return false
case gdk.KEY_downarrow, gdk.KEY_Up, gdk.KEY_Down, gdk.KEY_Left, gdk.KEY_Right, gdk.KEY_Tab,
gdk.KEY_Return, gdk.KEY_Page_Up, gdk.KEY_Page_Down, gdk.KEY_Home, gdk.KEY_End:
//searchEntry.SetText("")
return false

default:
Expand Down Expand Up @@ -299,10 +310,12 @@ func main() {
searchEntry.SetMaxWidthChars(30)
searchBoxWrapper.PackStart(searchEntry, true, false, 0)

categoriesWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
categoriesButtonBox := setUpCategoriesButtonBox()
categoriesWrapper.PackStart(categoriesButtonBox, true, false, 0)
outerVBox.PackStart(categoriesWrapper, false, false, 0)
if !*noCats {
categoriesWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
categoriesButtonBox := setUpCategoriesButtonBox()
categoriesWrapper.PackStart(categoriesButtonBox, true, false, 0)
outerVBox.PackStart(categoriesWrapper, false, false, 0)
}

pinnedWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
outerVBox.PackStart(pinnedWrapper, false, false, 0)
Expand All @@ -312,10 +325,19 @@ func main() {
pinnedFlowBox = setUpPinnedFlowBox()

resultWindow, _ = gtk.ScrolledWindowNew(nil, nil)
resultWindow.SetEvents(int(gdk.ALL_EVENTS_MASK))
resultWindow.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
resultWindow.Connect("enter-notify-event", func() {
cancelClose()
})
resultWindow.Connect("button-release-event", func(sw *gtk.ScrolledWindow, e *gdk.Event) bool {
btnEvent := gdk.EventButtonNewFromEvent(e)
if btnEvent.Button() == 1 || btnEvent.Button() == 3 {
gtk.MainQuit()
return true
}
return false
})
outerVBox.PackStart(resultWindow, true, true, 10)

resultsWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
Expand All @@ -342,21 +364,27 @@ func main() {
resultsWrapper.PackStart(placeholder, true, true, 0)
placeholder.SetSizeRequest(20, 20)

wrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
fileSearchResultWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
fileSearchResultWrapper.SetProperty("name", "files-box")
wrapper.PackStart(fileSearchResultWrapper, true, false, 0)
resultsWrapper.PackEnd(wrapper, false, false, 10)
if !*noFS {
wrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
fileSearchResultWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
fileSearchResultWrapper.SetProperty("name", "files-box")
wrapper.PackStart(fileSearchResultWrapper, true, false, 0)
resultsWrapper.PackEnd(wrapper, false, false, 10)
}

statusLineWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
outerVBox.PackStart(statusLineWrapper, false, false, 10)
statusLabel, _ = gtk.LabelNew(status)
statusLineWrapper.PackStart(statusLabel, true, false, 0)

win.ShowAll()
fileSearchResultWrapper.SetSizeRequest(appFlowBox.GetAllocatedWidth(), 1)
categoriesWrapper.SetSizeRequest(1, categoriesWrapper.GetAllocatedHeight()*2)
fileSearchResultWrapper.Hide()
if !*noFS {
fileSearchResultWrapper.SetSizeRequest(appFlowBox.GetAllocatedWidth(), 1)
fileSearchResultWrapper.Hide()
}
if !*noCats {
categoriesWrapper.SetSizeRequest(1, categoriesWrapper.GetAllocatedHeight()*2)
}

t := time.Now()
println(fmt.Sprintf("UI created in %v ms. Thank you for your patience.", t.Sub(timeStart).Milliseconds()))
Expand Down
10 changes: 6 additions & 4 deletions tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -583,17 +583,19 @@ func launch(command string, terminal bool) {
envVarsNum := strings.Count(command, "=")
var envVars []string

cmdIdx := 0
lastEnvVarIdx := 0
cmdIdx := -1

if envVarsNum > 0 {
for idx, item := range elements {
if strings.Contains(item, "=") {
lastEnvVarIdx = idx
envVars = append(envVars, item)
} else if !strings.HasPrefix(item, "-") && cmdIdx == -1 {
cmdIdx = idx
}
}
cmdIdx = lastEnvVarIdx + 1
}
if cmdIdx == -1 {
cmdIdx = 0
}

cmd := exec.Command(elements[cmdIdx], elements[1+cmdIdx:]...)
Expand Down
20 changes: 16 additions & 4 deletions uicomponents.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,13 +319,17 @@ func setUpSearchEntry() *gtk.SearchEntry {
phrase, _ = searchEntry.GetText()
if len(phrase) > 0 {

// search apps
appFlowBox = setUpAppsFlowBox(nil, phrase)

if len(phrase) > 2 {
// search files
if !*noFS && len(phrase) > 2 {
if fileSearchResultFlowBox != nil {
fileSearchResultFlowBox.Destroy()
}

fileSearchResultFlowBox = setUpFileSearchResultContainer()

for key := range userDirsMap {
if key != "home" {
fileSearchResults = nil
Expand All @@ -337,17 +341,25 @@ func setUpSearchEntry() *gtk.SearchEntry {
statusLabel.SetText("0 results")
}
} else {
// search phrase too short
if fileSearchResultFlowBox != nil {
fileSearchResultFlowBox.Destroy()
}
fileSearchResultWrapper.Hide()
if fileSearchResultWrapper != nil {
fileSearchResultWrapper.Hide()
}
}
} else {
// clear search results
appFlowBox = setUpAppsFlowBox(nil, "")

if fileSearchResultFlowBox != nil {
fileSearchResultFlowBox.Destroy()
}
appFlowBox = setUpAppsFlowBox(nil, "")
fileSearchResultWrapper.Hide()

if fileSearchResultWrapper != nil {
fileSearchResultWrapper.Hide()
}
}
})
searchEntry.Connect("focus-in-event", func() {
Expand Down

0 comments on commit 6ac486a

Please sign in to comment.