History log of /haiku/src/preferences/locale/LanguageListView.h
Revision Date Author Comments
# f6102c6f 24-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Improve drag'n'drop in Locale preflet:
* following a hint by Stephan: implement drawing of a drop target indicator,
a global one (bounds) for the available languages and an individual drop target
indicator ("between" the items) for the preferred languages
* fix drag'n'drop within preferred languages listview
* finish support for manipulating multiple items in preferred languages listview


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


# ed327030 21-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix drawing artefacts in Locale prefs (and IMHO improve the look):
* separate LanguageListItemWithFlag from LanguageListItem
* draw the flag in front of the text instead of at wherever the right bounds happen to
be, fixing the drawing artefacts when scrolling
* size the flag to match the size of the list item, which looks much better when
using a largish default font
* use StringItem::BaselineOffset() instead of manually computed (and wrong) offset
when drawing the text


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


# e32a379a 21-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: match indentation level with styleguide.

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


# 04e916cc 25-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Override Update() so we can return an item width that includes our flag.



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


# 6fd2f4a0 23-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

One more monster commit (sorry ...) concerning the Locale Kit:
* extracted new class BFormattingConventions from BCountry, which
manages the formatting conventions from a given locale and
allows to get/set the four different date/time formats supported
by ICU-locales as well as number and monetary formats
* overhauled the Locale preflet:
+ drop editing features for all formats, since I don't think
they do not make much sense to have in a prefs GUI - being
able to select from the existing locales should be good
enough. Please note that you can still change the formats
programmatically in an application.
+ renamed the 'Countries' tab to 'Formatting'
+ the locale formatting conventions list in the 'Formatting'
tab is now hierarchical for easier access (less scrolling)
+ fixed functionality of 'Revert' and 'Defaults' buttons
+ added support for using the month/day-names of your preferred
language during date formatting
* adjusted BLocale to ask BFormattingConventions for the current
formats when formatting dates and times and to offer 4
different format styles (full, long, medium and short).
* adjust all classes formatting dates/times to pick the
appropriate format style
* BLocaleRoster no longer directly archives/unarchives the
individual formatting conventions but delegates that to
BFormattingConventions


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


# 96eaa02e 07-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Changed BLocaleRoster::GetLanguage() to a signature that makes more sense,
and looks more like the rest of the API.
* Also, it will now return an appropriate error code if the language couldn't
be allocated (anything else than B_OK is an improvement :-)).
* Several changes in BLanguage:
- GetName() now gets a BString reference, also
- it now returns the name in its own language, ie. for German this would
always be "deutsch", no matter the current language settings, and finally,
- it now empties the string it gets before adding the name.
- added GetTranslatedName() that behaves like the previous version.
- added const where it made sense (ie. almost everywhere).
- Code() now returns the code of the language only.
- ID() now returns the full ID of this language, ie. including country,
variant, and keywords if any.
- added Country(), and Variant().
- renamed IsCountry() to IsCountrySpecific().
- added IsVariant().
* Cleaned up Language.h, minor cleanup in LocaleRoster.cpp.
* Removed the whole move item logic from LanguageListView; while this was not
only spaghetti code, it doesn't make much sense in the first place.
* Instead of removing stuff from the left, and even worse, moving all countries
for a language even if only one had been dragged, we now only mark the items
that are already in the preferred list, and only those.
* Fixed various mixups of FullList*() vs. *() methods that could lead to things
like bug #5896.
* Pressing the delete key in the preferred list view will now remove the
language.
* Moved LocaleWindow specific message constants to LocaleWindow.cpp; Locale.h
is supposed to contain application wide constants.
* The drop logic is now in LocaleWindow.
* We now make sure that each base language can only be in the list once.
* Lots of cleanup, even though I mostly replaced spaghettie code with different
looking spaghettie code - still, I think things have slightly improved.


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


# 533d9a5f 02-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed a ton of minor coding style violations, no functional change intended.


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


