now only system addons are loaded when safemode is true

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8720 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval 2004-08-29 19:34:35 +00:00
parent 6346dac055
commit f907d7292a
3 changed files with 12 additions and 7 deletions

View File

@ -22,9 +22,9 @@
#include "InputServer.h"
AddOnManager::AddOnManager()
:
fLock("add-on manager")
AddOnManager::AddOnManager(bool safeMode)
: fLock("add-on manager"),
fSafeMode(safeMode)
{
}
@ -266,8 +266,11 @@ AddOnManager::RegisterAddOns()
node_ref nref;
BDirectory directory;
BPath path;
for (uint i = 0 ; i < sizeof(directories) / sizeof(directory_which) ; i++)
for (uint j = 0 ; j < sizeof(subDirectories) / sizeof(char[24]) ; j++) {
uint i = 0;
if (fSafeMode) // when safemode, only B_BEOS_ADDONS_DIRECTORY is used
i = 2;
for (i = 0 ; i < sizeof(directories) / sizeof(directory_which) ; i++)
for (uint32 j = 0 ; j < sizeof(subDirectories) / sizeof(char[24]) ; j++) {
if ((find_directory(directories[i], &path) == B_OK)
&& (path.Append(subDirectories[j]) == B_OK)
&& (directory.SetTo(path.Path()) == B_OK)

View File

@ -20,7 +20,7 @@
class AddOnManager {
public:
AddOnManager();
AddOnManager(bool safeMode);
~AddOnManager();
void LoadState();
@ -60,6 +60,8 @@ class AddOnManager {
AddOnMonitorHandler *fHandler;
AddOnMonitor *fAddOnMonitor;
bool fSafeMode;
};
#endif // _ADD_ON_MANAGER_H

View File

@ -109,7 +109,7 @@ InputServer::InputServer(void) : BApplication(INPUTSERVER_SIGNATURE),
InitKeyboardMouseStates();
fAddOnManager = new AddOnManager();
fAddOnManager = new AddOnManager(SafeMode());
fAddOnManager->LoadState();
}