void HistoryMessagesTab::createGui() { TimelinePopupMenu = new QMenu(this); TimelinePopupMenu->addAction(KaduIcon("kadu_icons/clear-history").icon(), tr("&Remove entries"), this, SLOT(removeEntries())); QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(2); Splitter = new QSplitter(Qt::Horizontal, this); FilteredView = new FilteredTreeView(FilteredTreeView::FilterAtTop, Splitter); FilteredView->filterWidget()->setAutoVisibility(false); FilteredView->filterWidget()->setLabel(tr("Filter") + ":"); TalkableTree = new TalkableTreeView(FilteredView); TalkableTree->setAlternatingRowColors(true); TalkableTree->setContextMenuEnabled(true); TalkableTree->setContextMenuPolicy(Qt::CustomContextMenu); TalkableTree->setUseConfigurationColors(true); TalkableTree->delegateConfiguration().setShowMessagePixmap(false); QString style; style.append("QTreeView::branch:has-siblings:!adjoins-item { border-image: none; image: none }"); style.append("QTreeView::branch:has-siblings:adjoins-item { border-image: none; image: none }"); style.append("QTreeView::branch:has-childres:!has-siblings:adjoins-item { border-image: none; image: none }"); TalkableTree->setStyleSheet(style); TalkableTree->viewport()->setStyleSheet(style); connect(TalkableTree, SIGNAL(currentChanged(Talkable)), this, SLOT(currentTalkableChanged(Talkable))); connect(TalkableTree, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showTalkablePopupMenu())); FilteredView->setView(TalkableTree); TimelineView = new TimelineChatMessagesView(Splitter); TimelineView->searchBar()->setAutoVisibility(false); TimelineView->searchBar()->setSearchWidget(this); TimelineView->timeline()->setContextMenuPolicy(Qt::CustomContextMenu); connect(TimelineView->timeline(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showTimelinePopupMenu())); connect(timelineView(), SIGNAL(currentDateChanged()), this, SLOT(currentDateChanged())); QList<int> sizes; sizes.append(150); sizes.append(300); Splitter->setSizes(sizes); layout->addWidget(Splitter); setFocusProxy(FilteredView->filterWidget()); }
void SearchTab::createGui() { QVBoxLayout *layout = new QVBoxLayout(this); layout->setMargin(2); layout->setSpacing(0); Splitter = new QSplitter(Qt::Horizontal, this); layout->addWidget(Splitter); QWidget *queryWidget = new QWidget(Splitter); QVBoxLayout *queryLayout = new QVBoxLayout(queryWidget); queryLayout->setMargin(3); QWidget *queryFormWidget = new QWidget(queryWidget); queryLayout->addWidget(queryFormWidget); QFormLayout *queryFormLayout = new QFormLayout(queryFormWidget); queryFormLayout->setLabelAlignment(Qt::AlignLeft | Qt::AlignHCenter); queryFormLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); queryFormLayout->setMargin(0); Query = new QLineEdit(queryFormWidget); Query->setMinimumWidth(200); queryFormLayout->addRow(tr("Search for:"), Query); connect(Query, SIGNAL(returnPressed()), this, SLOT(performSearch())); SearchInChats = new QRadioButton(tr("Chats"), queryFormWidget); SearchInChats->setChecked(true); SelectChat = m_pluginInjectedFactory->makeInjected<HistoryTalkableComboBox>(queryFormWidget); SelectChat->setAllLabel(tr(" - All chats - ")); SelectChat->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); queryFormLayout->addRow(SearchInChats, SelectChat); SearchInStatuses = new QRadioButton(tr("Statuses"), queryFormWidget); SelectStatusBuddy = m_pluginInjectedFactory->makeInjected<HistoryTalkableComboBox>(queryFormWidget); SelectStatusBuddy->setAllLabel(tr(" - All buddies - ")); SelectStatusBuddy->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); SelectStatusBuddy->setEnabled(false); queryFormLayout->addRow(SearchInStatuses, SelectStatusBuddy); SearchInSmses = new QRadioButton(tr("Smses"), queryFormWidget); SelectSmsRecipient = m_pluginInjectedFactory->makeInjected<HistoryTalkableComboBox>(queryFormWidget); SelectSmsRecipient->setAllLabel(tr(" - All recipients - ")); SelectSmsRecipient->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); SelectSmsRecipient->setEnabled(false); queryFormLayout->addRow(SearchInSmses, SelectSmsRecipient); QButtonGroup *kindRadioGroup = new QButtonGroup(queryFormWidget); kindRadioGroup->addButton(SearchInChats); kindRadioGroup->addButton(SearchInStatuses); kindRadioGroup->addButton(SearchInSmses); connect(kindRadioGroup, SIGNAL(buttonReleased(QAbstractButton*)), this, SLOT(kindChanged(QAbstractButton*))); SearchByDate = new QCheckBox(tr("By date"), queryFormWidget); SearchByDate->setCheckState(Qt::Unchecked); QWidget *dateWidget = new QWidget(queryFormWidget); QHBoxLayout *dateLayout = new QHBoxLayout(dateWidget); FromDate = new QDateEdit(dateWidget); FromDate->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); FromDate->setCalendarPopup(true); FromDate->setDate(QDate::currentDate().addDays(-7)); dateLayout->addWidget(FromDate); dateLayout->addWidget(new QLabel(tr("to"), dateWidget)); ToDate = new QDateEdit(dateWidget); ToDate->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); ToDate->setCalendarPopup(true); ToDate->setDate(QDate::currentDate()); dateLayout->addWidget(ToDate); connect(FromDate, SIGNAL(dateChanged(QDate)), this, SLOT(fromDateChanged(QDate))); connect(ToDate, SIGNAL(dateChanged(QDate)), this, SLOT(toDateChanged(QDate))); connect(SearchByDate, SIGNAL(toggled(bool)), dateWidget, SLOT(setEnabled(bool))); dateWidget->setEnabled(false); queryFormLayout->addRow(SearchByDate, dateWidget); QPushButton *searchButton = new QPushButton(tr("Search"), queryFormWidget); searchButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); queryFormLayout->addRow(0, searchButton); connect(searchButton, SIGNAL(clicked()), this, SLOT(performSearch())); TimelineView = m_pluginInjectedFactory->makeInjected<TimelineChatMessagesView>(Splitter); TimelineView->setTalkableVisible(true); TimelineView->setTitleVisible(true); TimelineView->setLengthHeader(tr("Found")); connect(TimelineView, SIGNAL(currentDateChanged()), this, SLOT(currentDateChanged())); connect(TimelineView, SIGNAL(messagesDisplayed()), this, SLOT(messagesDisplayed())); TimelineView->searchBar()->setAutoVisibility(false); TimelineView->searchBar()->setSearchWidget(this); connect(TimelineView->searchBar(), SIGNAL(clearSearch()), this, SLOT(clearSelect())); setFocusProxy(Query); }