# 68a1479c 30-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #5788 by overhauling the Locale preflet a bit:
* InitiateDrag() now makes sure that either a number of top-level items
or a group of subitems sharing the parent is being dragged - anything
else doesn't really make sense and results in mayhem and/or crashes
* LocaleWindow now tries harder to keep the language listview sorted
* when moving around items between the two listviews, they are no longer
copied (and partly leaked), but the same items are now just moved over
* cleanup here and there
This is still somewhat of a mess - I recommend splitting the two listviews at least (as they actually behave differently) - maybe it would be better to pick the available languages from a popup-menu instead of keeping them in a listview?

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


# e590fb24 26-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

* style adjustments
* commented out a useless block of code (and added a respective TODO)


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


# 1d26f9e1 26-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #5755: Locale preflet crashing when dragging languages around
* The flag bitmaps being part of list items were not treated properly in
the language item's copy constructor (the bitmap pointer was copied, not
the bitmap object itself). As a result, bitmap objects were freed more than
once.
* some cleanup

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


# 0638c3ab 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Add some more icons for better testing
* Use the country name instead of the language name to identify each icon
* Cleanup, fixed copyrights, and some more checks to avoid crashing in case of a missing icon


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


# ffbcecd4 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Add support for flags in BCountry. The flags are stored as HVIF icon resources in liblocale.so.
Test french flag took from http://www.bastisoft.de/misc/flags/ (licence is very permissive), converted to HVIF with Icon O Matic.


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


# 5e7931be 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Separate LanguageListView from LocaleWindow as it was occupying more than half of the file and will grow even more soon.
No functionnal change.


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


# f6102c6fba34f639d328d3480948f21ec76f80c9 24-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Improve drag'n'drop in Locale preflet:
* following a hint by Stephan: implement drawing of a drop target indicator,
a global one (bounds) for the available languages and an individual drop target
indicator ("between" the items) for the preferred languages
* fix drag'n'drop within preferred languages listview
* finish support for manipulating multiple items in preferred languages listview


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


# ed3270303877d293339908b02647b374418d513e 21-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix drawing artefacts in Locale prefs (and IMHO improve the look):
* separate LanguageListItemWithFlag from LanguageListItem
* draw the flag in front of the text instead of at wherever the right bounds happen to
be, fixing the drawing artefacts when scrolling
* size the flag to match the size of the list item, which looks much better when
using a largish default font
* use StringItem::BaselineOffset() instead of manually computed (and wrong) offset
when drawing the text


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


# e32a379a72d866a1ea3d1b0ab5773a64d1f399d1 21-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: match indentation level with styleguide.

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


# 04e916ccb5b36fd2ce229d5f9155cf793943fc32 25-Oct-2010 Rene Gollent <anevilyak@gmail.com>

Override Update() so we can return an item width that includes our flag.



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


# 6fd2f4a0d14b45a316defe994e9790de062ff3ff 23-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

One more monster commit (sorry ...) concerning the Locale Kit:
* extracted new class BFormattingConventions from BCountry, which
manages the formatting conventions from a given locale and
allows to get/set the four different date/time formats supported
by ICU-locales as well as number and monetary formats
* overhauled the Locale preflet:
+ drop editing features for all formats, since I don't think
they do not make much sense to have in a prefs GUI - being
able to select from the existing locales should be good
enough. Please note that you can still change the formats
programmatically in an application.
+ renamed the 'Countries' tab to 'Formatting'
+ the locale formatting conventions list in the 'Formatting'
tab is now hierarchical for easier access (less scrolling)
+ fixed functionality of 'Revert' and 'Defaults' buttons
+ added support for using the month/day-names of your preferred
language during date formatting
* adjusted BLocale to ask BFormattingConventions for the current
formats when formatting dates and times and to offer 4
different format styles (full, long, medium and short).
* adjust all classes formatting dates/times to pick the
appropriate format style
* BLocaleRoster no longer directly archives/unarchives the
individual formatting conventions but delegates that to
BFormattingConventions


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


