aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Remove duration from the status methods"Drew DeVault2020-05-286-20/+28
| | | | This reverts commit f06d683688e3d2139b14f67b7e349089e7200bf4.
* Remove duration from the status methodsReto Brunner2020-05-276-28/+20
| | | | We always set 10 seconds anyhow, might as well do that without repeating ourselfs.
* Add Style configurationReto Brunner2020-05-2714-195/+295
| | | | | | | | | | The following functionalities are added to configure aerc ui styles. - Read stylesets from file with very basic fnmatch wildcard matching - Add default styleset - Support different stylesets as part of UiConfig allowing contextual styles. - Move widgets/ui elements to use the stylesets. - Add configuration manual for the styleset
* Set AnsweredFlag on successful replySrivathsan Murali2020-05-251-0/+9
|
* aerc: Refactor getpasswd dialogRay Ganardi2020-05-252-40/+56
| | | | | | Previously there's a hack for showing and hiding the dialog. Change it to use channels to emulate async/await
* feat(pgp): Show error message from pgpRay Ganardi2020-05-251-1/+4
| | | | | The error wasn't shown, making errors like wrong password being ignored and the password is prompted again.
* feat(pgp): Add <ESC> to cancel password promptRay Ganardi2020-05-252-10/+19
| | | | Previously there was no way to cancel the password prompt.
* pgp: fail gracefully from email decryptionRay Ganardi2020-05-251-1/+5
| | | | | Aerc panics when there's an error on email decryption. Instead, an error message should be shown.
* FetchBodyPart doesn't need the parent body structureReto Brunner2020-05-171-2/+1
|
* Change MarkedMessages to return uidsReto Brunner2020-05-113-5/+5
| | | | | | | | | Especially if one tries to interact with all marked messages there could be the case that not all headers are fetched yet, hence the messageInfo is still nil. This segfaults a lot of commands which in principle only need the uid to complete. If we switch to uids, this issue can be alleviated for those commands.
* Use stdout as controlling terminalGuillaume J. Charmes2020-05-061-1/+2
| | | | | | | Soves an issue with go1.15 not letting ctty be a parent. See https://github.com/creack/pty/pull/97 for more details. Signed-off-by: Guillaume J. Charmes <git+guillaume@charmes.net>
* Revert "Dont detach process under vterm"Drew DeVault2020-05-061-1/+1
| | | | This reverts commit d07cf6c667a0d497c67196fca9967db71c1e02f6.
* Dont detach process under vtermGuillaume J. Charmes2020-05-061-1/+1
| | | | Signed-off-by: Guillaume J. Charmes <git+guillaume@charmes.net>
* gofmt fixesDrew DeVault2020-04-242-7/+7
|
* Add recall commandJeffas2020-04-242-1/+5
| | | | | | This command allows recalling the selected postponed email to edit in the composer. The command only allows recalling from the postpone directory.
* Add postpone commandJeffas2020-04-242-20/+28
| | | | | | | This command uses the Postpone folder from the account config to save messages to. Messages are saved as though they were sent so have a valid 'to' recipient address and should be able to be read back in for later editing.
* Add :choose commandRay Ganardi2020-04-241-0/+33
| | | | | | | Usage: *choose* -o <key> <text> <command> [-o <key> <text> <command>]... Prompts the user to choose from various options.
* Remove ability to specify headers in the editorReto Brunner2020-04-241-147/+42
| | | | | | | | | | Due to headers being essentially free text, we constantly run into issues with parts of the body being interpreted as headers. Remove the ability to overwrite headers to avoid that, while keeping the ability to specify headers in the template files. Fixes #383
* Use aerc.PushError where appropriateBen Fiedler2020-04-232-13/+6
| | | | Forgot an unused import, to save you the hassle here is v2.
* fix: Close unused MessageView when swapping viewRay Ganardi2020-04-201-1/+2
| | | | | | | Closes https://todo.sr.ht/~sircmpwn/aerc2/379 The old `MessageView` was not closed when replacing the tab content, which causes a memory leak.
* fix function keys in terminal widgetJonathan Halmen2020-03-261-1/+1
| | | | off-by-one error
* msgviewer: do not interpret header as format stringDrew DeVault2020-03-191-2/+2
|
* Add pinned tabsJeffas2020-03-091-1/+9
| | | | | | This adds the commands pin-tab and unpin-tab. Once pinned a tab lives on the left of the tabstrip and has a configurable marker, defaulting to ` before its name.
* Refactoring: remove store from PartInfoDrew DeVault2020-03-092-2/+0
|
* Reduce size of the password prompt UIDrew DeVault2020-03-031-2/+2
|
* Yet another revision to PGP UIDrew DeVault2020-03-031-4/+4
| | | | I think this will be the one.
* Simplify PGP messagingDrew DeVault2020-03-031-20/+11
|
* compose: add space between headers and editorDrew DeVault2020-03-031-3/+5
| | | | Until the PGP changes, this was merged into the header widget.
* Initial support for PGP decryption & signaturesDrew DeVault2020-03-036-46/+269
|
* Add move-tab commandJeffas2020-03-031-0/+12
|
* Only show spinner while sorting if no uidsJeffas2020-02-281-7/+7
| | | | | This fixes the problem where we already have messages and then have to sort again.
* Don't show empty message while sortingJeffas2020-02-281-0/+6
| | | | | | This changes the ui to show the spinner while we are sorting. It only shows one line of the spinner since there are an unknown number of messages at this time.
* Set the store on the message list if it is nilJeffas2020-02-281-0/+3
|
* Don't set the store on an update to itJeffas2020-02-281-4/+0
| | | | | | Updates to a store can be asynchronous so we shouldn't select it just because it had an update. Selection of the stores should be driven by explicit user commands.
* widgets/dirlist: Fix total message countReto Brunner2020-02-251-4/+6
| | | | | | | | | This fixes an issue with the updated count logic, where only fetched messages where counted to the exists string of the rue count. Note that the count is still broken (we only count read / unread messages we fetched, but that is the same behaviour as prior to the commit 66b68f35b3f3f3b97ec9951397fd75afeb0d0995)
* Fix crash on mouse scrolling between message partsAmir Yalon2020-02-251-2/+2
|
* Fix crash on mouse scrolling before messages loadWiktor Kwapisiewicz2020-02-221-2/+6
| | | | | Using mouse scroll before messages load will trigger a panic as `ml.store` has not been assigned yet and is `nil`.
* fix missing importReto Brunner2020-02-191-0/+1
|
* Revert "Only fetch the directory contents when we are switching directories"Reto Brunner2020-02-192-6/+1
| | | | | | | This reverts commit bd4df530095ee343778a59120a9e641c01010b0f. I did not properly untangle the opening / dirlist update of each other. This interferes with the imap worker, hence the revert
* dirlist: actually honor the DirInfoReto Brunner2020-02-161-25/+36
| | | | | | | | | | | | Currently the dirlist ignores the counts provided by the dirInfo. However some of the workers can actually provide accurate counts much quicker than if we count the flags. Eventually we will also want to enable displaying counts for background folders, where the brute force counting won't work as none of the headers are fetched yet. This commit models it in an opt-in manner, if the flag isn't set then we still count the messages manually.
* Only fetch the directory contents when we are switching directoriesReto Brunner2020-02-162-1/+18
| | | | | | Previously, sending a DirectoryInfo assumed that a directory change happened. However we don't want that if we only want to update the unread message count.
* Ensure we aren't selecting negative directoriesAndreas Rammhold2020-02-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the list of directories is empty trying to navigate in the directory list did previously lead to a crash. With this change we instead return early before trying to change the directory. Example backtrace: > panic: runtime error: index out of range [-1] > > goroutine 1 [running]: > git.sr.ht/~sircmpwn/aerc/widgets.(*DirectoryList).NextPrev(0xc000160680, 0xffffffffffffffff) > source/aerc/widgets/dirlist.go:285 +0xd4 > git.sr.ht/~sircmpwn/aerc/commands/account.NextPrevFolder.Execute(0xc000191040, 0xc00025c210, 0x1, 0x1, 0x0, 0xc00016f420) > source/aerc/commands/account/next-folder.go:44 +0xe0 > git.sr.ht/~sircmpwn/aerc/commands.(*Commands).ExecuteCommand(0xc0000101a8, 0xc000191040, 0xc00025c210, 0x1, 0x1, 0xc000020070, 0xb46d01) > source/aerc/commands/commands.go:66 +0xa7 > main.execCommand(0xc000191040, 0xc0001ca190, 0xc00025c210, 0x1, 0x1, 0xc00025c210, 0xc0003fb080) > source/aerc/aerc.go:60 +0xc7 > main.main.func3(0xc00025c210, 0x1, 0x1, 0x1, 0x1) > source/aerc/aerc.go:162 +0x57 > git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).BeginExCommand.func1(0xc000201db0, 0xb) > source/aerc/widgets/aerc.go:382 +0x83 > git.sr.ht/~sircmpwn/aerc/widgets.(*ExLine).Event(0xc0003be100, 0xb475a0, 0xc00023cba0, 0xc00023cba0) > source/aerc/widgets/exline.go:79 +0x131 > git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).Event(0xc000191040, 0xb475a0, 0xc00023cba0, 0x99ee01) > source/aerc/widgets/aerc.go:202 +0x4c1 > git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).simulate(0xc000191040, 0xc000036f00, 0xd, 0x10) > source/aerc/widgets/aerc.go:195 +0x8d > git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).Event(0xc000191040, 0xb475a0, 0xc00023c9c0, 0x9c5a60) > source/aerc/widgets/aerc.go:218 +0x3e8 > git.sr.ht/~sircmpwn/aerc/lib/ui.(*UI).Tick(0xc0001ca190, 0xa99d00) > source/aerc/lib/ui/ui.go:92 +0x190 > main.main() > source/aerc/aerc.go:192 +0x5f2
* dirlist: adapt to dynamic UIconfigReto Brunner2020-01-282-11/+21
|
* dirlist: remove not needed sort functionReto Brunner2020-01-281-2/+1
| | | | | | | | | | The docs of strings.Compare state: > Compare is included only for symmetry with package bytes. It is usually > clearer and always faster to use the built-in string comparison operators > ==, <, >, and so on. So let's do that.
* config: Strongly type context typeReto Brunner2020-01-242-3/+3
| | | | | | | | The go compiler can't help much with untyped int constants. Even though the only valid constants are 0-3 it will happily accept 4 as input. Let's let the go compiler worry about correctness here. This also allows people not very familiar with the code to use it properly via auto completion.
* Contextual UI ConfigurationSrivathsan Murali2020-01-243-10/+27
| | | | | | | | | + Adds parsing of contextual ui sections to aerc config. + Add GetUiConfig method for AercConfig that is used to get the specialized UI config. + Add UiConfig method to AccountView to get specialized UI Config. + Modifies Aerc codebase to use specialized UIConfig instead. + Adds documentation for Contextual UI Configuration
* Display the mimetype when offering to pipe or saveLuke Drummond2020-01-201-1/+3
|
* Switch back to upstream pty libraryBen Fiedler2020-01-161-1/+1
| | | | | The relevant change was merged upstream, and thus allows us to clean up unneeded forks.
* Correct spellingReto Brunner2020-01-161-1/+1
|
* remove Original* checkLeszek CimaƂa2020-01-091-2/+1
|