void SoundCloudSearchPlugin::onRequestFinished() { if (m_request->status() == QSoundCloud::ResourcesRequest::Ready) { SearchResultList results; const QVariantMap result = m_request->result().toMap(); const QVariantList list = result.value("collection").toList(); foreach (const QVariant &v, list) { const QVariantMap item = v.toMap(); const QString title = item.value("title").toString(); const QString url = item.value("permalink_url").toString(); const QString thumbnailUrl = item.value("artwork_url").toString(); const QString date = QDateTime::fromString(item.value("created_at").toString(), "yyyy/MM/dd HH:mm:ss +0000").toString("dd MMM yyyy"); const int secs = item.value("duration", 1000).toInt() / 1000; const QString duration = (secs > 0 ? QString("%1:%2").arg(secs / 60, 2, 10, QChar('0')) .arg(secs % 60, 2, 10, QChar('0')) : QString("--:--")); const QString description = item.value("description").toString(); const QString html = HTML.arg(url).arg(thumbnailUrl.section("-", 0, -2)).arg(date).arg(duration) .arg(description); results << SearchResult(title, html, url); } const QString next = result.value("next_href").toString(); if (!next.isEmpty()) { QVariantMap params; params["path"] = next.mid(next.lastIndexOf("/")); emit searchCompleted(results, params); } else { emit searchCompleted(results); } }
MailMessageClient::MailMessageClient(QObject* parent) : QObject(parent), adaptor(new QtopiaIpcAdaptor("QPE/QMailMessageServer", this)) { QtopiaIpcAdaptor::connect(this, SIGNAL(statusChanged(QMailMessageServer::Operation,QString,QString)), adaptor, MESSAGE(statusChanged(QMailMessageServer::Operation, QString, QString))); QtopiaIpcAdaptor::connect(this, SIGNAL(retrievalTotal(uint)), adaptor, MESSAGE(retrievalTotal(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(retrievalProgress(uint)), adaptor, MESSAGE(retrievalProgress(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(sendTotal(uint)), adaptor, MESSAGE(sendTotal(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(sendProgress(uint)), adaptor, MESSAGE(sendProgress(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(sendCompleted()), adaptor, MESSAGE(sendCompleted())); QtopiaIpcAdaptor::connect(this, SIGNAL(messageSent(QMailMessageId)), adaptor, MESSAGE(messageSent(QMailMessageId))); QtopiaIpcAdaptor::connect(this, SIGNAL(errorOccurred(QMailAccountId,QString,int)), adaptor, MESSAGE(errorOccurred(QMailAccountId, QString, int))); QtopiaIpcAdaptor::connect(this, SIGNAL(newCountChanged(QMailMessageCountMap)), adaptor, MESSAGE(newCountChanged(QMailMessageCountMap))); QtopiaIpcAdaptor::connect(this, SIGNAL(partialMessageRetrieved(QMailMessageMetaData)), adaptor, MESSAGE(partialMessageRetrieved(QMailMessageMetaData))); QtopiaIpcAdaptor::connect(this, SIGNAL(messageRetrieved(QMailMessageMetaData)), adaptor, MESSAGE(messageRetrieved(QMailMessageMetaData))); QtopiaIpcAdaptor::connect(this, SIGNAL(partialRetrievalCompleted()), adaptor, MESSAGE(partialRetrievalCompleted())); QtopiaIpcAdaptor::connect(this, SIGNAL(retrievalCompleted()), adaptor, MESSAGE(retrievalCompleted())); QtopiaIpcAdaptor::connect(this, SIGNAL(searchTotal(uint)), adaptor, MESSAGE(searchTotal(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(searchProgress(uint)), adaptor, MESSAGE(searchProgress(uint))); QtopiaIpcAdaptor::connect(this, SIGNAL(matchingMessageIds(QMailMessageIdList)), adaptor, MESSAGE(matchingMessageIds(QMailMessageIdList))); QtopiaIpcAdaptor::connect(this, SIGNAL(searchCompleted()), adaptor, MESSAGE(searchCompleted())); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(cancelSearch()), this, SIGNAL(cancelSearch())); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(send(QMailMessageIdList)), this, SIGNAL(send(QMailMessageIdList))); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(retrieve(QMailAccountId, bool)), this, SIGNAL(retrieve(QMailAccountId, bool))); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(completeRetrieval(QMailMessageIdList)), this, SIGNAL(completeRetrieval(QMailMessageIdList))); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(cancelTransfer()), this, SIGNAL(cancelTransfer())); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(acknowledgeNewMessages(QMailMessageTypeList)), this, SIGNAL(acknowledgeNewMessages(QMailMessageTypeList))); QtopiaIpcAdaptor::connect(adaptor, MESSAGE(searchMessages(QMailMessageKey, QString)), this, SIGNAL(searchMessages(QMailMessageKey, QString))); }
SearchChannelRequest::SearchChannelRequest(FindChannelFrame *parent, qint32 pageNumber, qint32 recordsPerPage, QString value) : ServerRequest() { connect(this, SIGNAL(searchCompleted(Fault, ChannelSearchResult)), parent, SLOT(onSearchContacts(Fault, ChannelSearchResult))); SERVER->searchChannel(CALLBACK(this, onSearchResult, ChannelSearchResult), pageNumber, recordsPerPage, value); }
void FilesystemContentLister::startSearch() { QMimeDatabase mimeDb; bool useThis(false); qDebug() << "Searching in" << d->locations; Q_FOREACH(const QString& folder, d->locations) { QDirIterator it(folder, QDirIterator::Subdirectories); while (it.hasNext()) { QString filePath = it.next(); QFileInfo info(filePath); if(info.isDir()) { qApp->processEvents(); continue; } useThis = false; QString mimetype = mimeDb.mimeTypeForFile(filePath, QMimeDatabase::MatchExtension).name(); // qDebug() << useThis << mimetype << filePath; Q_FOREACH(const QString& type, d->mimetypes) { if(type == mimetype) { useThis = true; break; } } if(useThis) { QVariantHash metadata; metadata["created"] = info.created(); KFileMetaData::UserMetaData data(filePath); if (data.hasAttribute("peruse.currentPage")) { int currentPage = data.attribute("peruse.currentPage").toInt(); metadata["currentPage"] = QVariant::fromValue<int>(currentPage); } if (data.hasAttribute("peruse.totalPages")) { int totalPages = data.attribute("peruse.totalPages").toInt(); metadata["totalPages"] = QVariant::fromValue<int>(totalPages); } emit fileFound(filePath, metadata); } qApp->processEvents(); } } // This ensures that, should we decide to search more stuff later, we can do so granularly d->locations.clear(); // Not entirely happy about this, but it makes things not break... // Previously, the welcome page in Peruse would end up unpopulated because a signal // was unreceived from the main window upon search completion (and consequently // application readiness) QTimer::singleShot(0, this, SIGNAL(searchCompleted())); }
void SearchWidget::clearPressed() { if (active_) { searchCompleted(); search_edit_->setFocus(); } else { emit nonActiveButtonPressed(); } }
ContentList::ContentList(QObject* parent) : QAbstractListModel(parent) , d(new Private) { #ifdef BALOO_FOUND BalooContentLister* baloo = new BalooContentLister(this); if(baloo->balooEnabled()) { d->actualContentList = baloo; qDebug() << "Baloo support enabled"; } else { baloo->deleteLater(); d->actualContentList = new FilesystemContentLister(this); qDebug() << "Baloo is disabled for the system, use the filesystem scraper"; } #else d->actualContentList = new FilesystemContentLister(this); #endif connect(d->actualContentList, SIGNAL(fileFound(QString,QVariantHash)), this, SLOT(fileFound(QString,QVariantHash))); connect(d->actualContentList, SIGNAL(searchCompleted()), this, SIGNAL(searchCompleted())); }
MainPage::MainPage(QWidget* parent) : QWidget(parent) , search_widget_(new SearchWidget(8, false, this)) , contact_dialog_(new ContactDialog(this)) , video_window_(new VideoWindow()) , video_panel_(new CallPanelMain(this)) , pages_(new WidgetsNavigator(this)) , search_contacts_(nullptr) , profile_settings_(new ProfileSettingsWidget(this)) , general_settings_(new GeneralSettingsWidget(this)) , noContactsYetSuggestions_(nullptr) , contact_list_widget_(new ContactList(this, Logic::MembersWidgetRegim::CONTACT_LIST, NULL)) , add_contact_menu_(0) { connect(&Utils::InterConnector::instance(), SIGNAL(showNoContactsYetSuggestions()), this, SLOT(showNoContactsYetSuggestions())); connect(&Utils::InterConnector::instance(), SIGNAL(hideNoContactsYetSuggestions()), this, SLOT(hideNoContactsYetSuggestions())); if (this->objectName().isEmpty()) this->setObjectName(QStringLiteral("main_page")); this->resize(400, 300); this->setProperty("Invisible", QVariant(true)); horizontal_layout_ = new QHBoxLayout(this); horizontal_layout_->setSpacing(0); horizontal_layout_->setObjectName(QStringLiteral("horizontalLayout")); horizontal_layout_->setContentsMargins(0, 0, 0, 0); QMetaObject::connectSlotsByName(this); QHBoxLayout* originalLayout = qobject_cast<QHBoxLayout*>(layout()); QVBoxLayout* contactsLayout = new QVBoxLayout(); contactsLayout->setContentsMargins(0, 0, 0, 0); contactsLayout->setSpacing(0); assert(video_panel_); if (video_panel_) { contactsLayout->addWidget(video_panel_); video_panel_->hide(); } contactsLayout->addWidget(search_widget_); contactsLayout->addWidget(contact_list_widget_); QSpacerItem* contactsLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum); contactsLayout->addSpacerItem(contactsLayoutSpacer); pages_layout_ = new QVBoxLayout(); pages_layout_->setContentsMargins(0, 0, 0, 0); pages_layout_->setSpacing(0); pages_layout_->addWidget(pages_); { auto pc = pages_->count(); pages_->addWidget(contact_dialog_); pages_->addWidget(profile_settings_); pages_->addWidget(general_settings_); if (!pc) pages_->push(contact_dialog_); } originalLayout->addLayout(contactsLayout); originalLayout->addLayout(pages_layout_); QSpacerItem* originalLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum); originalLayout->addSpacerItem(originalLayoutSpacer); originalLayout->setAlignment(Qt::AlignLeft); setFocus(); connect(contact_list_widget_, SIGNAL(itemSelected(QString)), contact_dialog_, SLOT(onContactSelected(QString)), Qt::QueuedConnection); connect(contact_dialog_, SIGNAL(sendMessage(QString)), contact_list_widget_, SLOT(onSendMessage(QString)), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(itemSelected(QString)), this, SLOT(onContactSelected(QString)), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(addContactClicked()), this, SLOT(onAddContactClicked()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsShow(QString)), this, SLOT(onProfileSettingsShow(QString)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsShow(int)), this, SLOT(onGeneralSettingsShow(int)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(makeSearchWidgetVisible(bool)), search_widget_, SLOT(setVisible(bool)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(popPagesToRoot()), pages_, SLOT(poproot()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsDoMessage(QString)), contact_list_widget_, SLOT(select(QString)), Qt::QueuedConnection); connect(search_widget_, SIGNAL(searchBegin()), this, SLOT(searchBegin()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(searchEnd()), this, SLOT(searchEnd()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(search(QString)), Logic::GetSearchModel(), SLOT(searchPatternChanged(QString)), Qt::QueuedConnection); connect(search_widget_, SIGNAL(enterPressed()), contact_list_widget_, SLOT(searchResult()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(upPressed()), contact_list_widget_, SLOT(searchUpPressed()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(downPressed()), contact_list_widget_, SLOT(searchDownPressed()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(nonActiveButtonPressed()), this, SLOT(addButtonClicked()), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(searchEnd()), search_widget_, SLOT(searchCompleted()), Qt::QueuedConnection); connect(Logic::GetContactListModel(), SIGNAL(selectedContactChanged(QString)), Logic::GetMessagesModel(), SLOT(contactChanged(QString)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipShowVideoWindow(bool)), this, SLOT(onVoipShowVideoWindow(bool)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncoming(const std::string&, const std::string&)), this, SLOT(onVoipCallIncoming(const std::string&, const std::string&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), this, SLOT(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallDestroyed(const voip_manager::ContactEx&)), this, SLOT(onVoipCallDestroyed(const voip_manager::ContactEx&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallCreated(const voip_manager::ContactEx&)), this, SLOT(onVoipCallCreated(const voip_manager::ContactEx&)), Qt::DirectConnection); search_widget_->setVisible(!contact_list_widget_->shouldHideSearch()); }
SearchWidget::SearchWidget(int _offset, bool _isWithButton, QWidget* _parent) : QWidget(_parent) { if (this->objectName().isEmpty()) this->setObjectName(QStringLiteral("search_widget")); active_ = false; parent_search_vertical_layout_ = new QVBoxLayout(this); parent_search_vertical_layout_->setContentsMargins(0, 0, 0, 0); parent_search_vertical_layout_->setSpacing(0); horizontal_search_layout_ = new QHBoxLayout(); horizontal_search_layout_->setContentsMargins(0, 0, 0, Utils::scale_value(0)); parent_search_vertical_layout_->addLayout(horizontal_search_layout_); horizontal_search_layout_->addSpacing(Utils::scale_value(_offset - 8)); search_icon_ = new Ui::CustomButton(this, ":/resources/contr_search_100.png"); search_icon_->setOffsets(Utils::scale_value(8), Utils::scale_value(0)); search_icon_->setActiveImage(":/resources/contr_search_100_active.png"); search_icon_->setFixedWidth(Utils::scale_value(34)); search_icon_->setFixedHeight(Utils::scale_value(53)); search_icon_->setStyleSheet("border: none;"); horizontal_search_layout_->addWidget(search_icon_); parent_widget_ = new QWidget(this); search_vertical_layout_ = new QVBoxLayout(parent_widget_); search_vertical_layout_->setContentsMargins(0, Utils::scale_value(5), 0, 0); search_edit_ = new LineEditEx(this); search_edit_->setProperty("SearchEdit", true); search_edit_->setPlaceholderText(QT_TRANSLATE_NOOP("search_widget", "Search")); search_edit_->setContentsMargins(Utils::scale_value(6), 0, Utils::scale_value(22), 0); search_edit_->setAttribute(Qt::WA_MacShowFocusRect, false); search_edit_->setStyleSheet(QString("background-color: transparent")); Testing::setAccessibleName(search_edit_, "search_edit"); search_vertical_layout_->addSpacing(Utils::scale_value(0)); search_vertical_layout_->addWidget(search_edit_); horizontal_search_layout_->addWidget(parent_widget_); search_edit_icon_ = new CustomButton(this, ":/resources/contr_compose_100.png"); search_edit_icon_->setOffsets(Utils::scale_value(0), Utils::scale_value(0)); search_edit_icon_->setOffsetsForActive(Utils::scale_value(2), Utils::scale_value(0)); search_edit_icon_->setHoverImage(":/resources/contr_compose_100_hover.png"); search_edit_icon_->setActiveImage(":/resources/contr_clear_100.png"); search_edit_icon_->setFixedWidth(Utils::scale_value(50)); search_edit_icon_->setFixedHeight(Utils::scale_value(53)); search_edit_icon_->setCursor(Qt::PointingHandCursor); search_edit_icon_->setFocusPolicy(Qt::NoFocus); search_edit_icon_->setStyleSheet("background-color: transparent;"); Testing::setAccessibleName(search_edit_icon_, "CreateGroupChat"); horizontal_search_layout_->addWidget(search_edit_icon_); horizontal_line_widget_ = new QWidget(this); horizontal_line_widget_->setFixedHeight(Utils::scale_value(1)); horizontal_line_widget_->setStyleSheet(QString("background-color: #dadada;")); parent_search_vertical_layout_->addSpacing(0); widget_2_ = new QWidget(this); horizontal_layout_2_ = new QHBoxLayout(widget_2_); horizontal_layout_2_->setContentsMargins(Utils::scale_value(_isWithButton ? 24 : 16), 0, Utils::scale_value(_isWithButton ? 24 : 60), Utils::scale_value(10)); horizontal_layout_2_->addWidget(horizontal_line_widget_); parent_search_vertical_layout_->addWidget(widget_2_); QMetaObject::connectSlotsByName(this); connect(search_edit_, SIGNAL(textEdited(QString)), this, SLOT(searchChanged(QString)), Qt::QueuedConnection); connect(search_edit_, SIGNAL(clicked()), this, SLOT(searchStarted()), Qt::QueuedConnection); connect(search_edit_, SIGNAL(escapePressed()), this, SLOT(searchCompleted()), Qt::QueuedConnection); connect(search_edit_, SIGNAL(enter()), this, SLOT(editEnterPressed()), Qt::QueuedConnection); connect(search_edit_, SIGNAL(upArrow()), this, SLOT(editUpPressed()), Qt::QueuedConnection); connect(search_edit_, SIGNAL(downArrow()), this, SLOT(editDownPressed()), Qt::QueuedConnection); connect(search_edit_, SIGNAL(focusOut()), this, SLOT(focusedOut()), Qt::QueuedConnection); connect(search_edit_icon_, SIGNAL(clicked()), this, SLOT(clearPressed()), Qt::QueuedConnection); setActive(false); }
MainPage::MainPage(QWidget* parent) : QWidget(parent) , search_widget_(new SearchWidget(false, this)) , contact_dialog_(new ContactDialog(this)) #ifndef STRIP_VOIP , video_window_(nullptr) #else , video_window_(nullptr) #endif //STRIP_VOIP , pages_(new WidgetsNavigator(this)) , search_contacts_(nullptr) , profile_settings_(new ProfileSettingsWidget(this)) , general_settings_(new GeneralSettingsWidget(this)) , live_chats_page_(new LiveChatHome(this)) , themes_settings_(new ThemesSettingsWidget(this)) , noContactsYetSuggestions_(nullptr) , contact_list_widget_(new ContactList(this, Logic::MembersWidgetRegim::CONTACT_LIST, nullptr)) , add_contact_menu_(nullptr) , settings_timer_(new QTimer(this)) , introduceYourselfSuggestions_(nullptr) , needShowIntroduceYourself_(false) , liveChats_(new LiveChats(this)) , login_new_user_(false) , recv_my_info_(false) { connect(&Utils::InterConnector::instance(), &Utils::InterConnector::showPlaceholder, this, &MainPage::showPlaceholder); if (this->objectName().isEmpty()) this->setObjectName(QStringLiteral("main_page")); setStyleSheet(Utils::LoadStyle(":/main_window/main_window.qss", Utils::get_scale_coefficient(), true)); this->resize(400, 300); this->setProperty("Invisible", QVariant(true)); horizontal_layout_ = new QHBoxLayout(this); horizontal_layout_->setSpacing(0); horizontal_layout_->setObjectName(QStringLiteral("horizontalLayout")); horizontal_layout_->setContentsMargins(0, 0, 0, 0); QMetaObject::connectSlotsByName(this); QHBoxLayout* originalLayout = qobject_cast<QHBoxLayout*>(layout()); QVBoxLayout* contactsLayout = new QVBoxLayout(); contactsLayout->setContentsMargins(0, 0, 0, 0); contactsLayout->setSpacing(0); contactsLayout->addWidget(search_widget_); contactsLayout->addWidget(contact_list_widget_); QSpacerItem* contactsLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum); contactsLayout->addSpacerItem(contactsLayoutSpacer); pages_layout_ = new QVBoxLayout(); pages_layout_->setContentsMargins(0, 0, 0, 0); pages_layout_->setSpacing(0); pages_layout_->addWidget(pages_); { auto pc = pages_->count(); pages_->addWidget(contact_dialog_); pages_->addWidget(profile_settings_); pages_->addWidget(general_settings_); pages_->addWidget(live_chats_page_); pages_->addWidget(themes_settings_); if (!pc) pages_->push(contact_dialog_); } originalLayout->addLayout(contactsLayout); originalLayout->addLayout(pages_layout_); QSpacerItem* originalLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum); originalLayout->addSpacerItem(originalLayoutSpacer); originalLayout->setAlignment(Qt::AlignLeft); setFocus(); connect(contact_list_widget_, SIGNAL(itemSelected(QString)), contact_dialog_, SLOT(onContactSelected(QString)), Qt::QueuedConnection); connect(contact_dialog_, SIGNAL(sendMessage(QString)), contact_list_widget_, SLOT(onSendMessage(QString)), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(itemSelected(QString)), this, SLOT(onContactSelected(QString)), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(addContactClicked()), this, SLOT(onAddContactClicked()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsShow(QString)), this, SLOT(onProfileSettingsShow(QString)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(themesSettingsShow(bool,QString)), this, SLOT(onThemesSettingsShow(bool,QString)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsShow(int)), this, SLOT(onGeneralSettingsShow(int)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(liveChatsShow()), this, SLOT(onLiveChatsShow()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(themesSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(attachPhoneBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(attachUinBack()), pages_, SLOT(pop()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(makeSearchWidgetVisible(bool)), search_widget_, SLOT(setVisible(bool)), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(popPagesToRoot()), this, SLOT(popPagesToRoot()), Qt::QueuedConnection); connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsDoMessage(QString)), contact_list_widget_, SLOT(select(QString)), Qt::QueuedConnection); connect(search_widget_, SIGNAL(searchBegin()), this, SLOT(searchBegin()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(searchEnd()), this, SLOT(searchEnd()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(search(QString)), Logic::GetSearchModel(), SLOT(searchPatternChanged(QString)), Qt::QueuedConnection); connect(search_widget_, SIGNAL(enterPressed()), contact_list_widget_, SLOT(searchResult()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(upPressed()), contact_list_widget_, SLOT(searchUpPressed()), Qt::QueuedConnection); connect(search_widget_, SIGNAL(downPressed()), contact_list_widget_, SLOT(searchDownPressed()), Qt::QueuedConnection); connect(contact_list_widget_, SIGNAL(searchEnd()), search_widget_, SLOT(searchCompleted()), Qt::QueuedConnection); connect(Logic::GetContactListModel(), SIGNAL(selectedContactChanged(QString)), Logic::GetMessagesModel(), SLOT(contactChanged(QString)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipShowVideoWindow(bool)), this, SLOT(onVoipShowVideoWindow(bool)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncoming(const std::string&, const std::string&)), this, SLOT(onVoipCallIncoming(const std::string&, const std::string&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), this, SLOT(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallDestroyed(const voip_manager::ContactEx&)), this, SLOT(onVoipCallDestroyed(const voip_manager::ContactEx&)), Qt::DirectConnection); connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallCreated(const voip_manager::ContactEx&)), this, SLOT(onVoipCallCreated(const voip_manager::ContactEx&)), Qt::DirectConnection); search_widget_->setVisible(!contact_list_widget_->shouldHideSearch()); post_stats_with_settings(); QObject::connect(settings_timer_, SIGNAL(timeout()), this, SLOT(post_stats_with_settings())); settings_timer_->start(Ui::period_for_stats_settings_ms); connect(Ui::GetDispatcher(), &core_dispatcher::myInfo, this, &MainPage::myInfo, Qt::UniqueConnection); connect(Ui::GetDispatcher(), &core_dispatcher::login_new_user, this, &MainPage::loginNewUser, Qt::DirectConnection); add_contact_menu_ = new FlatMenu(search_widget_->searchEditIcon()); Utils::ApplyStyle(add_contact_menu_, "QMenu { background-color: #f2f2f2; border:1px solid #cccccc; } " "QMenu::item { padding-left:40dip; background-color:transparent; color:black; padding-top:6dip; padding-bottom:6dip; padding-right:12dip; } " "QMenu::item:selected { background-color:#e2e2e2; } " "QMenu::icon { padding-left:22dip; }" ); add_contact_menu_->addAction(QIcon(Utils::parse_image_name(":/resources/dialog_newchat_100.png")), QT_TRANSLATE_NOOP("contact_list", "New chat"), contact_list_widget_, SLOT(allClicked())); add_contact_menu_->addAction(QIcon(Utils::parse_image_name(":/resources/dialog_newgroup_100.png")), QT_TRANSLATE_NOOP("contact_list", "Create Groupchat"), this, SLOT(createGroupChat())); add_contact_menu_->setExpandDirection(Qt::AlignLeft); add_contact_menu_->stickToIcon(); Utils::ApplyStyle(search_widget_->searchEditIcon(), "QPushButton::menu-indicator { image:none; } QPushButton:pressed { background-color:transparent; }"); search_widget_->searchEditIcon()->setMenu(add_contact_menu_); }