History log of /haiku/src/kits/storage/mime/SupportingApps.cpp
Revision Date Author Comments
# cdf3559b 26-Jan-2024 Augustin Cavalier <waddlesplash@gmail.com>

Storage Kit: Do case conversion in SupportingApps::{Get,Set}SupportedTypes.

We already convert everything to lowercase in BuildSupportingAppsTable(),
so we should do the same here.

Fixes #18752 (again.)


# 89fcf815 26-Jan-2024 Augustin Cavalier <waddlesplash@gmail.com>

Storage Kit: Source clean up to SupportingApps.

Remove extraneous comments, early-return on error (and thus de-indent.)
No functional change intended.


# 5fcf71f5 14-May-2021 X512 <danger_mail@list.ru>

Remove unneeded iostream includes

It cause adding new entry to executable init array for each translation unit.

Change-Id: I1e2d7946da03c001de7721948bc9af8188e8b317
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3981
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 67d9a9cb 26-Jul-2015 Adrien Destugues <pulkomandy@gmail.com>

PVS 104: duplicate if check.


# b94857b3 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 9cda9c99 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move MIME DB code back from registrar to src/kits/storage/mime

* Together with database_{access,support}.cpp it is built into a static
library.
* Add new interfaces MimeSniffer and Database::NotificationListener for
plugging in registrar specific functionality (the sniffer add-on
support and the notification mechanism).


# f82c11c0 11-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

bonefish+mmlr:
* Move most of MIME database support out of libbe and into registrar
* Use the (async) MessageDeliverer instead of a synchronous SendMessage in _SendMonitorUpdate

This fixes a deadlock when the message port of a MIME database watching
application gets full as documented in bug #1311.

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


# 373d946f 30-May-2006 Axel Dörfler <axeld@pinc-software.de>

* create_app_meta_mime() now preserves the case when installing the
MIME type.
* We now write the META:TYPE attribute that contains the type with
preserved case (as in BeOS). We even currently check this whenever
a type is opened, but that can be removed later, again.
* BMimeType::GetSupportingApps() was broken for applications that
only support the super type.
* Also BMimeType::GetSupportingApps() preserves the case of the
signatures.
* Why on earth would we want to preserve the case of case insensitive
MIME types? Simple, this let's you query for those apps using case
sensitive queries, as Tracker uses for its "open with" functionality.
Strangely enough, that one still doesn't work, even though the query
predicate is now correct.


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


# bf5e1167 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved BMimeType::GetSupportingApps(): no longer uses the provided message to
send the request, and it now checks if the object is valid.
* Fixed building supporting apps table: now all types are converted to lower case,
so that it works reliable now. This fixes bug #278.
* Minor cleanup.


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


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

CreateAppMetaMimeThread::DoMimeUpdate() now also updates the supported types
of an application as well as the their icons.


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


# 4e722de3 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Tidied up a couple of minor oversights.


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


# 9a17c3cf 23-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Dealt with the *_LENGTH+1 issue: Removed all "+1"s in buffer allocations and adjusted checks etc.


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


# e3a2f206 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added SetSupportedTypes() test
+ Modified BMimeType::SetSupportedTypes functionality so it keeps track of
stranded types (i.e. previously supported types that have not had the now
unsupporting app signature removed from their supporting apps list yet due
to a false fullSync parameter) over consecutive SetSupportedTypes(...,
false) calls and updates all appropriate stranded types on the next
SetSupportedTypes(..., true) call.
+ Added fullSync parameter to BMimeType::DeleteSupportedTypes
+ Made BMimeType::Delete() do a DeleteSupportedTypes(..., true) call to
properly update the supporting apps lists when a mime type is deleted.
+ Added initial BMimeType::Get/SetSnifferRule
+ Updated BMimeType::CheckSnifferRule() to return B_BAD_VALUE when passed
a NULL rule string.
+ Brought CheckSnifferRule() tests up to date
+ Added lots of Mime::Database doxygen
+ Added any missing mime monitor notifications in Mime::Database
+ Possibly made some other changes as well... :-)


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


