This commit is contained in:
defnax 2016-04-15 20:32:00 +02:00
commit 2552b556eb
11 changed files with 271 additions and 298 deletions

View File

@ -2840,8 +2840,8 @@ void RsGenExchange::processRecvdGroups()
// now check if group already existss // now check if group already existss
if(std::find(existingGrpIds.begin(), existingGrpIds.end(), grp->grpId) == existingGrpIds.end()) if(std::find(existingGrpIds.begin(), existingGrpIds.end(), grp->grpId) == existingGrpIds.end())
{ {
if(meta->mCircleType == GXS_CIRCLE_TYPE_YOUREYESONLY) //if(meta->mCircleType == GXS_CIRCLE_TYPE_YOUREYESONLY)
meta->mOriginator = grp->PeerId(); meta->mOriginator = grp->PeerId();
meta->mSubscribeFlags = GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED; meta->mSubscribeFlags = GXS_SERV::GROUP_SUBSCRIBE_NOT_SUBSCRIBED;

View File

@ -119,9 +119,8 @@ p3GxsCircles::p3GxsCircles(RsGeneralDataService *gds, RsNetworkExchangeService *
RsTickEvent::schedule_now(CIRCLE_EVENT_LOADIDS); RsTickEvent::schedule_now(CIRCLE_EVENT_LOADIDS);
// Dummy Circles. // Dummy Circles.
// RsTickEvent::schedule_in(CIRCLE_EVENT_DUMMYSTART, CIRCLE_DUMMY_STARTPERIOD); // RsTickEvent::schedule_in(CIRCLE_EVENT_DUMMYSTART, CIRCLE_DUMMY_STARTPERIOD);
mDummyIdToken = 0; mDummyIdToken = 0;
} }
@ -978,6 +977,7 @@ bool p3GxsCircles::cache_load_for_token(uint32_t token)
RsGxsCircleCache &cache = it->second; RsGxsCircleCache &cache = it->second;
cache.loadBaseCircle(group); cache.loadBaseCircle(group);
cache.mOriginator = item->meta.mOriginator ;
delete item; delete item;
@ -1043,6 +1043,8 @@ bool p3GxsCircles::cache_load_for_token(uint32_t token)
#endif #endif
std::list<PeerId> peers; std::list<PeerId> peers;
peers.push_back(cache.mOriginator) ;
mIdentities->requestKey(*pit, peers); mIdentities->requestKey(*pit, peers);
/* store in to_process queue. */ /* store in to_process queue. */
@ -1114,12 +1116,12 @@ bool p3GxsCircles::cache_load_for_token(uint32_t token)
isUnprocessedPeers = false; isUnprocessedPeers = false;
} }
// we can check for self inclusion in the circle right away, since own ids are always loaded.
// that allows to subscribe/unsubscribe uncomplete circles
checkCircleCacheForAutoSubscribe(cache);
if (isComplete) if (isComplete)
{ {
checkCircleCacheForAutoSubscribe(cache);
/* move straight into the cache */ /* move straight into the cache */
mCircleCache.store(id, cache); mCircleCache.store(id, cache);
mCircleCache.resize(); mCircleCache.resize();
@ -1266,8 +1268,11 @@ bool p3GxsCircles::cache_reloadids(const RsGxsCircleId &circleId)
/* We need to AutoSubscribe if the Circle is relevent to us */ /* We need to AutoSubscribe if the Circle is relevent to us */
bool p3GxsCircles::checkCircleCacheForAutoSubscribe(RsGxsCircleCache &cache) bool p3GxsCircles::checkCircleCacheForAutoSubscribe(RsGxsCircleCache &cache)
{ {
#warning we should also check for items in mLoadingCache in this method.
#ifdef DEBUG_CIRCLES #ifdef DEBUG_CIRCLES
std::cerr << "p3GxsCircles::checkCircleCacheForAutoSubscribe() : "<< cache.mCircleId << std::endl; std::cerr << "p3GxsCircles::checkCircleCacheForAutoSubscribe() : "<< cache.mCircleId << std::endl;
#endif #endif

View File

@ -156,6 +156,8 @@ class RsGxsCircleCache
std::set<RsGxsId> mAllowedAnonPeers; std::set<RsGxsId> mAllowedAnonPeers;
std::map<RsPgpId, std::set<RsGxsId> > mAllowedSignedPeers; std::map<RsPgpId, std::set<RsGxsId> > mAllowedSignedPeers;
RsPeerId mOriginator ; // peer who sent the data, in case we need to ask for ids
}; };

View File

@ -882,9 +882,6 @@ bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item,
item->setToolTip(RSID_COL_IDTYPE, tooltip) ; item->setToolTip(RSID_COL_IDTYPE, tooltip) ;
} }
#ifdef ID_DEBUG
std::cerr << "Setting item image : " << pixmap.width() << " x " << pixmap.height() << std::endl;
#endif
QPixmap pixmap ; QPixmap pixmap ;
if(data.mImage.mSize == 0 || !pixmap.loadFromData(data.mImage.mData, data.mImage.mSize, "PNG")) if(data.mImage.mSize == 0 || !pixmap.loadFromData(data.mImage.mData, data.mImage.mSize, "PNG"))
@ -1119,7 +1116,7 @@ void IdDialog::insertIdDetails(uint32_t token)
pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ; pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ;
#ifdef ID_DEBUG #ifdef ID_DEBUG
std::cerr << "Setting header frame image : " << pix.width() << " x " << pix.height() << std::endl; std::cerr << "Setting header frame image : " << pixmap.width() << " x " << pixmap.height() << std::endl;
#endif #endif
ui->avlabel->setPixmap(pixmap); ui->avlabel->setPixmap(pixmap);
@ -1263,7 +1260,7 @@ void IdDialog::modifyReputation()
rsReputations->setOwnOpinion(id,op) ; rsReputations->setOwnOpinion(id,op) ;
#ifdef ID_DEBUG #ifdef ID_DEBUG
std::cerr << "IdDialog::modifyReputation() ID: " << id << " Mod: " << mod; std::cerr << "IdDialog::modifyReputation() ID: " << id << " Mod: " << op;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
@ -1281,11 +1278,6 @@ void IdDialog::modifyReputation()
} }
#endif #endif
#ifdef ID_DEBUG
std::cerr << "IdDialog::modifyReputation() queuingRequest(), token: " << token;
std::cerr << std::endl;
#endif
// trigger refresh when finished. // trigger refresh when finished.
// basic / anstype are not needed. // basic / anstype are not needed.
requestIdDetails(); requestIdDetails();

