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 <Muhelp/Mulog.hh>
 
+#include <set>
+
 using std::vector;
+using std::set;
 using std::string;
 using std::wstring;
 using std::map;
@@ -564,6 +567,35 @@
 		vector<string>::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<string> room_users;
+		map<string, RoomData>::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<string, UserData>::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<string>::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("<span style='font-family:fixed'>%1</span>").arg(_t.toString());
+		line = QString("<span style='font-family:fixed-width'>%1</span>").arg(_t.toString());
 	else
-		line = QString("<span style='font-family:fixed'>%1</span>").arg(_t.toString(mTimeFormat));
+		line = QString("<span style='font-family:fixed-width'>%1</span>").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("<span style='font-family:fixed'>") + QDateTime::currentDateTime().toString("hh:mm:ss") + "</span> "
+#define _TIME QString("<span style='font-family:fixed-width'>") + QDateTime::currentDateTime().toString("hh:mm:ss") + "</span> "
 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);
 }
