//-------------------------------------------------------------------------- MainWindow::MainWindow() : settings(new Settings(this)), scanner(new Scanner(this)), engine(new SearchEngine(this)), mainMenu(new MainMenu(this)), status(new StatusBar(this)), stack(new QStackedWidget(this)), settingsDialog(new SettingsDialog(this)) { // Set up window widgets setWindowTitle(tr("Vaultaire")); setWindowIcon(QIcon(":/vaultaire.svg")); setMenuBar(mainMenu); setStatusBar(status); setCentralWidget(stack); // Connect signals to show scanning in-progress in status bar connect(scanner, SIGNAL(started()), status, SLOT(startBusyIndicator())); connect(scanner, SIGNAL(started()), this, SLOT(showScanningMessage())); connect(scanner, SIGNAL(finished(Scanner::ScanResult)), status, SLOT(stopBusyIndicator())); connect(scanner, SIGNAL(finished(Scanner::ScanResult)), status, SLOT(clearMessage())); // Connect signals to show search in-progress in status bar connect(engine, SIGNAL(started()), status, SLOT(startBusyIndicator())); connect(engine, SIGNAL(finished(QStringList)), status, SLOT(stopBusyIndicator())); // Create application widgets scanView = new ScanView(scanner, this); browser = new LibraryBrowser(this); search = new SearchView(engine, this); stack->addWidget(scanView); stack->addWidget(browser); stack->addWidget(search); // Connect menu signals connect(mainMenu, SIGNAL(scanNewFile()), this, SLOT(showScanForm())); connect(mainMenu, SIGNAL(browseFiles()), this, SLOT(showFileBrowser())); connect(mainMenu, SIGNAL(findFile()), this, SLOT(showSearchForm())); connect(mainMenu, SIGNAL(showAboutInfo()), this, SLOT(about())); connect(mainMenu, SIGNAL(quit()), this, SLOT(close())); connect(mainMenu, SIGNAL(editSettings()), settingsDialog, SLOT(show())); readSettings(); }
void EmailAccountWizardAccountPage::startFutureWatcher() { Q_D(EmailAccountWizardAccountPage); QString emailAddress = field(kFieldEmailAddress).toString(); Q_ASSERT(!emailAddress.isEmpty()); if (emailAddress.isEmpty()) return; int index = emailAddress.indexOf('@'); Q_ASSERT(index > 0); if (index < 1) return; QString domain = emailAddress.mid(index + 1); Q_ASSERT(!domain.isEmpty()); if (domain.isEmpty()) return; startBusyIndicator(); disableButtons(); QFuture<SmartList<ServiceProviderInfo*>*> future = QtConcurrent::run( this, &EmailAccountWizardAccountPage::enumerateServiceProviders, QString(domain)); ForgettableWatcherType* futureWatcher = new ForgettableWatcherType(); connect(futureWatcher, SIGNAL(finished()), this, SLOT(enumerationFinished())); futureWatcher->setFuture(future); d->m_futureWatcher = futureWatcher; d->m_futureStarted = true; }