History log of /haiku/src/apps/terminal/PrefHandler.cpp
Revision Date Author Comments
# de2ada1f 09-Jul-2021 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Terminal: load themes from data and settings folders.

* Uses the same format as the Terminal settings file
* Adds an additional key, "Theme name", to settings for themes,
which needs to be present for a theme to be loaded, else it
will be skipped
* Loads themes from Terminal/Themes in the data and settings
directories, searching data first, then settings second,
allowing a theme to be tweaked by putting a copy in a
settings folder

Change-Id: I8cadf98151459c1ae6098c38481b16eb3f2cf952


# 8fab9f8a 26-Aug-2022 Augustin Cavalier <waddlesplash@gmail.com>

Terminal: Assign default font size from system font size.

We already used the system font to set the family and style,
so do the same for the size as well.

Fixes #16176.


# 8840b3db 14-Aug-2019 Simon South <simon@simonsouth.net>

Terminal: Allow use of Option as Meta key

Add a configuration setting that allows the left Option key to be used as a
Meta key, and add support for the Escape sequences that control the Meta key's
behaviour.

TermWindow now maintains a copy, shared by all its component TermViews, of the
current key map, and updates this copy automatically when notified by the Input
Server a new key map has been loaded.

The Meta key was an extra modifier key present on early UNIX workstations that
provided access to the "extended" portion of the ASCII character set. Although
it has vanished from modern keyboards certain UNIX software still relies on the
key, most notably GNU Emacs and the GNU readline library, the latter of which
is used by bash and a wide variety of other software that reads input from a
terminal. (Python's interactive mode uses readline, for instance.)

With this patch applied and the new setting enabled, the left Option key can be
used to access additional editing and navigation features at the command line.
It also makes usable the port of GNU Emacs currently available from HaikuDepot.

Fixes #15294.

Change-Id: I150b640b7b18384d56ab2fb017bf16ce8bdbdd78
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1727
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 2a67595f 21-Feb-2015 JackBurton <stefano.ceccherini@gmail.com>

If a monospace font is not available, look for a full-and-half-fixed
font.
The minimal haiku image does not yet include a monospace font. In that
case, be_fixed_font points to Bitstream Charter, which is a proportional
font.
Terminal isn't happy with that, so we try harder and we look if a
full-and-half-fixed font is installed (which should be safe, since
we always include VL-Gothic. Fixes #11764 .


# dbf8c834 19-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Terminal: added basic conditional title patterns.

* You can now insert arbitrary text only if the following or previous
placeholder does not resolve to an empty value using the %<, %> and
%- placeholders.
* Additionally, any non-alpha numeric character between % and the
placeholder character will only be displayed if the placeholder does
not resolve to an empty value, too.
* All of this allows you to get rid of the extra space between
"Terminal" and ":" before the current path -- which is now the
default.


# 0d523bdd 23-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

[Terminal] add encoding to tab title if it differs from default

Fixes #11642.


# defb8292 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal Prefs: replace "OK" with "Defaults"

Again, this is the more standard way to do things in Haiku.


# 53953e3e 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Remove useless font style/family settings defaults

No need for PREF_HALF_FONT_FAMILY/_STYLE defaults to be defined explicitly,
these entries will be filled with corresponding params of the current system
fixed font if they are not available from the settings file.

Fixes #9531.


# ef601541 15-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Handle font style on loading default Terminal preferences

Fix the PrefHandler::_ConfirmFont to take into account not only the
font family but the font style too. This improves the popup menu
checkmark synchronization in the Preferences View. This problem can
be reproduced on very first start of application without previously
stored Terminal settings. Default family/style for this case is
currently defined as "Courier 19BT"/"Regular" but default fixed
font has correspondently "DejaVu Sans Mono"/"Book". Previous version
of _ConfirmFont() process only the family and left the style in default
"Regular" one. So opening Preferences View and attempting to set the
checkmark on corresponding family/style menuitem was usually failed.


# 5b41331f 09-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

CodeStyle fixes, some refactoring and cleanup

* Clear some codestyle issues catched by checker script;
* Rename RestartDebugCapture to more consistent StartStopDebugCapture;
* Updated Copyrights and authors lists, some occurences of the raw MIT
licence text replaced with "under the terms of MIT licence" reference;
* Fixes for x86_64 build.

This is cumulative cleanup commit for series of Terminal refactoring
changes I have introduced last time. No significant functional changes.


# bbfd23ab 09-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Use native bold style drawing (+ switchable emulation)

Use native bold font for rendering characters with corresponding
attribute set. Possibility for switching to R5-like bold characters
emulation is also implemented. This one uses uses the left-down shadow
in B_OP_BLEND drawing mode instead of the rigth-down one as previously.


# 6d30b376 05-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Support for underline and ibeam terminal cursor styles

* Add support for underline and i-beam cursor shapes. No corresponding
UI configuration in preferences view ATM because preferences are waiting
for refactoring and we need some eggs for this Easters. ;-)
* Add handling of VT520/xterm specific DECSCUSR control sequences
allowing applications to modify the style and blinking state of the
cursor. May be utilized, for example, by console version of vim;
* Implement cursor blinking/hiding on DECSET/DECRST commands.


# 68ea9ce5 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

OSC and color management improoved

* Global kTermColorTable replaced with it's private copy for every
TermView instance. This allows to modify colors table for every view
separately;
* Set of ANSI normal/bright color entries added into preferences;
* Default color table generated dynamicaly using ANSI colors
preferences. 6x6x6 color cubes and grayscale ramp are generated in
xterm colors model;
* Improoved support of Operating System Command control sequences;
* Support for X11 rgb.txt compatible color names. Corresponding entries
are stored in hashed form in application resource and loaded only on
demand.


# 02f3baa0 26-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Cleanup:Remove unused pref entries and fix typo

* PREF_SHELL is not used anymore, corresponding entry in /etc/passwd
should be used instead;
* PREF_GUI_LANGUAGE is not actual anymore - we have system-wide
UI localization support;
* Fix typo in the name of MSG_SET_TERMNAL_TITLE constant.


# a5b3caa2 12-Feb-2013 Siarzhuk Zharski <zharik@gmx.li>

%T placeholder (localized Terminal name) for title mask

* %T placeholder added into the set, available for customizing main
Terminal window title. It should be typically replaced by the
application name localized for the currect system locale.
* Use B_TRANSLATE instead of B_TRANSLATE_SYSTEM_NAME for the first
menu entry in the main TermWindow menu. The meaning of "Terminal"
term in this menu is the "Terminal session" but not the "Terminal
Application" so using separate catkeys entry for this menu item
avoids this inconsistency in Terminal UI localization;
* Fixes #7586


# 8ccd1d03 07-Dec-2012 John Scipione <jscipione@gmail.com>

Make the default cursor fore color white


# cfd9c96d 04-Dec-2012 John Scipione <jscipione@gmail.com>

Style fix: compare to 0 in strcmp() explicitly.


# 587cd228 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Fixed regression: Terminal cursor color is back to black.


# 12290528 05-Nov-2012 Jonathan Schleifer <js@webkeks.org>

Terminal: Make the cursor color configurable.

Signed-off-by: Adrien Destugues - PulkoMandy <pulkomandy@pulkomandy.tk>


# 4e3d346e 04-Nov-2012 Jonathan Schleifer <js@webkeks.org>

Terminal: Make cursor blinking an option.

Signed-off-by: Rene Gollent <anevilyak@gmail.com>


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# f3782185 13-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

Refactoring of 8-bit encodings support.
* Fixed issue introduced in hrev38139: restoring from the line
drawing table was hard-coded to UTF8 Ground table. That is wrong:
the table for currently configured encoding must be set back.
Please look on using of _GuessGroundTable() for details;

* Fixed issue introduced in hrev34894: the semantic of convert_xx_utf8
functions requires the destination length to be set equal to the
target buffer size. Pre-hrev34894 usage of "homebrew" conversion
functions was a bit different - destination length was set to 0.
This made any converstions of input data useless and produce no
visual results;

* Private list of supported encodings (Encoding.cpp) was replaced by
using BPrivate::BCharacterSetRoster functionality. That allows to
use centralized info about encodings in unified with other
applications (Mail & StyledEdit for example) way. Most of currently
enumerated in UTF8.h encodings now available in Terminal.
Note that UCS-2 and UTF-16 are temporary (???) excluded from the
list of encodings supported by Terminal.

* The B_UTF16_CONVERSION was added in system-wide UTF8.h declarations.
This character set is available for enumerating by BCharacterSetRoster
but not listed in public API. Looks like it was just missed;

* Special note about "Text Encoding" entry in Preference File:
So known "shortname" of encoding was used in the preferences file.
For details look on the encodings list in previous version of
Encoding.cpp. As result of migrating to BCharacterSet-provided
resources this list was deleted and is not available anymore.
Instead of it the IANA name of the character encoding targeted
to be used for this purposes. Frankly speaking this part looks
like not working at the moment. The value of text encoding is
hardcoded to "UTF-8" now and is not affected by any operations
in Terminal menu. Note that "shortname" for default encoding
was "UTF8" but the saved value is "UTF-8" - and they are looking
not dependent at all. So this change should not introduce any
kind of backward incompatibility.


# 0961433d 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Patch from diver (bug #7329) with cleanup by myself: remove excessive localization


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02ee32bb 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39473 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 116fb657 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused support for saving/loading binary settings files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffad8506 28-Oct-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove the setting for a fixed cursor color. Instead, the cursor now inverts the colors of the char below it.
* This allows getting a cursor well visible both on black and white backgrouds.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6491fb59 25-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Terminal will issue an alert, if there are active processes and the
user closes the window (doesn't work if the user closes only a tab, yet).
Active by default but can be disabled by a checkbox.
- The preference window needs to be reworked.
- Wording of the alert and the option can be improved (I accept advices).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb0cbb0 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c514d3e 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8989d8a5 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the Terminal application. Thanks a lot.
Closes ticket #5850.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36640 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a2cbc6c 26-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved terminal preferences to its own directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35317 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 411d718e 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a method to PrefHandler to save the default settings, and used it
in TermWindow and PrefWindow. Added patch by adparadox which implements
menuitem and shortcut to close the active tab (slightly modified by me).
I went with COMMAND-SHIFT-W instead of COMMAND-W.
This fixes bug #3898.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34176 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92d7fb19 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed "Coding" to "Encoding" and adjusted other files accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fba4e002 07-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also set a default style in the preferences. Mark the menuitem with the
default family/style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4eae2c1 21-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more renaming


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7014c8a3 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9b8c538 21-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

increase history size to a useful value


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22030 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69adf535 28-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView and the classes used by it now don't know about PrefHandler
anymore, but have methods to set the needed options. Various cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc25fe81 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ec75bbe 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef502a7e 20-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed useless context menu.
* Removed useless mouse button preferences.
* The secondary and tertiary buttons now both paste the selection (or clipboard data)
into the Terminal, this fixes bug #1159.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae99c860 13-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Should now play much nicer with broken settings files. Fixes bug #165.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30da2fcb 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the terminal a bit more robust against broken settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 723de034 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Removed "full font" vs. "half font" setting (in the GUI only for now) - this
should better be handled by the app_server (ie. via font overlays).
* Fixed compilation under Dano.
* Fixed some broken headers.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14861 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11516cee 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The stored (and default) font settings are now tested against the fonts installed
in the system; if a font chosen could not be found, a fallback font (be_fixed_font)
is used.
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14603 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02cf6d00 29-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Since we now only have a single file to save, we no longer create a sub-directory
"HaikuTerminal" in the user settings directory, but just a file called either
"Terminal" (for the Haiku build) or "HaikuTerminal" (for the R5 build).
Last commit also made sure the settings target path existed - this is now no
longer necessary, and thus, disabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13856 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 662f5284 29-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Removed all global preferences path constants.
PrefHandler now exports a static method GetDefaultPath() which gets the
path to the default settings file (using find_directory(), of course).
Disabled locale support; should be easy to reenable when needed again, though.
Made all the PrefHandler getters a lot more robust (could easily crash when asking
for an unknown item).
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13853 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4b3b04f 20-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

Appearantly, there is a race condition when setting preferences, this fixes (one of) the crash(es?), but we should really fix the race condition, but I have no energy to get to know the code more. I'm thinking the PrefHandler class needs locking, since it is used everywhere, it is probably best to put the locking directly into the PrefHandler methods.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13789 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a67595f1a4e2034ba82008bdadd8585da5a5a7a 21-Feb-2015 JackBurton <stefano.ceccherini@gmail.com>

If a monospace font is not available, look for a full-and-half-fixed
font.
The minimal haiku image does not yet include a monospace font. In that
case, be_fixed_font points to Bitstream Charter, which is a proportional
font.
Terminal isn't happy with that, so we try harder and we look if a
full-and-half-fixed font is installed (which should be safe, since
we always include VL-Gothic. Fixes #11764 .


# dbf8c834a25bf2e138e2163ff110d62b663c9736 19-Feb-2015 Axel Dörfler <axeld@pinc-software.de>

Terminal: added basic conditional title patterns.

* You can now insert arbitrary text only if the following or previous
placeholder does not resolve to an empty value using the %<, %> and
%- placeholders.
* Additionally, any non-alpha numeric character between % and the
placeholder character will only be displayed if the placeholder does
not resolve to an empty value, too.
* All of this allows you to get rid of the extra space between
"Terminal" and ":" before the current path -- which is now the
default.


# 0d523bddbcc53916bad956dbc52f4d6e6f09b7cf 23-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

[Terminal] add encoding to tab title if it differs from default

Fixes #11642.


# defb82922a0f1e2872aae848b8c565fd26b2eb90 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Terminal Prefs: replace "OK" with "Defaults"

Again, this is the more standard way to do things in Haiku.


# 53953e3e689f499392343003656acaf77e67972d 16-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Remove useless font style/family settings defaults

No need for PREF_HALF_FONT_FAMILY/_STYLE defaults to be defined explicitly,
these entries will be filled with corresponding params of the current system
fixed font if they are not available from the settings file.

Fixes #9531.


# ef601541236eb7e08aaaf08ce3ecec96b4459788 15-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Handle font style on loading default Terminal preferences

Fix the PrefHandler::_ConfirmFont to take into account not only the
font family but the font style too. This improves the popup menu
checkmark synchronization in the Preferences View. This problem can
be reproduced on very first start of application without previously
stored Terminal settings. Default family/style for this case is
currently defined as "Courier 19BT"/"Regular" but default fixed
font has correspondently "DejaVu Sans Mono"/"Book". Previous version
of _ConfirmFont() process only the family and left the style in default
"Regular" one. So opening Preferences View and attempting to set the
checkmark on corresponding family/style menuitem was usually failed.


# 5b41331f1100c78541d87b7ad5a15d5652acb079 09-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

CodeStyle fixes, some refactoring and cleanup

* Clear some codestyle issues catched by checker script;
* Rename RestartDebugCapture to more consistent StartStopDebugCapture;
* Updated Copyrights and authors lists, some occurences of the raw MIT
licence text replaced with "under the terms of MIT licence" reference;
* Fixes for x86_64 build.

This is cumulative cleanup commit for series of Terminal refactoring
changes I have introduced last time. No significant functional changes.


# bbfd23abd5e9cddd8498376d21ac53a96d5c4cb7 09-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Use native bold style drawing (+ switchable emulation)

Use native bold font for rendering characters with corresponding
attribute set. Possibility for switching to R5-like bold characters
emulation is also implemented. This one uses uses the left-down shadow
in B_OP_BLEND drawing mode instead of the rigth-down one as previously.


# 6d30b376e908fe678fc35c79d58314367f3d44fe 05-Mar-2013 Siarzhuk Zharski <zharik@gmx.li>

Support for underline and ibeam terminal cursor styles

* Add support for underline and i-beam cursor shapes. No corresponding
UI configuration in preferences view ATM because preferences are waiting
for refactoring and we need some eggs for this Easters. ;-)
* Add handling of VT520/xterm specific DECSCUSR control sequences
allowing applications to modify the style and blinking state of the
cursor. May be utilized, for example, by console version of vim;
* Implement cursor blinking/hiding on DECSET/DECRST commands.


# 68ea9ce5bbed50e08bf08a151477bbb0e1ac1227 27-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

OSC and color management improoved

* Global kTermColorTable replaced with it's private copy for every
TermView instance. This allows to modify colors table for every view
separately;
* Set of ANSI normal/bright color entries added into preferences;
* Default color table generated dynamicaly using ANSI colors
preferences. 6x6x6 color cubes and grayscale ramp are generated in
xterm colors model;
* Improoved support of Operating System Command control sequences;
* Support for X11 rgb.txt compatible color names. Corresponding entries
are stored in hashed form in application resource and loaded only on
demand.


# 02f3baa09d11547e1be4a950d279dd55371a3fcc 26-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Cleanup:Remove unused pref entries and fix typo

* PREF_SHELL is not used anymore, corresponding entry in /etc/passwd
should be used instead;
* PREF_GUI_LANGUAGE is not actual anymore - we have system-wide
UI localization support;
* Fix typo in the name of MSG_SET_TERMNAL_TITLE constant.


# a5b3caa295edb4064e3a560bced06ec27770c498 12-Feb-2013 Siarzhuk Zharski <zharik@gmx.li>

%T placeholder (localized Terminal name) for title mask

* %T placeholder added into the set, available for customizing main
Terminal window title. It should be typically replaced by the
application name localized for the currect system locale.
* Use B_TRANSLATE instead of B_TRANSLATE_SYSTEM_NAME for the first
menu entry in the main TermWindow menu. The meaning of "Terminal"
term in this menu is the "Terminal session" but not the "Terminal
Application" so using separate catkeys entry for this menu item
avoids this inconsistency in Terminal UI localization;
* Fixes #7586


# 8ccd1d0386e635ed0ef5aaf17bb0f3d237aa4bfb 07-Dec-2012 John Scipione <jscipione@gmail.com>

Make the default cursor fore color white


# cfd9c96db5b111667bc085b854aebcdd346c8f37 04-Dec-2012 John Scipione <jscipione@gmail.com>

Style fix: compare to 0 in strcmp() explicitly.


# 587cd228badd8a28b03c758be95bc3098fcd3ed3 30-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Fixed regression: Terminal cursor color is back to black.


# 122905281dd29a0ee9ef35dd280a33aab21e6c3d 05-Nov-2012 Jonathan Schleifer <js@webkeks.org>

Terminal: Make the cursor color configurable.

Signed-off-by: Adrien Destugues - PulkoMandy <pulkomandy@pulkomandy.tk>


# 4e3d346e9177b9a6ad3d84c28a39c08898e0a6ec 04-Nov-2012 Jonathan Schleifer <js@webkeks.org>

Terminal: Make cursor blinking an option.

Signed-off-by: Rene Gollent <anevilyak@gmail.com>


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# f37821851ef7dc4da35cd040329f11ca8cdd9826 13-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

Refactoring of 8-bit encodings support.
* Fixed issue introduced in hrev38139: restoring from the line
drawing table was hard-coded to UTF8 Ground table. That is wrong:
the table for currently configured encoding must be set back.
Please look on using of _GuessGroundTable() for details;

* Fixed issue introduced in hrev34894: the semantic of convert_xx_utf8
functions requires the destination length to be set equal to the
target buffer size. Pre-hrev34894 usage of "homebrew" conversion
functions was a bit different - destination length was set to 0.
This made any converstions of input data useless and produce no
visual results;

* Private list of supported encodings (Encoding.cpp) was replaced by
using BPrivate::BCharacterSetRoster functionality. That allows to
use centralized info about encodings in unified with other
applications (Mail & StyledEdit for example) way. Most of currently
enumerated in UTF8.h encodings now available in Terminal.
Note that UCS-2 and UTF-16 are temporary (???) excluded from the
list of encodings supported by Terminal.

* The B_UTF16_CONVERSION was added in system-wide UTF8.h declarations.
This character set is available for enumerating by BCharacterSetRoster
but not listed in public API. Looks like it was just missed;

* Special note about "Text Encoding" entry in Preference File:
So known "shortname" of encoding was used in the preferences file.
For details look on the encodings list in previous version of
Encoding.cpp. As result of migrating to BCharacterSet-provided
resources this list was deleted and is not available anymore.
Instead of it the IANA name of the character encoding targeted
to be used for this purposes. Frankly speaking this part looks
like not working at the moment. The value of text encoding is
hardcoded to "UTF-8" now and is not affected by any operations
in Terminal menu. Note that "shortname" for default encoding
was "UTF8" but the saved value is "UTF-8" - and they are looking
not dependent at all. So this change should not introduce any
kind of backward incompatibility.


# 0961433d2a75a252e3caa8f63a0be7ac488b0c96 06-Mar-2011 Jérôme Duval <korli@users.berlios.de>

Patch from diver (bug #7329) with cleanup by myself: remove excessive localization


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02ee32bb0d3cc6680c421177bb490dba84230081 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for dynamic tab and window titles:
* Added settings for tab and window titles. Both are strings with optional
placeholders for tab/terminal index, currently active process name and
current directory.
* Added a generic utility class PatternEvaluator that allows to expand this
kind of pattern strings and callback classes
[Tab,Window]TitlePlaceholderMapper that provide the specific expansion for
the tab and window title placeholders.
* TermWindow:
- Separated the notions of session (== tab) and window titles. The tty
clients no longer set the window, but the session title.
- Use the patterns instead of the hard-coded window/tab titles.
- Recompute all titles once a second, so changes of running programs are
reflected.
* The default patterns for tab and window titles are "%1d: %p" (last CWD
component and name of the running process) and "Terminal %i: %t" (Terminal
ID and active tab title). Unfortunately the space on the tabs is seriously
limited, so that the tab title is virtually always truncated. Ideas welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39473 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 116fb657194d2c9ed05755081b51776ad49de5bb 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused support for saving/loading binary settings files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39467 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ffad85060af9d695c5eb0468c91b8a438d42d638 28-Oct-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove the setting for a fixed cursor color. Instead, the cursor now inverts the colors of the char below it.
* This allows getting a cursor well visible both on black and white backgrouds.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39183 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6491fb598a70c8e58c3d205f7d8cf5438927fb20 25-Jul-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Terminal will issue an alert, if there are active processes and the
user closes the window (doesn't work if the user closes only a tab, yet).
Active by default but can be disabled by a checkbox.
- The preference window needs to be reworked.
- Wording of the alert and the option can be improved (I accept advices).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4eb0cbb044cf538f18c0d252934a5bcaa33bfd34 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6c514d3e3bfc9c33f9f4a2edd0b593d734046c8f 06-May-2010 Matt Madia <mattmadia@gmail.com>

Updated to use B_TRANSLATE* macros. relates to #5408.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36675 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8989d8a52e0ca6b551f2a57b51a7f1c77726144b 06-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the Terminal application. Thanks a lot.
Closes ticket #5850.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36640 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a2cbc6c30b29c2ac5a9ff14933373dfcebe5540 26-Jan-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved terminal preferences to its own directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35317 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 411d718eec32ccc3b869866ac015a933945a74a2 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a method to PrefHandler to save the default settings, and used it
in TermWindow and PrefWindow. Added patch by adparadox which implements
menuitem and shortcut to close the active tab (slightly modified by me).
I went with COMMAND-SHIFT-W instead of COMMAND-W.
This fixes bug #3898.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34176 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92d7fb19f14435b56cf3722c2bcf6c8bc5ac1a13 21-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Renamed "Coding" to "Encoding" and adjusted other files accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fba4e002b1a89bb281a266f7b64c1c27db62bc1b 07-Nov-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Also set a default style in the preferences. Mark the menuitem with the
default family/style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c4eae2c1fc5ea7f6cb86552efcb895eee38e8fad 21-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

more renaming


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7014c8a3790cfbd79887ef7092b6c89ad9e548bd 17-Jan-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font
menu filters out variable width ones. For some reason, though, Konatu
Tohaba isn't recognized as fixed. Various other changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23591 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e9b8c538b0781dfd6491931918a65e28e9c528e8 21-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

increase history size to a useful value


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22030 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69adf535c1b4469dc0991c4c9c07f2dea81f18a4 28-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

TermView and the classes used by it now don't know about PrefHandler
anymore, but have methods to set the needed options. Various cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc25fe8173a381f951765f518a85c287e894cd8c 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Got rid of gTermPref by adding some static methods to PrefHandler.
The font size menu wasn't up to date with the current settings. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21630 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ec75bbee658e4c68b82281f0ee833fcfa15e018 04-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Big refactoring. Got rid of some global variables by putting code in
global functions (at least for now), removed useless globals, restyled
the code. Not yet done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef502a7eb33440462ad3219c94d2bb46d1c5183b 20-Apr-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed useless context menu.
* Removed useless mouse button preferences.
* The secondary and tertiary buttons now both paste the selection (or clipboard data)
into the Terminal, this fixes bug #1159.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20772 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae99c86041cb178462a0cc37d55940e1656abfb9 13-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Should now play much nicer with broken settings files. Fixes bug #165.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30da2fcb94e79bc8256c8d972502b8cd24c1c820 27-Feb-2006 Axel Dörfler <axeld@pinc-software.de>

Made the terminal a bit more robust against broken settings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 723de034c64749fadc75bee362171f1127bf00c3 11-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Removed "full font" vs. "half font" setting (in the GUI only for now) - this
should better be handled by the app_server (ie. via font overlays).
* Fixed compilation under Dano.
* Fixed some broken headers.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14861 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11516cee1e6b8b0b972926141cb9c95244488589 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The stored (and default) font settings are now tested against the fonts installed
in the system; if a font chosen could not be found, a fallback font (be_fixed_font)
is used.
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14603 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02cf6d0008666f597478027f25808f3d97cb2149 29-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Since we now only have a single file to save, we no longer create a sub-directory
"HaikuTerminal" in the user settings directory, but just a file called either
"Terminal" (for the Haiku build) or "HaikuTerminal" (for the R5 build).
Last commit also made sure the settings target path existed - this is now no
longer necessary, and thus, disabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13856 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 662f52848a218a0b8a210e4cee58a4b36e9ff226 29-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Removed all global preferences path constants.
PrefHandler now exports a static method GetDefaultPath() which gets the
path to the default settings file (using find_directory(), of course).
Disabled locale support; should be easy to reenable when needed again, though.
Made all the PrefHandler getters a lot more robust (could easily crash when asking
for an unknown item).
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13853 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4b3b04f990ccd2b6f2c6c36dbe48949e33d0da5 20-Jul-2005 Stephan Aßmus <superstippi@gmx.de>

Appearantly, there is a race condition when setting preferences, this fixes (one of) the crash(es?), but we should really fix the race condition, but I have no energy to get to know the code more. I'm thinking the PrefHandler class needs locking, since it is used everywhere, it is probably best to put the locking directly into the PrefHandler methods.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13789 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3dc729f9fbe302c5c45c3ec2518650a260605d7 18-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96