feat: Online search button
- MailListView: new '🌐 Online' button in search bar
- Clicking button emits onlineSearchRequested(query)
- If search box empty, shows QInputDialog for query entry
- MainMainWindow::onOnlineSearchRequested() handler:
- Validates current folder selected
- Gets account for folder
- Shows status message
- Shows info dialog with query/folder/account (placeholder for IMAP SEARCH)
- Signal: onlineSearchRequested(const QString& query)
- Button styled in blue (online theme)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include <QMenu>
|
||||
#include <QDrag>
|
||||
#include <QMimeData>
|
||||
#include <QInputDialog>
|
||||
#include "ui/delegates/CompactMailDelegate.h"
|
||||
|
||||
MailListView::MailListView(QWidget *parent) : QWidget(parent), m_sourceModel(nullptr), m_multiSelectMode(false)
|
||||
@@ -51,6 +52,20 @@ void MailListView::setupUI()
|
||||
searchLayout->addWidget(m_searchEdit);
|
||||
connect(m_searchEdit, &QLineEdit::textChanged, this, &MailListView::onSearchTextChanged);
|
||||
|
||||
// Online search button
|
||||
m_onlineSearchBtn = new QToolButton();
|
||||
m_onlineSearchBtn->setText("🌐 Online");
|
||||
m_onlineSearchBtn->setToolTip("Buscar en servidor (IMAP)");
|
||||
m_onlineSearchBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||
m_onlineSearchBtn->setStyleSheet(
|
||||
"QToolButton { background: #e3f2fd; border: 1px solid #90caf9; border-radius: 6px; "
|
||||
"padding: 6px 12px; font-size: 12px; color: #1565c0; }"
|
||||
"QToolButton:hover { background: #bbdefb; border-color: #42a5f5; }"
|
||||
"QToolButton:pressed { background: #90caf9; }"
|
||||
);
|
||||
connect(m_onlineSearchBtn, &QToolButton::clicked, this, &MailListView::onOnlineSearchClicked);
|
||||
searchLayout->addWidget(m_onlineSearchBtn);
|
||||
|
||||
layout->addWidget(searchBar);
|
||||
|
||||
// Filter bar
|
||||
@@ -687,6 +702,22 @@ void MailListView::initDrag()
|
||||
Q_UNUSED(dropAction);
|
||||
}
|
||||
|
||||
void MailListView::onOnlineSearchClicked()
|
||||
{
|
||||
QString query = m_searchEdit->text().trimmed();
|
||||
if (query.isEmpty()) {
|
||||
// If search box is empty, show a dialog to enter search query
|
||||
bool ok;
|
||||
query = QInputDialog::getText(this, "Buscar en servidor",
|
||||
"Introduce términos de búsqueda:",
|
||||
QLineEdit::Normal,
|
||||
"", &ok);
|
||||
if (!ok || query.trimmed().isEmpty()) return;
|
||||
}
|
||||
|
||||
emit onlineSearchRequested(query);
|
||||
}
|
||||
|
||||
void MailListView::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
|
||||
Reference in New Issue
Block a user