# f8cada89 30-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed iteration through message field entries in SetSupportedTypes().


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


# ee0cf101 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Handles supporting application management. This is an
initial, theoretically fully functional implementation.


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


# 67d9a9cb16eb058ffa1501ba4bf6d117fbf3284a 26-Jul-2015 Adrien Destugues <pulkomandy@gmail.com>

PVS 104: duplicate if check.


# b94857b322093c296230a18d47f6a98a2896b062 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 9cda9c9905397675aec87ebc6bc9287df3ca2264 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move MIME DB code back from registrar to src/kits/storage/mime

* Together with database_{access,support}.cpp it is built into a static
library.
* Add new interfaces MimeSniffer and Database::NotificationListener for
plugging in registrar specific functionality (the sniffer add-on
support and the notification mechanism).


# f82c11c0793269f483e03fc6f1a3a93aa1d092f0 11-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

bonefish+mmlr:
* Move most of MIME database support out of libbe and into registrar
* Use the (async) MessageDeliverer instead of a synchronous SendMessage in _SendMonitorUpdate

This fixes a deadlock when the message port of a MIME database watching
application gets full as documented in bug #1311.

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


# 373d946f22d66c3466c8e52981c638a2e4e9cb8e 30-May-2006 Axel Dörfler <axeld@pinc-software.de>

* create_app_meta_mime() now preserves the case when installing the
MIME type.
* We now write the META:TYPE attribute that contains the type with
preserved case (as in BeOS). We even currently check this whenever
a type is opened, but that can be removed later, again.
* BMimeType::GetSupportingApps() was broken for applications that
only support the super type.
* Also BMimeType::GetSupportingApps() preserves the case of the
signatures.
* Why on earth would we want to preserve the case of case insensitive
MIME types? Simple, this let's you query for those apps using case
sensitive queries, as Tracker uses for its "open with" functionality.
Strangely enough, that one still doesn't work, even though the query
predicate is now correct.


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


# bf5e11677b845b723aa92bd2029472e58978497f 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved BMimeType::GetSupportingApps(): no longer uses the provided message to
send the request, and it now checks if the object is valid.
* Fixed building supporting apps table: now all types are converted to lower case,
so that it works reliable now. This fixes bug #278.
* Minor cleanup.


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


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

CreateAppMetaMimeThread::DoMimeUpdate() now also updates the supported types
of an application as well as the their icons.


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


# 4e722de38fc59ff620801672c421b27c0f501b9d 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Tidied up a couple of minor oversights.


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


# 9a17c3cfac5f2463b41b3f233975a2904ef10135 23-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Dealt with the *_LENGTH+1 issue: Removed all "+1"s in buffer allocations and adjusted checks etc.


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


# e3a2f2069e5e2614e2a96c24502c91b482ec8e65 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added SetSupportedTypes() test
+ Modified BMimeType::SetSupportedTypes functionality so it keeps track of
stranded types (i.e. previously supported types that have not had the now
unsupporting app signature removed from their supporting apps list yet due
to a false fullSync parameter) over consecutive SetSupportedTypes(...,
false) calls and updates all appropriate stranded types on the next
SetSupportedTypes(..., true) call.
+ Added fullSync parameter to BMimeType::DeleteSupportedTypes
+ Made BMimeType::Delete() do a DeleteSupportedTypes(..., true) call to
properly update the supporting apps lists when a mime type is deleted.
+ Added initial BMimeType::Get/SetSnifferRule
+ Updated BMimeType::CheckSnifferRule() to return B_BAD_VALUE when passed
a NULL rule string.
+ Brought CheckSnifferRule() tests up to date
+ Added lots of Mime::Database doxygen
+ Added any missing mime monitor notifications in Mime::Database
+ Possibly made some other changes as well... :-)


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


# f8cada890c9c0f63711ca8ba318aa57651da5f80 30-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed iteration through message field entries in SetSupportedTypes().


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


# ee0cf101849bcb32068a5666a192b48735d98829 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Handles supporting application management. This is an
initial, theoretically fully functional implementation.


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