Fleshed out any missing pieces of BRoster::
- ClearRecent{Docs,Folders,Apps} - AddToRecentApps() - {Load,Save}RecentLists() git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1878 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
58b477650f
commit
1bde02ae7b
|
@ -157,6 +157,7 @@ private:
|
||||||
friend status_t _send_to_roster_(BMessage *, BMessage *, bool);
|
friend status_t _send_to_roster_(BMessage *, BMessage *, bool);
|
||||||
friend bool _is_valid_roster_mess_(bool);
|
friend bool _is_valid_roster_mess_(bool);
|
||||||
friend void BPrivate::init_registrar_roster(BMessenger, BMessenger);
|
friend void BPrivate::init_registrar_roster(BMessenger, BMessenger);
|
||||||
|
friend class GetRecentTester;
|
||||||
|
|
||||||
class ArgVector;
|
class ArgVector;
|
||||||
|
|
||||||
|
@ -212,6 +213,8 @@ private:
|
||||||
void ClearRecentDocuments() const;
|
void ClearRecentDocuments() const;
|
||||||
void ClearRecentFolders() const;
|
void ClearRecentFolders() const;
|
||||||
void ClearRecentApps() const;
|
void ClearRecentApps() const;
|
||||||
|
void LoadRecentLists(const char *file) const;
|
||||||
|
void SaveRecentLists(const char *file) const;
|
||||||
|
|
||||||
BMessenger fMess;
|
BMessenger fMess;
|
||||||
BMessenger fMimeMess;
|
BMessenger fMimeMess;
|
||||||
|
|
|
@ -2209,6 +2209,9 @@ BRoster::AddToRecentApps(const char *appSig) const
|
||||||
void
|
void
|
||||||
BRoster::ClearRecentDocuments() const
|
BRoster::ClearRecentDocuments() const
|
||||||
{
|
{
|
||||||
|
BMessage request(B_REG_CLEAR_RECENT_DOCUMENTS);
|
||||||
|
BMessage reply;
|
||||||
|
fMess.SendMessage(&request, &reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief Sends a request to the roster to clear the recent
|
/*! \brief Sends a request to the roster to clear the recent
|
||||||
|
@ -2217,6 +2220,9 @@ BRoster::ClearRecentDocuments() const
|
||||||
void
|
void
|
||||||
BRoster::ClearRecentFolders() const
|
BRoster::ClearRecentFolders() const
|
||||||
{
|
{
|
||||||
|
BMessage request(B_REG_CLEAR_RECENT_FOLDERS);
|
||||||
|
BMessage reply;
|
||||||
|
fMess.SendMessage(&request, &reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief Sends a request to the roster to clear the recent
|
/*! \brief Sends a request to the roster to clear the recent
|
||||||
|
@ -2225,6 +2231,71 @@ BRoster::ClearRecentFolders() const
|
||||||
void
|
void
|
||||||
BRoster::ClearRecentApps() const
|
BRoster::ClearRecentApps() const
|
||||||
{
|
{
|
||||||
|
BMessage request(B_REG_CLEAR_RECENT_APPS);
|
||||||
|
BMessage reply;
|
||||||
|
fMess.SendMessage(&request, &reply);
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadRecentLists
|
||||||
|
/*! \brief Loads the system's recently used document, folder, and
|
||||||
|
application lists from the specified file.
|
||||||
|
|
||||||
|
\note The current lists are cleared before loading the new lists
|
||||||
|
|
||||||
|
\param filename The name of the file to load from
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
BRoster::LoadRecentLists(const char *filename) const
|
||||||
|
{
|
||||||
|
status_t error = B_OK;
|
||||||
|
// compose the request message
|
||||||
|
BMessage request(B_REG_LOAD_RECENT_LISTS);
|
||||||
|
if (error == B_OK)
|
||||||
|
error = request.AddString("filename", filename);
|
||||||
|
// send the request
|
||||||
|
BMessage reply;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = fMess.SendMessage(&request, &reply);
|
||||||
|
// evaluate the reply
|
||||||
|
status_t result;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = reply.what == B_REG_RESULT ? B_OK : B_BAD_REPLY;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = reply.FindInt32("result", &result);
|
||||||
|
if (error == B_OK)
|
||||||
|
error = result;
|
||||||
|
// Nothing to return... how sad :-(
|
||||||
|
// return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SaveRecentLists
|
||||||
|
/*! \brief Saves the system's recently used document, folder, and
|
||||||
|
application lists to the specified file.
|
||||||
|
|
||||||
|
\param filename The name of the file to save to
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
BRoster::SaveRecentLists(const char *filename) const
|
||||||
|
{
|
||||||
|
status_t error = B_OK;
|
||||||
|
// compose the request message
|
||||||
|
BMessage request(B_REG_SAVE_RECENT_LISTS);
|
||||||
|
if (error == B_OK)
|
||||||
|
error = request.AddString("filename", filename);
|
||||||
|
// send the request
|
||||||
|
BMessage reply;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = fMess.SendMessage(&request, &reply);
|
||||||
|
// evaluate the reply
|
||||||
|
status_t result;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = reply.what == B_REG_RESULT ? B_OK : B_BAD_REPLY;
|
||||||
|
if (error == B_OK)
|
||||||
|
error = reply.FindInt32("result", &result);
|
||||||
|
if (error == B_OK)
|
||||||
|
error = result;
|
||||||
|
// Nothing to return... how sad :-(
|
||||||
|
// return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------*/
|
/*-----------------------------------------------------*/
|
||||||
|
|
|
@ -156,13 +156,19 @@ Registrar::MessageReceived(BMessage *message)
|
||||||
fRoster->HandleAddToRecentApps(message);
|
fRoster->HandleAddToRecentApps(message);
|
||||||
break;
|
break;
|
||||||
case B_REG_CLEAR_RECENT_DOCUMENTS:
|
case B_REG_CLEAR_RECENT_DOCUMENTS:
|
||||||
fRoster->HandleClearRecentDocuments(message);
|
fRoster->ClearRecentDocuments();
|
||||||
break;
|
break;
|
||||||
case B_REG_CLEAR_RECENT_FOLDERS:
|
case B_REG_CLEAR_RECENT_FOLDERS:
|
||||||
fRoster->HandleClearRecentFolders(message);
|
fRoster->ClearRecentFolders();
|
||||||
break;
|
break;
|
||||||
case B_REG_CLEAR_RECENT_APPS:
|
case B_REG_CLEAR_RECENT_APPS:
|
||||||
fRoster->HandleClearRecentApps(message);
|
fRoster->ClearRecentApps();
|
||||||
|
break;
|
||||||
|
case B_REG_LOAD_RECENT_LISTS:
|
||||||
|
fRoster->HandleLoadRecentLists(message);
|
||||||
|
break;
|
||||||
|
case B_REG_SAVE_RECENT_LISTS:
|
||||||
|
fRoster->HandleSaveRecentLists(message);
|
||||||
break;
|
break;
|
||||||
// message runner requests
|
// message runner requests
|
||||||
case B_REG_REGISTER_MESSAGE_RUNNER:
|
case B_REG_REGISTER_MESSAGE_RUNNER:
|
||||||
|
|
|
@ -794,7 +794,8 @@ TRoster::HandleStopWatching(BMessage *request)
|
||||||
/*! \brief Handles a GetRecentDocuments() request.
|
/*! \brief Handles a GetRecentDocuments() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleGetRecentDocuments(BMessage *request)
|
void
|
||||||
|
TRoster::HandleGetRecentDocuments(BMessage *request)
|
||||||
{
|
{
|
||||||
FUNCTION_START();
|
FUNCTION_START();
|
||||||
_HandleGetRecentEntries(request);
|
_HandleGetRecentEntries(request);
|
||||||
|
@ -805,7 +806,8 @@ void TRoster::HandleGetRecentDocuments(BMessage *request)
|
||||||
/*! \brief Handles a GetRecentFolders() request.
|
/*! \brief Handles a GetRecentFolders() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleGetRecentFolders(BMessage *request)
|
void
|
||||||
|
TRoster::HandleGetRecentFolders(BMessage *request)
|
||||||
{
|
{
|
||||||
FUNCTION_START();
|
FUNCTION_START();
|
||||||
_HandleGetRecentEntries(request);
|
_HandleGetRecentEntries(request);
|
||||||
|
@ -816,7 +818,8 @@ void TRoster::HandleGetRecentFolders(BMessage *request)
|
||||||
/*! \brief Handles a GetRecentApps() request.
|
/*! \brief Handles a GetRecentApps() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleGetRecentApps(BMessage *request)
|
void
|
||||||
|
TRoster::HandleGetRecentApps(BMessage *request)
|
||||||
{
|
{
|
||||||
FUNCTION_START();
|
FUNCTION_START();
|
||||||
|
|
||||||
|
@ -841,7 +844,8 @@ void TRoster::HandleGetRecentApps(BMessage *request)
|
||||||
/*! \brief Handles an AddToRecentDocuments() request.
|
/*! \brief Handles an AddToRecentDocuments() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
void
|
||||||
|
TRoster::HandleAddToRecentDocuments(BMessage *request)
|
||||||
{
|
{
|
||||||
FUNCTION_START();
|
FUNCTION_START();
|
||||||
|
|
||||||
|
@ -859,7 +863,6 @@ void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
||||||
error = request->FindString("app sig", &appSig);
|
error = request->FindString("app sig", &appSig);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = fRecentDocuments.Add(&ref, appSig);
|
error = fRecentDocuments.Add(&ref, appSig);
|
||||||
error = B_ERROR;
|
|
||||||
reply.AddInt32("result", error);
|
reply.AddInt32("result", error);
|
||||||
request->SendReply(&reply);
|
request->SendReply(&reply);
|
||||||
|
|
||||||
|
@ -870,7 +873,8 @@ void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
||||||
/*! \brief Handles an AddToRecentFolders() request.
|
/*! \brief Handles an AddToRecentFolders() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleAddToRecentFolders(BMessage *request)
|
void
|
||||||
|
TRoster::HandleAddToRecentFolders(BMessage *request)
|
||||||
{
|
{
|
||||||
FUNCTION_START();
|
FUNCTION_START();
|
||||||
|
|
||||||
|
@ -888,7 +892,6 @@ void TRoster::HandleAddToRecentFolders(BMessage *request)
|
||||||
error = request->FindString("app sig", &appSig);
|
error = request->FindString("app sig", &appSig);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = fRecentFolders.Add(&ref, appSig);
|
error = fRecentFolders.Add(&ref, appSig);
|
||||||
error = B_ERROR;
|
|
||||||
reply.AddInt32("result", error);
|
reply.AddInt32("result", error);
|
||||||
request->SendReply(&reply);
|
request->SendReply(&reply);
|
||||||
|
|
||||||
|
@ -899,32 +902,97 @@ void TRoster::HandleAddToRecentFolders(BMessage *request)
|
||||||
/*! \brief Handles an AddToRecentApps() request.
|
/*! \brief Handles an AddToRecentApps() request.
|
||||||
\param request The request message
|
\param request The request message
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleAddToRecentApps(BMessage *request)
|
void
|
||||||
|
TRoster::HandleAddToRecentApps(BMessage *request)
|
||||||
{
|
{
|
||||||
|
FUNCTION_START();
|
||||||
|
|
||||||
|
if (!request) {
|
||||||
|
D(PRINT(("WARNING: TRoster::HandleAddToRecentApps(NULL) called\n")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *appSig;
|
||||||
|
BMessage reply(B_REG_RESULT);
|
||||||
|
|
||||||
|
status_t error = request->FindString("app sig", &appSig);
|
||||||
|
if (!error)
|
||||||
|
error = fRecentApps.Add(appSig);
|
||||||
|
reply.AddInt32("result", error);
|
||||||
|
request->SendReply(&reply);
|
||||||
|
|
||||||
|
FUNCTION_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
// HandleClearRecentDocuments
|
void
|
||||||
/*! \brief Handles a ClearRecentDocuments() request.
|
TRoster::HandleLoadRecentLists(BMessage *request)
|
||||||
\param request The request message
|
|
||||||
*/
|
|
||||||
void TRoster::HandleClearRecentDocuments(BMessage *request)
|
|
||||||
{
|
{
|
||||||
|
FUNCTION_START();
|
||||||
|
|
||||||
|
if (!request) {
|
||||||
|
D(PRINT(("WARNING: TRoster::HandleLoadRecentLists(NULL) called\n")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *filename;
|
||||||
|
BMessage reply(B_REG_RESULT);
|
||||||
|
|
||||||
|
status_t error = request->FindString("filename", &filename);
|
||||||
|
if (!error)
|
||||||
|
error = _LoadRosterSettings(filename);
|
||||||
|
reply.AddInt32("result", error);
|
||||||
|
request->SendReply(&reply);
|
||||||
|
|
||||||
|
FUNCTION_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
// HandleClearRecentFolders
|
void
|
||||||
/*! \brief Handles a ClearRecentFolders() request.
|
TRoster::HandleSaveRecentLists(BMessage *request)
|
||||||
\param request The request message
|
|
||||||
*/
|
|
||||||
void TRoster::HandleClearRecentFolders(BMessage *request)
|
|
||||||
{
|
{
|
||||||
|
FUNCTION_START();
|
||||||
|
|
||||||
|
if (!request) {
|
||||||
|
D(PRINT(("WARNING: TRoster::HandleSaveRecentLists(NULL) called\n")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *filename;
|
||||||
|
BMessage reply(B_REG_RESULT);
|
||||||
|
|
||||||
|
status_t error = request->FindString("filename", &filename);
|
||||||
|
if (!error)
|
||||||
|
error = _SaveRosterSettings(filename);
|
||||||
|
reply.AddInt32("result", error);
|
||||||
|
request->SendReply(&reply);
|
||||||
|
|
||||||
|
FUNCTION_END();
|
||||||
}
|
}
|
||||||
|
|
||||||
// HandleClearRecentApps
|
// ClearRecentDocuments
|
||||||
/*! \brief Handles a ClearRecentApps() request.
|
/*! \brief Clears the current list of recent documents
|
||||||
\param request The request message
|
|
||||||
*/
|
*/
|
||||||
void TRoster::HandleClearRecentApps(BMessage *request)
|
void
|
||||||
|
TRoster::ClearRecentDocuments()
|
||||||
{
|
{
|
||||||
|
fRecentDocuments.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClearRecentFolders
|
||||||
|
/*! \brief Clears the current list of recent folders
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
TRoster::ClearRecentFolders()
|
||||||
|
{
|
||||||
|
fRecentFolders.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClearRecentApps
|
||||||
|
/*! \brief Clears the current list of recent apps
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
TRoster::ClearRecentApps()
|
||||||
|
{
|
||||||
|
fRecentApps.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init
|
// Init
|
||||||
|
|
|
@ -75,9 +75,12 @@ public:
|
||||||
void HandleAddToRecentDocuments(BMessage *request);
|
void HandleAddToRecentDocuments(BMessage *request);
|
||||||
void HandleAddToRecentFolders(BMessage *request);
|
void HandleAddToRecentFolders(BMessage *request);
|
||||||
void HandleAddToRecentApps(BMessage *request);
|
void HandleAddToRecentApps(BMessage *request);
|
||||||
void HandleClearRecentDocuments(BMessage *request);
|
void HandleLoadRecentLists(BMessage *request);
|
||||||
void HandleClearRecentFolders(BMessage *request);
|
void HandleSaveRecentLists(BMessage *request);
|
||||||
void HandleClearRecentApps(BMessage *request);
|
|
||||||
|
void ClearRecentDocuments();
|
||||||
|
void ClearRecentFolders();
|
||||||
|
void ClearRecentApps();
|
||||||
|
|
||||||
status_t Init();
|
status_t Init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue