diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-11-14 00:01:20 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-11-14 00:01:20 +0200 |
commit | 7651e84be949ecabac62d21b6e843b6776a2371e (patch) | |
tree | 15babd86e895b3f2cf0f74c8ebba66137fd2a791 | |
parent | ba387764ca1590625d349e74eb8a8a64d1849b67 (diff) | |
parent | 61400188bb6c3c86c40a8be8242450d45e764415 (diff) |
Merge branch 'master' into update
-rw-r--r-- | README.md | 34 | ||||
-rw-r--r-- | ui/room-list.go | 22 | ||||
-rw-r--r-- | ui/tag-room-list.go | 5 | ||||
-rw-r--r-- | ui/view-main.go | 2 |
4 files changed, 51 insertions, 12 deletions
@@ -25,6 +25,20 @@ or compile from source: 1. Run `go get -u maunium.net/go/gomuks` 2. gomuks should now be in `$GOPATH/bin/gomuks` +## Developing +Running `go install` in `$GOPATH/src/maunium.net/go/gomuks` will recompile the project and dependencies into `$GOPATH/bin/gomuks`. + +For debugging, use `tail -f /tmp/gomuks-debug.log` and write to it using the methods in the `maunium.net/go/gomuks/debug` package: +```go +import ( + "maunium.net/go/gomuks/debug" +) +... +func Foo() { + debug.Print("WHY ISN'T IT WORKING?!?!?") +} +``` + ## Usage - switch rooms - `Ctrl + ↑` `Ctrl + ↓` `Alt + ↑` `Alt + ↓` - scroll chat (line) - `↑` `↓` @@ -32,13 +46,13 @@ or compile from source: - jump to room - `Alt + Enter`, then `Tab` and `Enter` to navigate and select room ### Commands -* `help` - Is a known command -* `me <text>` - Send an emote -* `quit` - Close gomuks -* `clearcache` - Clear room state and close gomuks -* `leave` - Leave the current room -* `join <room>` - Join the room with the given room ID or alias -* `toggle <rooms/users/baremessages/images/typingnotif>` - Change user preferences -* `logout` - Log out, clear caches and go back to the login view -* `send <room id> <event type> <content>` - Send a custom event -* `setstate <room id> <event type> <state key/`-`> <content>` - Change room state +* `/help` - Is a known command +* `/me <text>` - Send an emote +* `/quit` - Close gomuks +* `/clearcache` - Clear room state and close gomuks +* `/leave` - Leave the current room +* `/join <room>` - Join the room with the given room ID or alias +* `/toggle <rooms/users/baremessages/images/typingnotif>` - Change user preferences +* `/logout` - Log out, clear caches and go back to the login view +* `/send <room id> <event type> <content>` - Send a custom event +* `/setstate <room id> <event type> <state key/-> <content>` - Change room state diff --git a/ui/room-list.go b/ui/room-list.go index a7543a9..6b81e60 100644 --- a/ui/room-list.go +++ b/ui/room-list.go @@ -21,6 +21,7 @@ import ( "strings" "math" + "maunium.net/go/gomuks/debug" "maunium.net/go/gomuks/matrix/rooms" "maunium.net/go/tcell" @@ -313,6 +314,27 @@ func (list *RoomList) Next() (string, *rooms.Room) { return list.Last() } +// NextWithActivity Returns next room with activity. +// +// Sorted by (in priority): +// +// - Highlights +// - Messages +// - Other traffic (joins, parts, etc) +// +// TODO: Sorting. Now just finds first room with new messages. +func (list *RoomList) NextWithActivity() (string, *rooms.Room) { + for tag, trl := range list.items { + for _, room := range trl.All() { + if room.HasNewMessages() { + return tag, room.Room + } + } + } + // No room with activity found + return "", nil +} + func (list *RoomList) index(tag string, room *rooms.Room) int { tagIndex := list.IndexTag(tag) if tagIndex == -1 { diff --git a/ui/tag-room-list.go b/ui/tag-room-list.go index 2705c49..60b4350 100644 --- a/ui/tag-room-list.go +++ b/ui/tag-room-list.go @@ -18,12 +18,13 @@ package ui import ( "fmt" + "strconv" + "strings" + "maunium.net/go/gomuks/matrix/rooms" "maunium.net/go/gomuks/ui/widget" "maunium.net/go/tcell" "maunium.net/go/tview" - "strconv" - "strings" ) type OrderedRoom struct { diff --git a/ui/view-main.go b/ui/view-main.go index 5faa804..96daf1b 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -196,6 +196,8 @@ func (view *MainView) KeyEventHandler(roomView *RoomView, key *tcell.EventKey) * searchModal := NewFuzzySearchModal(view, 42, 12) view.parent.views.AddPage("fuzzy-search-modal", searchModal, true, true) view.parent.app.SetFocus(searchModal) + case c == 'a': + view.SwitchRoom(view.roomList.NextWithActivity()) case c == 'l': view.ShowBare(roomView) default: |