summaryrefslogtreecommitdiff
path: root/src/windows.py
AgeCommit message (Collapse)Author
2014-03-23Fix formatting, some typos, and unused code, and add docstringsmathieui
- No idea why subclasses of ConversationTab were working before (info_header was overriden with None in __init__) - Or why the date parsing worked (“Exeception”) - Some more reformatting with pylint indications - Document each module in the tabs module
2014-02-17Fix a traceback in the commandinputmathieui
When the connection lags and the user presses tab, poezio will insert a tab inside the input, wich has now a specific formatting. This caused poezio to crash.
2014-02-03Fix #2418 (Wrong character count in input with copy/pasted tabulations)mathieui
- Replace tabulations in the input by highlighted “t”s - More readable, and less messy to deal with.
2014-02-03Fix #2208 (time_marker shows an useless timestamp)mathieui
2013-10-21Increase the number of chars to "jump" when the cursor goes out of the inputFlorent Le Coz
2013-10-20Improve the input a lotFlorent Le Coz
Noticeable changes: - The input "view" is smarter, it always move to a decent position so we can see enough text around the cursor. - The cursor goes at the end of the input when pasting some long text - The formatting chars (^C and o, b, a, 1, 2, 3 etc) are now visible in the input. This makes it a lot easier to know where these special characters are, to change them and efficiently edit our text (we just lose a little, on the cosmetic side, but who cares) - The code is actually a lot simpler in the functions to move the cursor, insert/delete chars: we do not have to deal with special cases where the formatting characters are actually composed of two chars. fixes #2183
2013-09-19Fix #2372 (traceback on space in roster after disconnect)Mathieu Pasquet
selected_row wasn’t reset
2013-08-16quote a completed word if it has \ in itmathieui
2013-08-04Add the same pluggable "information element" to the PrivateTabmathieui
2013-08-02Fix #2317 (/join completion is broken)mathieui
Also add an override parameter to new_completion so that the completion does not care if the list matches the previous input or not.
2013-08-01Fix #2049 (get the current completed argument)mathieui
A command argument can now be completed even if it isn’t the last one in the input. - Add a new method Input.new_completion Almost like the old auto_completion method, except taht it takes another argument: argument_position, which is the argument to be completed. - Methods using the old completion method still work - All completion methods in poezio now use the new one if necessary - Further details can be found in the docstring of new_completion
2013-07-31Fix #2306 (none, to, and from subscriptions should be more visible)mathieui
Added a configuration option and some theme variables.
2013-07-03Move backwards in the input the same way we move forward (ref #2183)mathieui
2013-06-30Fix #2329 (display the info buffer in the muclisttab)mathieui
also fix some typos in the comments, and a refresh issue with the input
2013-06-20Use a logical order of arguments in the poopt functions, nowFlorent Le Coz
2013-06-20Use cut_by_columns to properly cut nicks in the UserWin windowFlorent Le Coz
2013-06-19Remove the now useless (and fucking slow) wcwidth python implementationFlorent Le Coz
2013-06-19And actually use poopt.wcswidth to properly count the nicks' sizeFlorent Le Coz
see #2142
2013-06-19Consider the number of columns of each characters in the poopt moduleFlorent Le Coz
Some characters take 0 columns, others take 1 or 2 (full-width characters) fixes #2142
2013-06-13Improve the roster searchmathieui
- now case-insensitive - search in the bare jid instead of userpart only (and still in roster names) - do not display groups when searching - display offline contacts - do not expand resources if they were before the search
2013-06-10Fix addstr_colored with colors that start with a -1mathieui
2013-06-09Fix #1892 (keep the contact selected in the roster)mathieui
2013-06-09Fix #2183 (do not scroll one char at a time when you reach the end)mathieui
Now it scrolls horizontally of 1/4 the size of the input
2013-06-08Add a way to format background colors in a stringmathieui
(also add colors to the /info command in MUCs)
2013-06-07Accept NULL bytes in strings to be cut by the poopt moduleFlorent Le Coz
fix #2296
2013-05-16Fix #2307 (commandinput history)mathieui
2013-05-11Actually use it.mathieui
2013-05-11Handle the roster order cache as a real cachemathieui
When an external (or internal) event may cause the order of the cache to be modified, or new elements to be added, schedule it for a rebuild. Otherwise, don’t, and only rebuild it when refreshing (that should improve refresh speed a lot). Also, if the position in the roster is further than the total size of the roster, go back to the top instead of displaying an empty window with “+++”.
2013-05-10Fix #2131 (Input cursor when pasting text)mathieui
2013-05-01Make Alt+backspace work on my freebsdFlorent Le Coz
2013-04-04Add an option to choose between shared and separate input historymathieui
- separate_history, defaults to false
2013-04-04Fix #2255 (search in input history)mathieui
- The input is split in two parts: on the left is what the user enters, on the right is the first match (the right part has a different color) - Start and cancel a search with ^R - Validate a search with enter, then press another time enter to send - CommandInput and MessageInput now inherit from the HistoryInput class and share some methods
2013-03-13Fix #2265mathieui
also: - fix Message.__str__/repr - fix a traceback with user gaming
2013-03-12Implement user gaming (xep-0196)mathieui
- configuration options - theming options - /gaming
2013-03-11Fix #1839 (User mood/activity)mathieui
- Added as always new theming variables: CHAR_ROSTER_MOOD, CHAR_ROSTER_ACTIVITY (a SNOWMAN!) COLOR_ROSTER_MOOD, COLOR_ROSTER_ACTIVITY - Added two new notification types in Theme.INFO_COLORS (mood/activity) - Added new configuration options: display_mood/activity/tune_notifications (those can be set for a specific JID) enable_user_tune/nick/activity/mood - Added /activity and /mood commands, with completions - Moved the old /activity to /last_activity - Details are show in the ContactInfoWin if there is room, or with "i" on a contact in the roster.
2013-03-11Implement XEP-0118 (Fix #1840)mathieui
- Add new theming options - Show the tune in the roster (both in contact line and infowin) - add an option to show tunes as info messages
2013-03-10Fix #2122 (coloration of long messages)mathieui
- Add a “prepend” attribute to the Line tuple I’m not sure of the impact of this on performance (we parse the message yet another time)
2013-03-06Add a CHAR_NEW_TEXT_SEPARATOR theming optionmathieui
2013-03-04Add a show_s2s_errors config option (cf #2182)mathieui
2013-03-03Fix #2182 (show s2s errors)mathieui
- Add the theming options COLOR_ROSTER_ERROR, CHAR_ROSTER_ERRROR, and CHAR_ROSTER_ASKED
2013-02-13Add an indicator of the number of participantsmathieui
(like in weechat)
2013-02-03Fix the folding of contacts in multiple groupsmathieui
(add a defaultdict to keep the folded state in each group)
2013-02-03Add a key (Alt+d) de delete the next word in the input.Florent Le Coz
2013-02-03Remove some useless keys, and change the keys to scroll the info win.Florent Le Coz
M-d and M-c become M-D and M-C
2013-01-29scroll_to_separator now scrolls to the top if there’s no separator.Florent Le Coz
2013-01-29Makes next_hl and prev_hl work after a scroll_to_separator.Florent Le Coz
This makes it easy to review all the highlights after the separator was placed, using M-h, M-n, M-n, M-n… We just add a counter of highlights which is incremented each time there’s an hl, and set to zero when we reset the separator. We use that counter to set hl_pos when we scroll to the separator.
2013-01-26Implement XEP 296 for locking resource in conversations.Florent Le Coz
With a few specific behaviours: When manually opening a conversation with a bare jid, we open a normal conversation that follows the XEP (locked and unlocked accordingly). If the user manually opens a conversation with a fulljid (by selecting a specific resource in the roster, or by specifying a fulljid to the /message command), we open a special tab that doesn’t follow the XEP (it is always locked to the same resource, and cannot be unlocked). When a message is received, unless a special tab has been manually opened by the other with that specific resource, we always send the messages to a uniq normal tab, unlocking or locking it according to the XEP. This means that only one tab can be opened with a given contact, unless the user specifically chooses to open a special tab for a specific resource. fixes #2159
2013-01-23Don’t rebuild the lines on resize when the width has not changedmathieui
- because it is an heavy operation, and it is useless, since the lines only change when the width changes.
2013-01-21Break the ugly roster refresh loop into twomathieui
- The code is more understandable - The number of iterations may have slightly increased - Less things are done inside the lock, so the overall experience should be smoother
2013-01-11Improve the xml tabmathieui
fix refresh bugs, display the scrolling status, add an info bar, add the global info win