Index: museekd/MuseekdTypes.hh =================================================================== --- museekd/MuseekdTypes.hh (revision 727) +++ museekd/MuseekdTypes.hh (working copy) @@ -28,6 +28,10 @@ #define EM_INTERESTS 1 << 5 #define EM_CONFIG 1 << 6 +#define ST_GLOBAL 1 << 0 +#define ST_BUDDY 1 << 1 +#define ST_ROOM 1 << 2 + struct _PrivateMessage { uint32 ticket, timestamp; std::string user; Index: museekd/museekd.cc =================================================================== --- museekd/museekd.cc (revision 727) +++ museekd/museekd.cc (working copy) @@ -33,7 +33,10 @@ #define MULOG_DOMAIN "museekd.MD" #include +#include + using std::vector; +using std::set; using std::string; using std::wstring; using std::map; @@ -564,6 +567,35 @@ vector::iterator it, end = buddies.end(); for(it = buddies.begin(); it != end; ++it) mPeerManager->get_peer(*it)->connection()->search(ticket, wquery); + } else if (type == 2) { + + DEBUG ("Room search : %s", query.c_str ()); + + set room_users; + map::iterator it, end = mJoinedRooms.end (); + + for (it = mJoinedRooms.begin() ; it != end ; ++it) + { + DEBUG ("Adding users from room %s...", (*it).first.c_str ()); + RoomData rdata = (*it).second; + + map::iterator it2, end2 = rdata.end (); + + for (it2 = rdata.begin () ; it2 != end2 ; ++it2) + { + UserData udata = (*it2).second; + + if (mConfig["server"]["username"] == (*it2).first) + continue; + else + room_users.insert (room_users.begin(), (*it2).first); + } + } + + set::iterator it3, end3 = room_users.end(); + DEBUG ("Sending messages to the %d users...", room_users.size ()); + for(it3 = room_users.begin() ; it3 != end3 ; ++it3) + mPeerManager->get_peer(*it3)->connection()->search(ticket, wquery); } } Index: museekd/IfaceMessages.hh =================================================================== --- museekd/IfaceMessages.hh (revision 727) +++ museekd/IfaceMessages.hh (working copy) @@ -923,7 +923,7 @@ /* Search -- Start a new search - uint type -- Search type (0 = global, 1 = buddies) + uint type -- Search type (0 = global, 1 = buddies, 2 = room) string query -- What you want to search for string query -- The query we're delivering a ticket for Index: museeq/museeq.h =================================================================== --- museeq/museeq.h (revision 727) +++ museeq/museeq.h (working copy) @@ -120,6 +120,7 @@ void search(const QString&); void buddySearch(const QString&); + void roomSearch(const QString&); void terminateSearch(uint); void getUserInfo(const QString&); Index: museeq/museeq.cpp =================================================================== --- museeq/museeq.cpp (revision 727) +++ museeq/museeq.cpp (working copy) @@ -350,6 +350,10 @@ mDriver->doStartSearch(1, query); } +void Museeq::roomSearch(const QString& query) { + mDriver->doStartSearch(2, query); +} + void Museeq::terminateSearch(uint token) { mDriver->doStopSearch(token); } Index: museeq/chattext.cpp =================================================================== --- museeq/chattext.cpp (revision 727) +++ museeq/chattext.cpp (working copy) @@ -47,9 +47,9 @@ _t.setTime_t(ts); if(mTimeFormat.isEmpty()) - line = QString("%1").arg(_t.toString()); + line = QString("%1").arg(_t.toString()); else - line = QString("%1").arg(_t.toString(mTimeFormat)); + line = QString("%1").arg(_t.toString(mTimeFormat)); if(_l.startsWith("/me ")) { line += " * " + escape(u) + " "; Index: museeq/chatroom.cpp =================================================================== --- museeq/chatroom.cpp (revision 727) +++ museeq/chatroom.cpp (working copy) @@ -148,7 +148,7 @@ mChatPanel->entry()->setCompletors(users); } -#define _TIME QString("") + QDateTime::currentDateTime().toString("hh:mm:ss") + " " +#define _TIME QString("") + QDateTime::currentDateTime().toString("hh:mm:ss") + " " void ChatRoom::userJoined(const QString& _u, int _s, unsigned int _sp, unsigned int _f) { if(mUserList->findItem(_u)) return; Index: museeq/searches.cpp =================================================================== --- museeq/searches.cpp (revision 727) +++ museeq/searches.cpp (working copy) @@ -47,7 +47,7 @@ mGlobal = new QRadioButton("Global", group); mRooms = new QRadioButton("Rooms", group); - mRooms->setEnabled(false); + // mRooms->setEnabled(false); mBuddies = new QRadioButton("Buddies", group); group->setButton(0); @@ -119,6 +119,8 @@ if(mBuddies->isChecked()) museeq->buddySearch(q); + else if (mRooms->isChecked ()) + museeq->roomSearch (q); else museeq->search(q); }