# 96eaa02e8f3976114f4db607ea41ebe158916823 07-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Changed BLocaleRoster::GetLanguage() to a signature that makes more sense,
and looks more like the rest of the API.
* Also, it will now return an appropriate error code if the language couldn't
be allocated (anything else than B_OK is an improvement :-)).
* Several changes in BLanguage:
- GetName() now gets a BString reference, also
- it now returns the name in its own language, ie. for German this would
always be "deutsch", no matter the current language settings, and finally,
- it now empties the string it gets before adding the name.
- added GetTranslatedName() that behaves like the previous version.
- added const where it made sense (ie. almost everywhere).
- Code() now returns the code of the language only.
- ID() now returns the full ID of this language, ie. including country,
variant, and keywords if any.
- added Country(), and Variant().
- renamed IsCountry() to IsCountrySpecific().
- added IsVariant().
* Cleaned up Language.h, minor cleanup in LocaleRoster.cpp.
* Removed the whole move item logic from LanguageListView; while this was not
only spaghetti code, it doesn't make much sense in the first place.
* Instead of removing stuff from the left, and even worse, moving all countries
for a language even if only one had been dragged, we now only mark the items
that are already in the preferred list, and only those.
* Fixed various mixups of FullList*() vs. *() methods that could lead to things
like bug #5896.
* Pressing the delete key in the preferred list view will now remove the
language.
* Moved LocaleWindow specific message constants to LocaleWindow.cpp; Locale.h
is supposed to contain application wide constants.
* The drop logic is now in LocaleWindow.
* We now make sure that each base language can only be in the list once.
* Lots of cleanup, even though I mostly replaced spaghettie code with different
looking spaghettie code - still, I think things have slightly improved.


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


# 533d9a5f85f4e917dda6c2e1bbd5b0f85a275dbb 02-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed a ton of minor coding style violations, no functional change intended.


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


# 68a1479cc677c39d5bad325baf4429c2e932901e 30-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #5788 by overhauling the Locale preflet a bit:
* InitiateDrag() now makes sure that either a number of top-level items
or a group of subitems sharing the parent is being dragged - anything
else doesn't really make sense and results in mayhem and/or crashes
* LocaleWindow now tries harder to keep the language listview sorted
* when moving around items between the two listviews, they are no longer
copied (and partly leaked), but the same items are now just moved over
* cleanup here and there
This is still somewhat of a mess - I recommend splitting the two listviews at least (as they actually behave differently) - maybe it would be better to pick the available languages from a popup-menu instead of keeping them in a listview?

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


# e590fb24c657e81bf9388c0303dceaad02c9de51 26-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

* style adjustments
* commented out a useless block of code (and added a respective TODO)


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


# 1d26f9e11c6afa0d24f8fcc6360f23fcf96da747 26-Apr-2010 Oliver Tappe <zooey@hirschkaefer.de>

Fix #5755: Locale preflet crashing when dragging languages around
* The flag bitmaps being part of list items were not treated properly in
the language item's copy constructor (the bitmap pointer was copied, not
the bitmap object itself). As a result, bitmap objects were freed more than
once.
* some cleanup

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


# 0638c3ab4cb3b8859c8fd6f0010ecc2ac6f8478f 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Add some more icons for better testing
* Use the country name instead of the language name to identify each icon
* Cleanup, fixed copyrights, and some more checks to avoid crashing in case of a missing icon


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


# ffbcecd4894c27f62075a6e70ff3bae0caa51356 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Add support for flags in BCountry. The flags are stored as HVIF icon resources in liblocale.so.
Test french flag took from http://www.bastisoft.de/misc/flags/ (licence is very permissive), converted to HVIF with Icon O Matic.


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


# 5e7931beaaec3143a0cb1e7c815fd931c27a8041 15-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Separate LanguageListView from LocaleWindow as it was occupying more than half of the file and will grow even more soon.
No functionnal change.


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