#include <QtGui/QWidget>
#include <QtGui/QHBoxLayout>
#include <QtGui/QMessageBox>
+#include <QtGui/QDialogButtonBox>
+#include <QtGui/QTextEdit>
+#include <QtCore/QDebug>
#include <QMaemo5InformationBox>
-#include <QDebug>
#include "mainwindow.h"
#include "settingsdialog.h"
#include "searchdialog.h"
#include "daemon.h"
#include "settings.h"
#include "db.h"
+#include "source.h"
+#include "sourcecoreconfig.h"
namespace
{
MainWindow::MainWindow(QWidget* parent): QMainWindow(parent),
searchResults_(0), settingsDialog_(0), running_(false),
-toggleButton_(0), searchDialog_(0), aboutDialog_(0)
+toggleButton_(0), searchDialog_(0), aboutDialog_(0), warning_(0)
{
setWindowTitle(tr("Jenirok"));
setAttribute(Qt::WA_Maemo5StackedWindow);
void MainWindow::showSettings()
{
+ if(warning_ && warning_->isVisible())
+ {
+ warning_->hide();
+ }
+
if(!settingsDialog_)
{
settingsDialog_ = new SettingsDialog(this);
}
else
{
+ if(Settings::instance()->getConnectionType() == Settings::ALWAYS_ASK)
+ {
+ if(!warning_)
+ {
+ warning_ = new QDialog(this);
+ warning_->setWindowTitle(tr("Unable to start daemon"));
+ QHBoxLayout* warningLayout = new QHBoxLayout;
+ QTextEdit* text = new QTextEdit(tr("Daemon cannot be started because it's not allowed to connect to the Internet. You have to either allow automatic Internet connection in Jenirok settings or in global Maemo settings."));
+ text->setReadOnly(true);
+ QDialogButtonBox* buttons = new QDialogButtonBox;
+ buttons->setOrientation(Qt::Vertical);
+ QPushButton* settingsButton = new QPushButton(tr("Open settings"));
+ connect(settingsButton, SIGNAL(pressed()), this, SLOT(showSettings()));
+ QPushButton* okButton = new QPushButton(tr("Close"));
+ connect(okButton, SIGNAL(pressed()), warning_, SLOT(hide()));
+ buttons->addButton(settingsButton, QDialogButtonBox::YesRole);
+ buttons->addButton(okButton, QDialogButtonBox::AcceptRole);
+ warningLayout->addWidget(text);
+ warningLayout->addWidget(buttons);
+ warning_->setLayout(warningLayout);
+ }
+
+ warning_->show();
+
+ return;
+ }
+
readyText = tr("Daemon was successfully started.");
failText = tr("Unable to start daemon.");
buttonText = tr("Stop daemon");
void MainWindow::openSearch()
{
- DB::connect();
+ Source::SourceId sourceId = Source::stringToId(Settings::instance()->get("source"));
+ SourceCoreConfig* config = SourceCoreConfig::getCoreConfig(sourceId);
- QString username = Settings::instance()->get("eniro_username");
- QString password = Settings::instance()->get("eniro_password");
+ Q_ASSERT(config != 0);
- DB::disconnect();
+ bool readyToSearch = config->readyToSearch();
+ delete config;
- if(username.isEmpty() || password.isEmpty())
+ if(!readyToSearch)
{
- QMessageBox::information(this, tr("Info"), tr("You need to set Eniro login details in settings before using this feature."));
+ QMessageBox::information(this, tr("Info"), tr("You need to set login details or other options in settings before using this feature."));
return;
}
if(!searchDialog_)
{
searchDialog_ = new SearchDialog(this);
- connect(searchDialog_, SIGNAL(search(SearchDialog::SearchDetails&)), this, SLOT(handleSearch(SearchDialog::SearchDetails&)));
+ connect(searchDialog_, SIGNAL(search(SearchDialog::SearchDetails&)),
+ this, SLOT(handleSearch(SearchDialog::SearchDetails&)));
}
searchDialog_->show();
void MainWindow::showAbout()
{
- if(!aboutDialog_)
- {
- aboutDialog_ = new AboutDialog(this);
- }
+ if(!aboutDialog_)
+ {
+ aboutDialog_ = new AboutDialog(this);
+ }
- aboutDialog_->show();
+ aboutDialog_->show();
}