aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Ignore scroll command when msgstore is nilJelle Besseling2019-08-121-0/+3
| | | | | | | | | Fixes ~sircmpwn/aerc2#205. Many functions do a nil check on the store, so this changes Store() so it returns nil when msglist is nil. It also places the Scroll() behind the nil check in the next-message command. https://todo.sr.ht/~sircmpwn/aerc2/205
* Close backends prior to shutdownReto Brunner2019-08-081-0/+19
| | | | | | | We need some way to signal the backends that we are about to shutdown, allowing them to clean up (for example in notmuch committing the db changes). This commit implements a hook which gets called upon shutdown, providing backends implement the io.Closer interface.
* Implement next-folder using NextPrev with amountJelle Besseling2019-08-071-3/+3
| | | | | | This fixes ~sircmpwn/aerc2#182 https://todo.sr.ht/~sircmpwn/aerc2/182
* Allow cc/bcc command to receive no argumentsDaniel Bridges2019-08-071-0/+17
|
* cc/bcc: Append to existing headers if called twiceKevin Kuehler2019-08-071-1/+6
| | | | Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
* Fixing #231 (alternative preferred mimetypes)Ben Cohen2019-08-031-10/+10
|
* Add cc and bcc commandsDaniel Bridges2019-08-031-14/+44
|
* Fix sending attachments with less than 512 bytesBen Burwell2019-08-021-1/+1
|
* Include body MIME terminator in multipart messagesBen Burwell2019-08-021-23/+30
| | | | | | | | Before, the text/plain part of the multipart MIME message was not being correctly terminated with its boundary. The multipart writer writes the terminator when its Close is called, but since the call to Close() was deferred, it was not being called until after the attachments were being written resulting in the boundary not being included at all.
* msglist: add initialization stateReto Brunner2019-08-022-15/+33
| | | | | | | | | Make the msglist aware of whether we are still initializing or not. We never stopped spinning the msglist if we didn't get any Directories back from types.ListDirectories. With this change, we can set the init state from the account and display the spinner only if we don't know whether we have directories or not and else the "no messages" string from the config.
* Ring bell when new messages arrive0.2.0Ben Burwell2019-07-293-0/+20
| | | | | | | | Add a "new-message-bell" option to the UI section of aerc.conf. A new hook into the message store allows the msglist widget to detect new messages being added to the displayed list. When new messages are delivered, and the new-message-bell option is enabled (as it is by default), the terminal will beep.
* Add index option to change-tabJeffas2019-07-271-0/+10
| | | | | | | This allows selection of a tab using its index. It attempts to parse the given argument as a number, if it fails then it uses it as a name. Also supports relative indexes using prefixed + or -.
* Add :detach commandGalen Abell2019-07-271-0/+20
| | | | | | | Add a command for removing attachments from a composed message. Syntax is :detach [path], with path being an optional argument specifying the path of one existing attachment. If no path is specified, the first attachment is removed.
* Fix review message not filling entire spaceGalen Abell2019-07-271-1/+1
| | | | | | Adding an attachment, switching to a different tab, and switching back to the review message caused the "filled space" in the review message to disappear, since there was one too many rows in the layout.
* Add tab completion to textinputsJeffas2019-07-261-7/+1
| | | | | | | | | | | | | This adds tab completion to textinput components. They can be configured with a completion function. This function is called when the user presses <tab>. The first completion is initially shown to the user inserted into the text. Repeated presses of <tab> or <backtab> cycle through the completions list. The completions list is invalidated when any other non-tab-like key is pressed. Also changed is some logic for current completion generation so that all available commands are returned when <tab> is pressed with no current text and similarly for arguments of commands.
* Add command history and cyclingGalen Abell2019-07-263-6/+32
| | | | | | Aerc will keep track of the previous 1000 commands, which the user can cycle through using the arrow keys while in the ex-line. Pressing up will move backwards in history while pressing down will move forward.
* Support configurable header layout in compose widgetDaniel Bridges2019-07-264-152/+191
|
* Move msgstore map to dirstoreJeffas2019-07-262-25/+35
| | | | | | This map represents a mapping from directory names to their associated messagestores anyway so they should be under dirstore. This simply moves them there and adds some methods required to interact with them.
* Add new-email triggerJeffas2019-07-263-5/+19
| | | | | | | | | | | | | | | | | This patch sets up the trigger config section of aerc.conf. Each trigger has its own function which is called from the place where it is triggered. Currently only the new-email trigger is implemented. The triggers make use of format strings. For instance, in the new-email trigger this allows the user to select the trigger command and also the information extracted from the command and placed into their command. To actually execute the trigger commands the keypresses are simulated. Further triggers can be implemented in the future. Formatting of the command is moved to a new package.
* Show the directory being selected in grayJeffas2019-07-251-0/+3
|
* Add change tab commandJeffas2019-07-231-0/+22
| | | | | | | | | | This command allows the user to change tab by giving the tab name. This can be tab completed too. The previous tab is stored in the tabs module so that when a new tab is created it is still possible to go to the previous one. Normal invocation is :ct folder Previous tab is :ct -
* Fix alternatives configDrew DeVault2019-07-191-2/+5
|
* Add [a]ttach to the review message promptsDrew DeVault2019-07-191-1/+1
|
* Add Unix socket for communicating with aercDrew DeVault2019-07-192-0/+47
|
* Implement :filter, :clearKevin Kuehler2019-07-192-14/+17
| | | | Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
* Add :attach command for composeGalen Abell2019-07-191-17/+129
| | | | | | Allow users to add attachments to emails in the Compose view. Syntax is :attach <path>, where path is a valid file. Attachments will show up in the pre-send review screen.
* Add option to always show mimetype in viewerJeffas2019-07-171-4/+6
| | | | | | | | | | A user may want to be able to see what mimetype they are viewing, so that they can determine what program it may be opened in or for some other reason. The config option is under the [viewer] section and is called 'always-show-mime'. It defaults to false to preserve the current behaviour.
* Remove passing of showHeaders explicitlyJeffas2019-07-171-12/+12
| | | | | Where it is needed the configs are already available so just extract the value from these.
* Ensure new partswitcher doesn't start on multipartJeffas2019-07-171-0/+2
|
* Display user specified headers in viewer if presentDaniel Bridges2019-07-171-40/+61
|
* Show currently pressed keys in statuslineJeffas2019-07-172-1/+17
| | | | | | This patch adds the currently pressed keys to the statusline. This is useful when keybindings are multiple keys long and you might forget which keys are already pressed.
* Revert "Ensure new partswitcher doesn't start on multipart"Drew DeVault2019-07-171-1/+0
| | | | This reverts commit 41390bc3e1e557eff15e8159767f206b3b74ea30.
* When reviewing an email don't pass characters onJeffas2019-07-171-1/+4
| | | | | This stops characters being passed to the focused box when reviewing an email. To edit headers the user should go back to the edit page.
* Ensure new partswitcher doesn't start on multipartJeffas2019-07-171-0/+1
|
* Don't initialize an invalid pty sizeDrew DeVault2019-07-131-0/+3
|
* Add clickable tabsJeffas2019-07-111-0/+2
| | | | | | | | | | | This introduces a new interface `Clickable`. I'd imagine this would be implemented for most widgets eventually and would allow for programs run in the terminal to also have their mouse events forwarded to them. For the tabs it was relatively simple to check that the position of the click is within the boxes for the tabs. For other components I'd imagine that some state representing their currently drawn bounding box would be useful.
* Add backtab to tutorial navigationJeffas2019-07-111-1/+3
| | | | | | | | This allows users to use backtab (Shift+tab) to go back through the fields in the tutorial, like C-K. This then mimics the other methods in having a forward and backward variant. Also documented this in the wizard help paragraph.
* Fix crashes when operating on empty folder (#216)Daniel Bridges2019-07-103-5/+13
|
* Factor IMAP-specific structs out of UI modelsBen Burwell2019-07-083-15/+11
| | | | | | | Before, we were using several IMAP-specific concepts to represent information being displayed in the UI. Factor these structures out of the IMAP package to make it easier for other backends to provide the required information.
* Factor UI models out of the worker message packageBen Burwell2019-07-085-17/+18
| | | | | | | | Before, the information needed to display different parts of the UI was tightly coupled to the specific messages being sent back and forth to the backend worker. Separating out a models package allows us to be more specific about exactly what a backend is able to and required to provide for the UI.
* Make :pipe command more genericDrew DeVault2019-07-053-11/+18
|
* Sort out dirstore once and for allDrew DeVault2019-07-041-0/+1
|
* dirlist: simplify nextPrev() considerablyReto Brunner2019-07-041-25/+11
| | | | | | | Assuming we always have a sorted dirlist (other code depends on that already), we don't need to loop over the dirStore. Any filtering done should be performed elsewhere
* dirlist: remove the additional filtering in Draw()Reto Brunner2019-07-041-7/+0
|
* dirlist: sync dirstore in filterDirsByFoldersConfigReto Brunner2019-07-041-9/+7
| | | | | Also sets the public List() method to return the unfiltered list of directories directly from the store.
* Add IMAP folder tab completionGregory Mullen2019-07-041-1/+5
| | | | | Credit for this fix goes to Reto; I guess if we're not gonna be mutt we should probabaly do things correctly.
* Use go-message implementation of GenerateMessageIDBen Burwell2019-07-041-2/+1
| | | | | Now that this is available in the upstream, we no longer need to maintain a parallel implementation.
* Revert "Remove dirs field and references to it"Drew DeVault2019-07-021-11/+10
| | | | This reverts commit 0e55637aac92e748267559b7aa91a188a17c386f.
* Remove dirs field and references to itRobert Günzler2019-06-301-10/+11
| | | | | This fixes prev/next-folder that broke after 546dfcd76dd228e0605359e9985f0b6a5672e8fa
* Add new lib/dirstore to source completions fromGregory Mullen2019-06-291-4/+7
|