View File

@ -62,6 +62,8 @@
#include <time.h> #include <time.h>
#define FMM 2//fontMetricsMultiplicator
/***** /*****
* #define CHAT_DEBUG 1 * #define CHAT_DEBUG 1
*****/ *****/
@ -71,6 +73,10 @@ ChatWidget::ChatWidget(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
int iconHeight = FMM*QFontMetricsF(font()).height() ;
QSize iconSize = QSize(iconHeight,iconHeight);
QSize buttonSize = QSize(iconSize + QSize(FMM,FMM));
newMessages = false; newMessages = false;
typing = false; typing = false;
peerStatus = 0; peerStatus = 0;
@ -82,6 +88,29 @@ ChatWidget::ChatWidget(QWidget *parent) :
lastStatusSendTime = 0 ; lastStatusSendTime = 0 ;
//Resize Tool buttons
ui->emoteiconButton->setFixedSize(buttonSize);
ui->emoteiconButton->setIconSize(iconSize);
ui->fontButton->setFixedSize(buttonSize);
ui->fontButton->setIconSize(iconSize);
ui->attachPictureButton->setFixedSize(buttonSize);
ui->attachPictureButton->setIconSize(iconSize);
ui->addFileButton->setFixedSize(buttonSize);
ui->addFileButton->setIconSize(iconSize);
ui->pushtoolsButton->setFixedSize(buttonSize);
ui->pushtoolsButton->setIconSize(iconSize);
ui->notifyButton->setFixedSize(buttonSize);
ui->notifyButton->setIconSize(iconSize);
ui->markButton->setFixedSize(buttonSize);
ui->markButton->setIconSize(iconSize);
ui->leSearch->setFixedHeight(iconHeight);
ui->searchBefore->setFixedHeight(iconHeight);
ui->searchAfter->setFixedHeight(iconHeight);
ui->searchButton->setFixedSize(buttonSize);
ui->searchButton->setIconSize(iconSize);
ui->sendButton->setFixedHeight(iconHeight);
//Initialize search
iCharToStartSearch=Settings->getChatSearchCharToStartSearch(); iCharToStartSearch=Settings->getChatSearchCharToStartSearch();
bFindCaseSensitively=Settings->getChatSearchCaseSensitively(); bFindCaseSensitively=Settings->getChatSearchCaseSensitively();
bFindWholeWords=Settings->getChatSearchWholeWords(); bFindWholeWords=Settings->getChatSearchWholeWords();
@ -90,7 +119,6 @@ ChatWidget::ChatWidget(QWidget *parent) :
uiMaxSearchLimitColor=Settings->getChatSearchMaxSearchLimitColor(); uiMaxSearchLimitColor=Settings->getChatSearchMaxSearchLimitColor();
cFoundColor=Settings->getChatSearchFoundColor(); cFoundColor=Settings->getChatSearchFoundColor();
ui->actionSearchWithoutLimit->setText(tr("Don't stop to color after")+" "+QString::number(uiMaxSearchLimitColor)+" "+tr("items found (need more CPU)")); ui->actionSearchWithoutLimit->setText(tr("Don't stop to color after")+" "+QString::number(uiMaxSearchLimitColor)+" "+tr("items found (need more CPU)"));
ui->leSearch->setVisible(false); ui->leSearch->setVisible(false);
@ -102,23 +130,23 @@ ChatWidget::ChatWidget(QWidget *parent) :
ui->searchButton->setChecked(false); ui->searchButton->setChecked(false);
ui->searchButton->setToolTip(tr("<b>Find </b><br/><i>Ctrl+F</i>")); ui->searchButton->setToolTip(tr("<b>Find </b><br/><i>Ctrl+F</i>"));
ui->leSearch->installEventFilter(this); ui->leSearch->installEventFilter(this);
connect(ui->actionFindCaseSensitively, SIGNAL(triggered()), this, SLOT(toogle_FindCaseSensitively())); connect(ui->actionFindCaseSensitively, SIGNAL(triggered()), this, SLOT(toogle_FindCaseSensitively()));
connect(ui->actionFindWholeWords, SIGNAL(triggered()), this, SLOT(toogle_FindWholeWords())); connect(ui->actionFindWholeWords, SIGNAL(triggered()), this, SLOT(toogle_FindWholeWords()));
connect(ui->actionMoveToCursor, SIGNAL(triggered()), this, SLOT(toogle_MoveToCursor())); connect(ui->actionMoveToCursor, SIGNAL(triggered()), this, SLOT(toogle_MoveToCursor()));
connect(ui->actionSearchWithoutLimit, SIGNAL(triggered()), this, SLOT(toogle_SeachWithoutLimit())); connect(ui->actionSearchWithoutLimit, SIGNAL(triggered()), this, SLOT(toogle_SeachWithoutLimit()));
connect(ui->searchButton, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuSearchButton(QPoint))); connect(ui->searchButton, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuSearchButton(QPoint)));
connect(ui->actionSearch_History, SIGNAL(triggered()), this, SLOT(searchHistory()));
notify=NULL; notify=NULL;
ui->notifyButton->setVisible(false); ui->notifyButton->setVisible(false);
ui->markButton->setToolTip(tr("<b>Mark this selected text</b><br><i>Ctrl+M</i>")); ui->markButton->setToolTip(tr("<b>Mark this selected text</b><br><i>Ctrl+M</i>"));
connect(ui->sendButton, SIGNAL(clicked()), this, SLOT(sendChat()));
connect(ui->addFileButton, SIGNAL(clicked()), this , SLOT(addExtraFile()));
connect(ui->attachPictureButton, SIGNAL(clicked()), this, SLOT(addExtraPicture()));
connect(ui->emoteiconButton, SIGNAL(clicked()), this, SLOT(smileyWidget())); connect(ui->emoteiconButton, SIGNAL(clicked()), this, SLOT(smileyWidget()));
connect(ui->attachPictureButton, SIGNAL(clicked()), this, SLOT(addExtraPicture()));
connect(ui->addFileButton, SIGNAL(clicked()), this , SLOT(addExtraFile()));
connect(ui->sendButton, SIGNAL(clicked()), this, SLOT(sendChat()));
connect(ui->actionSaveChatHistory, SIGNAL(triggered()), this, SLOT(fileSaveAs())); connect(ui->actionSaveChatHistory, SIGNAL(triggered()), this, SLOT(fileSaveAs()));
connect(ui->actionClearChatHistory, SIGNAL(triggered()), this, SLOT(clearChatHistory())); connect(ui->actionClearChatHistory, SIGNAL(triggered()), this, SLOT(clearChatHistory()));
connect(ui->actionDeleteChatHistory, SIGNAL(triggered()), this, SLOT(deleteChatHistory())); connect(ui->actionDeleteChatHistory, SIGNAL(triggered()), this, SLOT(deleteChatHistory()));
@ -146,9 +174,6 @@ ChatWidget::ChatWidget(QWidget *parent) :
ui->infoFrame->setVisible(false); ui->infoFrame->setVisible(false);
ui->statusMessageLabel->hide(); ui->statusMessageLabel->hide();
ui->actionSearch_History->setChecked(Settings->getChatSearchShowBarByDefault());
searchHistory();
setAcceptDrops(true); setAcceptDrops(true);
ui->chatTextEdit->setAcceptDrops(false); ui->chatTextEdit->setAcceptDrops(false);
ui->hashBox->setDropWidget(this); ui->hashBox->setDropWidget(this);
@ -165,7 +190,6 @@ ChatWidget::ChatWidget(QWidget *parent) :
menu->addAction(ui->actionDeleteChatHistory); menu->addAction(ui->actionDeleteChatHistory);
menu->addAction(ui->actionSaveChatHistory); menu->addAction(ui->actionSaveChatHistory);
menu->addAction(ui->actionMessageHistory); menu->addAction(ui->actionMessageHistory);
menu->addAction(ui->actionSearch_History);
ui->pushtoolsButton->setMenu(menu); ui->pushtoolsButton->setMenu(menu);
ui->textBrowser->installEventFilter(this); ui->textBrowser->installEventFilter(this);
@ -218,12 +242,16 @@ void ChatWidget::setDefaultExtraFileFlags(TransferRequestFlags fl)
void ChatWidget::addChatHorizontalWidget(QWidget *w) void ChatWidget::addChatHorizontalWidget(QWidget *w)
{ {
ui->vl_Plugins->addWidget(w) ; ui->pluginsVLayout->addWidget(w) ;
update() ; update() ;
} }
void ChatWidget::addChatBarWidget(QWidget *w) void ChatWidget::addChatBarWidget(QWidget *w)
{ {
int iconHeight = FMM*QFontMetricsF(font()).height() ;
QSize iconSize = QSize(iconHeight,iconHeight);
QSize buttonSize = QSize(iconSize + QSize(FMM,FMM));
w->setFixedSize(buttonSize);
ui->pluginButtonFrame->layout()->addWidget(w) ; ui->pluginButtonFrame->layout()->addWidget(w) ;
} }
@ -234,8 +262,7 @@ void ChatWidget::addTitleBarWidget(QWidget *w)
void ChatWidget::hideChatText(bool hidden) void ChatWidget::hideChatText(bool hidden)
{ {
ui->frame_ChatText->setHidden(hidden); ; ui->chatTextFrame->setHidden(hidden); ;
ui->searchframe->setVisible(ui->actionSearch_History->isChecked() && !hidden); ;
} }
RSButtonOnText* ChatWidget::getNewButtonOnTextBrowser() RSButtonOnText* ChatWidget::getNewButtonOnTextBrowser()
@ -316,7 +343,6 @@ void ChatWidget::init(const ChatId &chat_id, const QString &title)
messageCount = Settings->getPublicChatHistoryCount(); messageCount = Settings->getPublicChatHistoryCount();
ui->titleBarFrame->setVisible(false); ui->titleBarFrame->setVisible(false);
ui->actionSearch_History->setVisible(false);
} }
if (rsHistory->getEnable(hist_chat_type)) if (rsHistory->getEnable(hist_chat_type))
@ -400,12 +426,12 @@ void ChatWidget::processSettings(bool load)
// load settings // load settings
// state of splitter // state of splitter
ui->chatsplitter->restoreState(Settings->value("ChatSplitter").toByteArray()); ui->chatVSplitter->restoreState(Settings->value("ChatSplitter").toByteArray());
} else { } else {
// save settings // save settings
// state of splitter // state of splitter
Settings->setValue("ChatSplitter", ui->chatsplitter->saveState()); Settings->setValue("ChatSplitter", ui->chatVSplitter->saveState());
} }
Settings->endGroup(); Settings->endGroup();
@ -835,7 +861,7 @@ void ChatWidget::on_notifyButton_clicked()
QIcon icoLobby=(ui->notifyButton->icon()); QIcon icoLobby=(ui->notifyButton->icon());
notify->makeSubMenu(menu, icoLobby, title, chatId.toLobbyId()); notify->makeSubMenu(menu, icoLobby, title, chatId.toLobbyId());
menu->exec(ui->notifyButton->mapToGlobal(ui->notifyButton->geometry().bottomLeft())); menu->exec(ui->notifyButton->mapToGlobal(QPoint(0,ui->notifyButton->geometry().height())));
} }
@ -1031,7 +1057,7 @@ void ChatWidget::chatCharFormatChanged()
void ChatWidget::resetStatusBar() void ChatWidget::resetStatusBar()
{ {
ui->typingLabel->clear(); ui->typingLabel->clear();
ui->typingpixmapLabel->clear(); ui->typingPixmapLabel->clear();
typing = false; typing = false;
@ -1076,15 +1102,21 @@ void ChatWidget::updateLenOfChatTextEdit()
break; break;
} }
bool msgToLarge = false; int charRemains = 0;
if (maxMessageSize > 0) { if (maxMessageSize > 0) {
msgToLarge = (msg.length() >= maxMessageSize); charRemains = maxMessageSize - msg.length();
} }
ui->sendButton->setEnabled(!msgToLarge); ui->sendButton->setEnabled(charRemains>=0);
text = tr("%1This message consists of %2 characters.").arg(msgToLarge ? tr("Warning:")+" " : "").arg(msg.length()); if (charRemains>0)
text = tr("It remains %1 characters\nafter HTML conversion.").arg(charRemains);
else if(charRemains<0)
text = tr("Warning: This message is too big of %1 characters\nafter HTML conversion.").arg((0-charRemains));
else
text = "";
ui->sendButton->setToolTip(text); ui->sendButton->setToolTip(text);
ui->chatTextEdit->setToolTip(msgToLarge?text:""); ui->chatTextEdit->setToolTip(text);
} }
void ChatWidget::sendChat() void ChatWidget::sendChat()
@ -1427,16 +1459,6 @@ void ChatWidget::messageHistory()
imBrowser.exec(); imBrowser.exec();
} }
void ChatWidget::searchHistory()
{
if(ui->actionSearch_History->isChecked()){
ui->searchframe->show();
}else {
ui->searchframe->hide();
}
}
void ChatWidget::addExtraFile() void ChatWidget::addExtraFile()
{ {
QStringList files; QStringList files;
@ -1660,8 +1682,8 @@ void ChatWidget::updatePeersCustomStateString(const QString& /*peer_id*/, const
void ChatWidget::updateStatusString(const QString &statusMask, const QString &statusString, bool permanent) void ChatWidget::updateStatusString(const QString &statusMask, const QString &statusString, bool permanent)
{ {
ui->typingLabel->setText(QString(statusMask).arg(tr(statusString.toUtf8()))); // displays info for 5 secs. ui->typingLabel->setText(QString(statusMask).arg(tr(statusString.toUtf8()))); // displays info for 5 secs.
ui->typingpixmapLabel->setPixmap(QPixmap(":images/typing.png") ); ui->typingPixmapLabel->setPixmap(QPixmap(":images/typing.png") );
if (statusString == "is typing...") { if (statusString == "is typing...") {
typing = true; typing = true;

View File

@ -132,8 +132,6 @@ private slots:
void deleteChatHistory(); void deleteChatHistory();
void messageHistory(); void messageHistory();
void resetStatusBar() ; void resetStatusBar() ;
void searchHistory();
signals: signals:
void infoChanged(ChatWidget*); void infoChanged(ChatWidget*);

View File

@ -10,7 +10,7 @@
<height>323</height> <height>323</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@ -27,12 +27,12 @@
<number>2</number> <number>2</number>
</property> </property>
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="hl_TextChat"> <layout class="QHBoxLayout" name="textChatHLayout">
<property name="spacing"> <property name="spacing">
<number>2</number> <number>2</number>
</property> </property>
<item> <item>
<widget class="QFrame" name="frame_ChatText"> <widget class="QFrame" name="chatTextFrame">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>20</width> <width>20</width>
@ -45,7 +45,7 @@
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="chatTextFrameVLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@ -130,7 +130,7 @@
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::Box</enum> <enum>QFrame::Box</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="infoFrameHLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>6</number> <number>6</number>
</property> </property>
@ -207,7 +207,7 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QSplitter" name="chatsplitter"> <widget class="QSplitter" name="chatVSplitter">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@ -235,14 +235,14 @@ border-image: url(:/images/closepressed.png)
</property> </property>
</widget> </widget>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="chatTextVLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="typingHLayout">
<item> <item>
<widget class="QLabel" name="typingpixmapLabel"> <widget class="QLabel" name="typingPixmapLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>18</width> <width>18</width>
@ -280,7 +280,7 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer_2"> <spacer name="typingHSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -308,7 +308,7 @@ border-image: url(:/images/closepressed.png)
<height>30</height> <height>30</height>
</size> </size>
</property> </property>
<property name="placeholderText" stdset="0"> <property name="placeholderText">
<string>Type a message here</string> <string>Type a message here</string>
</property> </property>
</widget> </widget>
@ -325,7 +325,7 @@ border-image: url(:/images/closepressed.png)
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Sunken</enum> <enum>QFrame::Sunken</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="toolBarFrameHLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>2</number>
</property> </property>
@ -521,7 +521,7 @@ border-image: url(:/images/closepressed.png)
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QHBoxLayout" name="HL_pluginButtonFrame"> <layout class="QHBoxLayout" name="pluginButtonFrameHLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>2</number>
</property> </property>
@ -538,7 +538,179 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item> <item>
<spacer> <widget class="QToolButton" name="notifyButton">
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/chat_red24.png</normaloff>:/images/chat_red24.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="markButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/highlight.png</normaloff>:/images/highlight.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="LineEditClear" name="leSearch"/>
</item>
<item>
<widget class="QToolButton" name="searchBefore">
<property name="minimumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="searchAfter">
<property name="minimumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="searchButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/find.png</normaloff>:/images/find.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="toolBarHSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -571,12 +743,12 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="vl_Plugins"/> <layout class="QVBoxLayout" name="pluginsVLayout"/>
</item> </item>
</layout> </layout>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="hTitleLayout"> <layout class="QHBoxLayout" name="titleBarMainHLayout">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum> <enum>QLayout::SetMaximumSize</enum>
</property> </property>
@ -600,7 +772,7 @@ border-image: url(:/images/closepressed.png)
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Sunken</enum> <enum>QFrame::Sunken</enum>
</property> </property>
<layout class="QHBoxLayout" name="hlTitleBarFrame"> <layout class="QHBoxLayout" name="titleBarFrameHLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>2</number>
</property> </property>
@ -670,7 +842,7 @@ border-image: url(:/images/closepressed.png)
</layout> </layout>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer"> <spacer name="titleBarHSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -690,7 +862,7 @@ border-image: url(:/images/closepressed.png)
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QHBoxLayout" name="HL_pluginTitleFrame"> <layout class="QHBoxLayout" name="pluginTitleFrameHLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>2</number>
</property> </property>
@ -706,202 +878,6 @@ border-image: url(:/images/closepressed.png)
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QFrame" name="searchframe">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="5">
<widget class="QToolButton" name="searchButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/find.png</normaloff>:/images/find.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QToolButton" name="notifyButton">
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/chat_red24.png</normaloff>:/images/chat_red24.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QToolButton" name="searchAfter">
<property name="minimumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="LineEditClear" name="leSearch"/>
</item>
<item row="0" column="4">
<widget class="QToolButton" name="searchBefore">
<property name="minimumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>14</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QToolButton" name="markButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/highlight.png</normaloff>:/images/highlight.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -1033,17 +1009,6 @@ border-image: url(:/images/closepressed.png)
<string>Choose color</string> <string>Choose color</string>
</property> </property>
</action> </action>
<action name="actionSearch_History">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Display Search Box</string>
</property>
<property name="toolTip">
<string>Search Box</string>
</property>
</action>
<action name="actionQuote"> <action name="actionQuote">
<property name="text"> <property name="text">
<string>Quote</string> <string>Quote</string>
@ -1099,8 +1064,8 @@ border-image: url(:/images/closepressed.png)
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../images.qrc"/>
<include location="../emojione.qrc"/> <include location="../emojione.qrc"/>
<include location="../images.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

View File

@ -262,7 +262,11 @@ bool GxsIdDetails::process(const RsGxsId &id, GxsIdDetailsCallbackFunction callb
if(it != mInstance->mPendingData.end()) if(it != mInstance->mPendingData.end())
{ {
mInstance->connectObject_locked(object, false); mInstance->connectObject_locked(object, false);
mInstance->mPendingData.erase(it) ;
if(mInstance->mPendingDataIterator == it)
mInstance->mPendingDataIterator = mInstance->mPendingData.erase(it) ;
else
mInstance->mPendingData.erase(it) ;
} }
/* Connect signal "destroy" */ /* Connect signal "destroy" */

View File

@ -130,7 +130,6 @@ ChatPage::save(QString &/*errmsg*/)
Settings->setChatSendMessageWithCtrlReturn(ui.sendMessageWithCtrlReturn->isChecked()); Settings->setChatSendMessageWithCtrlReturn(ui.sendMessageWithCtrlReturn->isChecked());
Settings->setChatSearchShowBarByDefault(ui.cbSearch_ShowBar->isChecked());
Settings->setChatSearchCharToStartSearch(ui.sbSearch_CharToStart->value()); Settings->setChatSearchCharToStartSearch(ui.sbSearch_CharToStart->value());
Settings->setChatSearchCaseSensitively(ui.cbSearch_CaseSensitively->isChecked()); Settings->setChatSearchCaseSensitively(ui.cbSearch_CaseSensitively->isChecked());
Settings->setChatSearchWholeWords(ui.cbSearch_WholeWords->isChecked()); Settings->setChatSearchWholeWords(ui.cbSearch_WholeWords->isChecked());
@ -238,7 +237,6 @@ ChatPage::load()
ui.sendMessageWithCtrlReturn->setChecked(Settings->getChatSendMessageWithCtrlReturn()); ui.sendMessageWithCtrlReturn->setChecked(Settings->getChatSendMessageWithCtrlReturn());
ui.cbSearch_ShowBar->setChecked(Settings->getChatSearchShowBarByDefault());
ui.sbSearch_CharToStart->setValue(Settings->getChatSearchCharToStartSearch()); ui.sbSearch_CharToStart->setValue(Settings->getChatSearchCharToStartSearch());
ui.cbSearch_CaseSensitively->setChecked(Settings->getChatSearchCaseSensitively()); ui.cbSearch_CaseSensitively->setChecked(Settings->getChatSearchCaseSensitively());
ui.cbSearch_WholeWords->setChecked(Settings->getChatSearchWholeWords()); ui.cbSearch_WholeWords->setChecked(Settings->getChatSearchWholeWords());

View File

@ -512,16 +512,6 @@ void RshareSettings::setChatSendMessageWithCtrlReturn(bool bValue)
setValueToGroup("Chat", "SendMessageWithCtrlReturn", bValue); setValueToGroup("Chat", "SendMessageWithCtrlReturn", bValue);
} }
bool RshareSettings::getChatSearchShowBarByDefault()
{
return valueFromGroup("Chat", "SearchShowBarByDefault", false).toBool();
}
void RshareSettings::setChatSearchShowBarByDefault(bool bValue)
{
setValueToGroup("Chat", "SearchShowBarByDefault", bValue);
}
void RshareSettings::setChatSearchCharToStartSearch(int iValue) void RshareSettings::setChatSearchCharToStartSearch(int iValue)
{ {
setValueToGroup("Chat", "SearchCharToStartSearch", iValue); setValueToGroup("Chat", "SearchCharToStartSearch", iValue);

View File

@ -209,9 +209,6 @@ public:
bool getChatSendMessageWithCtrlReturn(); bool getChatSendMessageWithCtrlReturn();
void setChatSendMessageWithCtrlReturn(bool bValue); void setChatSendMessageWithCtrlReturn(bool bValue);
bool getChatSearchShowBarByDefault();
void setChatSearchShowBarByDefault(bool bValue);
void setChatSearchCharToStartSearch(int iValue); void setChatSearchCharToStartSearch(int iValue);
int getChatSearchCharToStartSearch(); int getChatSearchCharToStartSearch();