Added client options used to send or show received chat with empty body.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4676 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
f606ceebb5
commit
24eb907c51
|
@ -206,7 +206,8 @@ String Client::s_toggles[OptCount] = {
|
||||||
"multilines", "autoanswer", "ringincoming", "ringoutgoing",
|
"multilines", "autoanswer", "ringincoming", "ringoutgoing",
|
||||||
"activatelastoutcall", "activatelastincall", "activatecallonselect",
|
"activatelastoutcall", "activatelastincall", "activatecallonselect",
|
||||||
"display_keypad", "openincomingurl", "addaccountonstartup",
|
"display_keypad", "openincomingurl", "addaccountonstartup",
|
||||||
"dockedchat", "destroychat", "notifychatstate"
|
"dockedchat", "destroychat", "notifychatstate", "showemptychat",
|
||||||
|
"sendemptychat"
|
||||||
};
|
};
|
||||||
bool Client::s_engineStarted = false; // Engine started flag
|
bool Client::s_engineStarted = false; // Engine started flag
|
||||||
bool Client::s_idleLogicsTick = false; // Call logics' timerTick()
|
bool Client::s_idleLogicsTick = false; // Call logics' timerTick()
|
||||||
|
|
|
@ -6558,7 +6558,8 @@ bool DefaultLogic::defaultMsgHandler(Message& msg, int id, bool& stopLogic)
|
||||||
bool hasState = !delay && buildChatState(chatState,msg,c->m_name);
|
bool hasState = !delay && buildChatState(chatState,msg,c->m_name);
|
||||||
const String& body = msg[YSTRING("body")];
|
const String& body = msg[YSTRING("body")];
|
||||||
NamedList* p = 0;
|
NamedList* p = 0;
|
||||||
if (body || !hasState)
|
if (body || (!hasState &&
|
||||||
|
Client::self()->getBoolOpt(Client::OptShowEmptyChat)))
|
||||||
p = buildChatParams(body,c->m_name,time,0 != delay,ds);
|
p = buildChatParams(body,c->m_name,time,0 != delay,ds);
|
||||||
// Active state with no body or notification: remove last notification
|
// Active state with no body or notification: remove last notification
|
||||||
// if the contact has a chat
|
// if the contact has a chat
|
||||||
|
@ -6636,7 +6637,8 @@ bool DefaultLogic::defaultMsgHandler(Message& msg, int id, bool& stopLogic)
|
||||||
String chatState;
|
String chatState;
|
||||||
bool hasState = !delay && buildChatState(chatState,msg,member->m_name);
|
bool hasState = !delay && buildChatState(chatState,msg,member->m_name);
|
||||||
NamedList* p = 0;
|
NamedList* p = 0;
|
||||||
if (body || !hasState)
|
if (body || (!hasState &&
|
||||||
|
Client::self()->getBoolOpt(Client::OptShowEmptyChat)))
|
||||||
p = buildChatParams(body,member ? member->m_name : nick,time,0,0);
|
p = buildChatParams(body,member ? member->m_name : nick,time,0,0);
|
||||||
const String& id = mucChat ? room->resource().toString() : member->toString();
|
const String& id = mucChat ? room->resource().toString() : member->toString();
|
||||||
// Active state with no body or notification: remove last notification
|
// Active state with no body or notification: remove last notification
|
||||||
|
@ -8082,14 +8084,16 @@ bool DefaultLogic::handleChatContactAction(const String& name, Window* wnd)
|
||||||
"DefaultLogic sending chat for contact=%s",c->toString().c_str());
|
"DefaultLogic sending chat for contact=%s",c->toString().c_str());
|
||||||
String text;
|
String text;
|
||||||
c->getChatInput(text);
|
c->getChatInput(text);
|
||||||
if (text && c->sendChat(text)) {
|
if ((text || Client::self()->getBoolOpt(Client::OptSendEmptyChat)) &&
|
||||||
|
c->sendChat(text)) {
|
||||||
unsigned int time = Time::secNow();
|
unsigned int time = Time::secNow();
|
||||||
NamedList* tmp = buildChatParams(text,"me",time);
|
NamedList* tmp = buildChatParams(text,"me",time);
|
||||||
c->setChatProperty("history","_yate_tempitemreplace",String(false));
|
c->setChatProperty("history","_yate_tempitemreplace",String(false));
|
||||||
c->addChatHistory("chat_out",tmp);
|
c->addChatHistory("chat_out",tmp);
|
||||||
c->setChatProperty("history","_yate_tempitemreplace",String(true));
|
c->setChatProperty("history","_yate_tempitemreplace",String(true));
|
||||||
c->setChatInput();
|
c->setChatInput();
|
||||||
logChat(c,time,true,false,text);
|
if (text)
|
||||||
|
logChat(c,time,true,false,text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (room) {
|
else if (room) {
|
||||||
|
@ -8101,11 +8105,11 @@ bool DefaultLogic::handleChatContactAction(const String& name, Window* wnd)
|
||||||
room->uri().c_str(),m->m_name.c_str());
|
room->uri().c_str(),m->m_name.c_str());
|
||||||
String text;
|
String text;
|
||||||
room->getChatInput(id,text);
|
room->getChatInput(id,text);
|
||||||
bool ok = false;
|
bool ok = text || Client::self()->getBoolOpt(Client::OptSendEmptyChat);
|
||||||
if (room->ownMember(m))
|
if (room->ownMember(m))
|
||||||
ok = text && room->sendChat(text,String::empty(),"groupchat");
|
ok = ok && room->sendChat(text,String::empty(),"groupchat");
|
||||||
else
|
else
|
||||||
ok = text && room->sendChat(text,m->m_name);
|
ok = ok && room->sendChat(text,m->m_name);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
unsigned int time = Time::secNow();
|
unsigned int time = Time::secNow();
|
||||||
NamedList* tmp = buildChatParams(text,"me",time);
|
NamedList* tmp = buildChatParams(text,"me",time);
|
||||||
|
@ -8113,7 +8117,8 @@ bool DefaultLogic::handleChatContactAction(const String& name, Window* wnd)
|
||||||
room->addChatHistory(id,"chat_out",tmp);
|
room->addChatHistory(id,"chat_out",tmp);
|
||||||
room->setChatProperty(id,"history","_yate_tempitemreplace",String(true));
|
room->setChatProperty(id,"history","_yate_tempitemreplace",String(true));
|
||||||
room->setChatInput(id);
|
room->setChatInput(id);
|
||||||
logChat(room,time,true,false,text,room->ownMember(m),m->m_name);
|
if (text)
|
||||||
|
logChat(room,time,true,false,text,room->ownMember(m),m->m_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -180,6 +180,26 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="showemptychat" >
|
||||||
|
<property name="toolTip" >
|
||||||
|
<string>Show received chat with empty body</string>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Show empty received chat</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="sendemptychat" >
|
||||||
|
<property name="toolTip" >
|
||||||
|
<string>Send empty chat</string>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Send empty chat</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer>
|
<spacer>
|
||||||
<property name="orientation" >
|
<property name="orientation" >
|
||||||
|
|
|
@ -814,6 +814,8 @@ public:
|
||||||
OptDockedChat, // Show all contacts chat in the same window
|
OptDockedChat, // Show all contacts chat in the same window
|
||||||
OptDestroyChat, // Destroy contact chat when contact is removed/destroyed
|
OptDestroyChat, // Destroy contact chat when contact is removed/destroyed
|
||||||
OptNotifyChatState, // Notify chat states
|
OptNotifyChatState, // Notify chat states
|
||||||
|
OptShowEmptyChat, // Display received empty chat in chat history
|
||||||
|
OptSendEmptyChat, // Send empty chat
|
||||||
OptCount
|
OptCount
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue