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 bool _is_valid_roster_mess_(bool);
|
||||
friend void BPrivate::init_registrar_roster(BMessenger, BMessenger);
|
||||
friend class GetRecentTester;
|
||||
|
||||
class ArgVector;
|
||||
|
||||
|
@ -212,6 +213,8 @@ private:
|
|||
void ClearRecentDocuments() const;
|
||||
void ClearRecentFolders() const;
|
||||
void ClearRecentApps() const;
|
||||
void LoadRecentLists(const char *file) const;
|
||||
void SaveRecentLists(const char *file) const;
|
||||
|
||||
BMessenger fMess;
|
||||
BMessenger fMimeMess;
|
||||
|
|
|
@ -2209,6 +2209,9 @@ BRoster::AddToRecentApps(const char *appSig) const
|
|||
void
|
||||
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
|
||||
|
@ -2217,6 +2220,9 @@ BRoster::ClearRecentDocuments() const
|
|||
void
|
||||
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
|
||||
|
@ -2225,6 +2231,71 @@ BRoster::ClearRecentFolders() const
|
|||
void
|
||||
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);
|
||||
break;
|
||||
case B_REG_CLEAR_RECENT_DOCUMENTS:
|
||||
fRoster->HandleClearRecentDocuments(message);
|
||||
fRoster->ClearRecentDocuments();
|
||||
break;
|
||||
case B_REG_CLEAR_RECENT_FOLDERS:
|
||||
fRoster->HandleClearRecentFolders(message);
|
||||
fRoster->ClearRecentFolders();
|
||||
break;
|
||||
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;
|
||||
// message runner requests
|
||||
case B_REG_REGISTER_MESSAGE_RUNNER:
|
||||
|
|
|
@ -794,7 +794,8 @@ TRoster::HandleStopWatching(BMessage *request)
|
|||
/*! \brief Handles a GetRecentDocuments() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleGetRecentDocuments(BMessage *request)
|
||||
void
|
||||
TRoster::HandleGetRecentDocuments(BMessage *request)
|
||||
{
|
||||
FUNCTION_START();
|
||||
_HandleGetRecentEntries(request);
|
||||
|
@ -805,7 +806,8 @@ void TRoster::HandleGetRecentDocuments(BMessage *request)
|
|||
/*! \brief Handles a GetRecentFolders() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleGetRecentFolders(BMessage *request)
|
||||
void
|
||||
TRoster::HandleGetRecentFolders(BMessage *request)
|
||||
{
|
||||
FUNCTION_START();
|
||||
_HandleGetRecentEntries(request);
|
||||
|
@ -816,7 +818,8 @@ void TRoster::HandleGetRecentFolders(BMessage *request)
|
|||
/*! \brief Handles a GetRecentApps() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleGetRecentApps(BMessage *request)
|
||||
void
|
||||
TRoster::HandleGetRecentApps(BMessage *request)
|
||||
{
|
||||
FUNCTION_START();
|
||||
|
||||
|
@ -841,7 +844,8 @@ void TRoster::HandleGetRecentApps(BMessage *request)
|
|||
/*! \brief Handles an AddToRecentDocuments() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
||||
void
|
||||
TRoster::HandleAddToRecentDocuments(BMessage *request)
|
||||
{
|
||||
FUNCTION_START();
|
||||
|
||||
|
@ -859,7 +863,6 @@ void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
|||
error = request->FindString("app sig", &appSig);
|
||||
if (!error)
|
||||
error = fRecentDocuments.Add(&ref, appSig);
|
||||
error = B_ERROR;
|
||||
reply.AddInt32("result", error);
|
||||
request->SendReply(&reply);
|
||||
|
||||
|
@ -870,7 +873,8 @@ void TRoster::HandleAddToRecentDocuments(BMessage *request)
|
|||
/*! \brief Handles an AddToRecentFolders() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleAddToRecentFolders(BMessage *request)
|
||||
void
|
||||
TRoster::HandleAddToRecentFolders(BMessage *request)
|
||||
{
|
||||
FUNCTION_START();
|
||||
|
||||
|
@ -888,7 +892,6 @@ void TRoster::HandleAddToRecentFolders(BMessage *request)
|
|||
error = request->FindString("app sig", &appSig);
|
||||
if (!error)
|
||||
error = fRecentFolders.Add(&ref, appSig);
|
||||
error = B_ERROR;
|
||||
reply.AddInt32("result", error);
|
||||
request->SendReply(&reply);
|
||||
|
||||
|
@ -899,32 +902,97 @@ void TRoster::HandleAddToRecentFolders(BMessage *request)
|
|||
/*! \brief Handles an AddToRecentApps() request.
|
||||
\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
|
||||
/*! \brief Handles a ClearRecentDocuments() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleClearRecentDocuments(BMessage *request)
|
||||
void
|
||||
TRoster::HandleLoadRecentLists(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
|
||||
/*! \brief Handles a ClearRecentFolders() request.
|
||||
\param request The request message
|
||||
*/
|
||||
void TRoster::HandleClearRecentFolders(BMessage *request)
|
||||
void
|
||||
TRoster::HandleSaveRecentLists(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
|
||||
/*! \brief Handles a ClearRecentApps() request.
|
||||
\param request The request message
|
||||
// ClearRecentDocuments
|
||||
/*! \brief Clears the current list of recent documents
|
||||
*/
|
||||
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
|
||||
|
|
|
@ -75,9 +75,12 @@ public:
|
|||
void HandleAddToRecentDocuments(BMessage *request);
|
||||
void HandleAddToRecentFolders(BMessage *request);
|
||||
void HandleAddToRecentApps(BMessage *request);
|
||||
void HandleClearRecentDocuments(BMessage *request);
|
||||
void HandleClearRecentFolders(BMessage *request);
|
||||
void HandleClearRecentApps(BMessage *request);
|
||||
void HandleLoadRecentLists(BMessage *request);
|
||||
void HandleSaveRecentLists(BMessage *request);
|
||||
|
||||
void ClearRecentDocuments();
|
||||
void ClearRecentFolders();
|
||||
void ClearRecentApps();
|
||||
|
||||
status_t Init();
|
||||
|
||||
|
|
Loading…
Reference in New Issue