feat: Search Online (IMAP) + real Calendar/Contacts UI + iCloud auth wiring
Search Online:
- Synchronizer::searchOnline(folderId, query) virtual with default {}
- ImapSynchronizer: SELECT + UID SEARCH (Subject/From/To/TEXT) + fetch results
- MailService::searchOnline() + onlineSearchFinished/onlineSearchError signals
- MainMainWindow::onOnlineSearchRequested shows real server results
Calendar:
- Real QCalendarWidget view with per-day agenda from local mails
- New MailItemDao::findByDateRange(start, end)
Contacts:
- QTableWidget aggregating addresses from all local mails
- Regex email extraction + live search filter
iCloud/AccountService:
- Wire IcloudAuthenticator into AccountService::createAuthenticator
This commit is contained in:
@@ -193,6 +193,7 @@ QWidget* AccountSetupDialog::createProviderPage()
|
||||
|
||||
lay->addWidget(makeRadio("🔴 Google / Gmail", "OAuth2 seguro", 0));
|
||||
lay->addWidget(makeRadio("🔵 Microsoft / Outlook", "OAuth2 seguro", 1));
|
||||
lay->addWidget(makeRadio("☁️ iCloud / Apple", "OAuth2 seguro (Apple ID)", 3));
|
||||
lay->addWidget(makeRadio("⚙️ IMAP / SMTP", "Servidor personalizado", 2));
|
||||
|
||||
m_providerGroup->button(0)->setChecked(true);
|
||||
@@ -430,6 +431,9 @@ void AccountSetupDialog::onNextClicked()
|
||||
if (m_selectedProvider == 2) {
|
||||
// Launch ConnectionWizard for IMAP/POP3 setup
|
||||
launchConnectionWizard();
|
||||
} else if (m_selectedProvider == 3) {
|
||||
// iCloud - use OAuth2 flow like Gmail/Outlook
|
||||
goToPage(PageOAuth);
|
||||
} else {
|
||||
// Update OAuth page subtitle based on provider
|
||||
goToPage(PageOAuth);
|
||||
@@ -486,7 +490,11 @@ void AccountSetupDialog::startOAuthAuthentication()
|
||||
m_oauthStatusLabel->setText("Abriendo navegador… Completa el inicio de sesión allí.");
|
||||
m_oauthStatusLabel->setStyleSheet("font-size: 12px; color: #0071e3; font-weight: 600;");
|
||||
|
||||
QString provider = (m_selectedProvider == 0) ? "gmail" : "outlook";
|
||||
QString provider;
|
||||
if (m_selectedProvider == 0) provider = "gmail";
|
||||
else if (m_selectedProvider == 1) provider = "outlook";
|
||||
else if (m_selectedProvider == 3) provider = "icloud";
|
||||
else provider = "gmail"; // fallback
|
||||
|
||||
// Start authentication via AccountService (opens browser)
|
||||
m_accountService->startAuthentication(email, provider);
|
||||
|
||||
Reference in New Issue
Block a user