aboutsummaryrefslogtreecommitdiff
path: root/widgets
AgeCommit message (Collapse)Author
2020-01-09create OriginalMail structLeszek Cimała
2020-01-05FetchBodyParts: decode source in the workersReto Brunner
Previously the workers returned a mixture of decoded / encoded parts. This lead to a whole bunch of issues. This commit changes the msgviewer and the commands to assume parts to already be decoded
2020-01-05msgviewer: decode headers prior to displaying themReto Brunner
2020-01-05msgviewer: bypass filter for headersReto Brunner
2020-01-05msgviewer: do not anchor ansi escape to start of lineReto Brunner
2019-12-27msgviewer: Add Labels as a virtual headerReto Brunner
In order to accommodate for that, the headerlayout needed to be rewritten to pass the filter criteria back to the msgviewer, instead of just using the normal headers.
2019-12-21add LabelList eventReto Brunner
2019-12-21msglist: highlight marked messagesReto Brunner
Note that, until we get color configuration, this means that the user *must* have the %Z verb in the index format else it'll be horribly confusing as no visual indication is provided
2019-12-21msgviewer: implement ProvidesMessages interfaceReto Brunner
2019-12-21AccountView: implement ProvidesMessagesReto Brunner
2019-12-21widgets: add msgInfoFromUids helperReto Brunner
2019-12-21add ProvidesMessages interfaceReto Brunner
2019-12-21Add address book completion in composerBen Burwell
Complete email address fields in the message composer with an external address book command, compatible with mutt's query_cmd.
2019-12-21Show textinput completions in popoversBen Burwell
Rather than showing completions inline in the text input, show them in a popover which can be scrolled by repeatedly pressing the tab key. The selected completion can be executed by pressing enter.
2019-12-19Use timestamp-format in msgviewerBen Burwell
This allows the time to be displayed in a user-configurable way. Also localize the time in the message viewer as it is in the message list.
2019-12-12Composer: fix EOF errorsDrew DeVault
PrepareHeaders generated a fresh message ID and Date header every time. This instead generates those headers in advance.
2019-12-09Add custom sorting for foldersMichele Finotto
A new config options for accounts.conf (folders-sort) was added to allow a user to choose which folders should be shown on top. My use case was to avoid stepping into heavy, but rarely viewed folders when cycling through other often accessed ones. To test add this to your account.conf: folders-sort = INBOX,Sent,Archive INBOX, Sent and Archive should then show at the top of your dirlist, and all other folders should come next in alphabetical order.
2019-12-08remove garbage headers in reply messageLeszek Cimała
Very important fix. Remove garbage from reply message headers. Till now all Original fields were send in reply, which we do not want and could lead to uncorrect email message.
2019-12-07failback to Content-Type filename when encoded Content-Disposition is usedLeszek Cimała
Hi! This patch will fix missing filename if it is RFC2231 encoded with charset different then ASCII or UTF8. Example how it looks like in mail: Content-Type: application/pdf; name="=?UTF-8?Q?Opis_przedmiotu_zam=c3=b3wienia_-_za=c5=82=c4=85cznik_nr_1?= =?UTF-8?Q?=2epdf?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=iso-8859-2''%4F%70%69%73%20%70%72%7A%65%64%6D%69%6F%74%75%20; filename*1*=%7A%61%6D%F3%77%69%65%6E%69%61%20%2D%20%7A%61%B3%B1%63%7A%6E; filename*2*=%69%6B%20%6E%72%20%31%2E%70%64%66 Yes, this should be forbidden :-). Anyway, best solotion in such cases is to failback to Content-Type name. I am not sure if it is guaranted to be there, but probably it will. Leszek
2019-12-07fix non-utf8 encoding in msgviewerernierasta
This patch should fix encoding problem with non-utf8 text/plain mime. It is now correctly convert to utf8 before sending to pager. It will also solve quoting such mails. Leszek
2019-12-07Parse headers from templateRobert Günzler
This patch parses the processed template for headers and populates matching header editors. Those are then stripped from the template body before prepending the template and remaining header fields to the composer content. The main motivation for this is keeping receiver, sender and subject lines in the template file and generating the message subject from the date.
2019-12-04Revert "Parse headers from template"Drew DeVault
This reverts commit 31e3e9f56e0b8123f0238537112496b407055aef.
2019-12-04Parse headers from templateRobert Günzler
Parse the processed template for headers and populates matching header editors accordingly. Those are then stripped from the template body before prepending it and remaining header fields to the composer content. The motivation for this is keeping receiver, sender and subject lines in the template file and generating the message subject with the date functions.
2019-11-21widgets/terminal: Reap more zombiesKevin Kuehler
The editor and pager were not properly being reaped, causing resource leakage whenever a user replies to a message. Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
2019-11-17Allow fields in compose widget to be clickedGreg Anders
When the mouse is enabled, clicking on a header field switches focus to that field (likewise for the terminal).
2019-11-17Complete the F rune.Srivathsan Murali
%F now shows the auth name or recepient name/address if the message is from you.
2019-11-17Add UI options to save/pipe messages with unsupported mimetypesGreg Anders
Adds a message indicating the user's ability to :save or :pipe a message with an unsupported mimetype and also adds a selector widget (similar to the tutorial). The selector widget was previously defined in the account wizard module, so this commit breaks it out into its own module to allow for re-use. Further, modify the BeginExLine() function to take an argument that pre-populates the command line, allowing functions to initiate an ex command without executing it. Closes #95.
2019-11-17Check for terminal before forwarding mouse eventGreg Anders
When viewing a message part with no available filter, clicking the UI would cause a nil pointer dereference because the MouseEvent was passed to the PartViewer's `term` field, which does not exist in the case of an absent filter.
2019-11-10Add some defaults for template optionsDrew DeVault
2019-11-10Add Templates with ParsingSrivathsan Murali
+ Changes NewComposer to return error. + Add lib to handle templates using "text/template". + Add -T option to following commands - compose. - reply - forward + Quoted replies using templates. + Forwards as body using templates + Default templates are installed similar to filters. + Templates Config in aerc.conf. - Required templates are parsed while loading config. + Add aerc-templates.7 manual for using template data.
2019-11-10widgets/msgviewer: Don't crash if pager is nilKevin Kuehler
Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
2019-10-16widgets/msgview: Reap the filter commandKevin Kuehler
The filter command shells out and returns almost immediately. Call Wait() so the filter process gets reaped. Prior to this patch, aerc creates a zombie process for every email that is viewed. Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
2019-10-16Cleanup pager processes after closing a msgviewerKevin Kuehler
A pager is spawned every time an email is viewed but not killed off when quitting the msgviewer, thus leading to process leakage. This patch fixes this by adding a Close method to the msgview widget, which is called in the close command. Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
2019-10-09Revert "Show spinner when fetching contents"Drew DeVault
This reverts commit 1339faf7881f33762c6e0a4915404e362fc51de1.
2019-10-09Show spinner when fetching contentsJeffas
The spinner should be shown when fetching the contents as we don't know at that point whether there are some messages or not.
2019-10-02Fix selected account to return for messageviewerJeffas
This ensures that the selectedaccount is returned if currently selected tab is a messageviewer. This also makes it more extensible for adding other ways of getting the selected account.
2019-09-20Add sorting functionalityJeffas
There is a command and config option. The criteria are a list of the sort criterion and each can be individually reversed. This only includes support for sorting in the maildir backend currently. The other backends are not supported in this patch.
2019-09-18Revert "Fix out-of-order messages by sorting as we display"Drew DeVault
This reverts commit ac99d9ed62644cf0259bdd79481b28c3fbcef650.
2019-09-12widgets: remove duplicate importWagner Riffel
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2019-09-12Add signaturesJeffas
This adds the ability for per-account signatures in the accounts.conf config file. The signature is added to emails in the editor at the bottom of the email. This includes when forwarding, replying to, and composing emails. There are two config options: signature-file and signature-cmd. The former allows a signature to be read from a file and the latter allows an arbitrary command to be executed to return the signature. The config options have been documented in aerc-config
2019-09-12Add modify-labels commandReto Brunner
This adds the event type as well as the command implementation, but no backend supports it yet.
2019-09-11Add display of unread messages in dirlistJeffas
Add an onUpdateDirs handler. This is used to invalidate the dirlist and redraw with the correct number of recent/unread/total messages is shown. A config option and formatting options are provided.
2019-09-11Fix segfault on deleteDevon Johnson
2019-09-11Add MouseableJeffas
This adds the Mouseable interface. When this is implemented for a component that item can accept and process mouseevents. At the top level when a mouse event is received it is passed to the grid's handler and then it trickles down until it reaches a component that can actually handle it, such as the tablist, dirlist or msglist. A mouse event is passed so that components can handle other things such as scrolling with the mousewheel. The components themselves then perform the necessary actions. Clicking emails in the messagelist opens them in a new tab. Textinputs can be clicked to position the cursor inside them. Mouseevents are not forwarded to the terminal at the moment. Elements which do not handle mouse events are not required to implement the Mouseable interface.
2019-09-04widgets: gofmtWagner Riffel
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2019-09-04widgets: rewrite references to os.SET_SEEK to io.SeekStartWagner Riffel
Os.SET_SEEK is deprecated, it's recommended to use contants from io package Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2019-09-04all: purge redundant underscoresWagner Riffel
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2019-09-02Use sort.Stable for sorting displayed messagesa3v
With sort.Sort, sometimes two messages with the same timestamp will switch places every time the message list is redrawn
2019-08-30Allow custom spinner via config filePaul Spooren
Allows to set `ui.spinner=` to a string which is then split by `ui.spinner-delimiter=` (Default: comma) instead of having a hard coded animation. This implementation doesn't use INIs capabilities to split strings as it trims whitespaces breaking the default animation. Signed-off-by: Paul Spooren <mail@aparcar.org>
2019-08-29Fix out-of-order messages by sorting as we displayStephen Brennan
Sometimes I observe out-of-order messages when using a maildir inbox. It appears that the UIDs for these messages are returned out of order by the MessageStore. In order for a maildir MessageStore to return messages in most recently received order, it must have already opened all messages and parsed the date to use as a sort key. Rather than implement that, simply sort messages by time as we display. This fix shows my emails in order.