QMultiMap<int, IOptionsDialogWidget *> AccountManager::optionsDialogWidgets(const QString &ANodeId, QWidget *AParent) { QMultiMap<int, IOptionsDialogWidget *> widgets; if (ANodeId.startsWith(OPN_ACCOUNTS)) { QStringList nodeTree = ANodeId.split(".",QString::SkipEmptyParts); if (ANodeId == OPN_ACCOUNTS) { widgets.insertMulti(OHO_ACCOUNTS_ACCOUNTS, FOptionsManager->newOptionsDialogHeader(tr("Accounts"),AParent)); // *** <<< eyeCU <<< *** int flags = 0; if (Options::node(OPV_COMMON_ADVANCED).value().toBool()) flags|=AccountsOptionsWidget::Advanced; if (!FWizardAccount) flags|=AccountsOptionsWidget::NoWizrd; AccountsOptionsWidget *widget = new AccountsOptionsWidget(this, flags, AParent); widgets.insertMulti(OWO_ACCOUNTS_ACCOUNTS, widget); connect(widget, SIGNAL(addAccountLinkActivated(const QString &)), SLOT(onAddAccountLinkActivated(const QString &))); connect(this, SIGNAL(showAccountSettings(QUuid)), widget, SLOT(onSettingsButtonClicked(QUuid))); // *** >>> eyeCU >>> *** widgets.insertMulti(OHO_ACCOUNTS_COMMON, FOptionsManager->newOptionsDialogHeader(tr("Common account settings"),AParent)); QComboBox *resourceCombox = newResourceComboBox(QUuid(),AParent); widgets.insertMulti(OWO_ACCOUNTS_DEFAULTRESOURCE,FOptionsManager->newOptionsDialogWidget(Options::node(OPV_ACCOUNT_DEFAULTRESOURCE),tr("Default resource:"),resourceCombox,AParent)); } else if (nodeTree.count()==3 && nodeTree.at(0)==OPN_ACCOUNTS && nodeTree.at(2)=="Parameters") { OptionsNode options = Options::node(OPV_ACCOUNT_ITEM,nodeTree.at(1)); widgets.insertMulti(OHO_ACCOUNTS_PARAMS_ACCOUNT,FOptionsManager->newOptionsDialogHeader(tr("Account"),AParent)); widgets.insertMulti(OWO_ACCOUNTS_PARAMS_NAME,FOptionsManager->newOptionsDialogWidget(options.node("name"),tr("Name:"),AParent)); // *** <<< eyeCU <<< *** if (!FWizardAccount || Options::node(OPV_COMMON_ADVANCED).value().toBool()) widgets.insertMulti(OWO_ACCOUNTS_PARAMS_STREAM_JID,FOptionsManager->newOptionsDialogWidget(options.node("streamJid"),tr("Jabber ID:"),AParent)); // *** >>> eyeCU >>> *** widgets.insertMulti(OWO_ACCOUNTS_PARAMS_PASSWORD,FOptionsManager->newOptionsDialogWidget(options.node("password"),tr("Password:"******"resource"),tr("Resource:"),resourceCombox,AParent)); } else if (nodeTree.count()==3 && nodeTree.at(0)==OPN_ACCOUNTS && nodeTree.at(2)=="Additional") { OptionsNode options = Options::node(OPV_ACCOUNT_ITEM,nodeTree.at(1)); widgets.insertMulti(OHO_ACCOUNTS_ADDITIONAL_SETTINGS, FOptionsManager->newOptionsDialogHeader(tr("Additional settings"),AParent)); widgets.insertMulti(OWO_ACCOUNTS_ADDITIONAL_REQUIRESECURE,FOptionsManager->newOptionsDialogWidget(options.node("require-encryption"),tr("Require secure connection to server"),AParent)); } } return widgets; }
MainWindow::MainWindow(QWidget* parent) : QWidget(parent) { TimeEntryActivitiesModel someModel; // Position the window to the last place we stored it at. QPoint mainWindowPos(Config::Get().mainWindowPos()); QSize mainWindowSize(Config::Get().mainWindowSize()); if (mainWindowPos != QPoint(0, 0) && mainWindowSize != QSize(0, 0)) setGeometry(QRect(mainWindowPos, mainWindowSize)); // Create and link up the worker object that will load our issues for us. m_dataLoader = new DataLoader(this); connect(m_dataLoader, SIGNAL(progress(int, int)), this, SLOT(onDataLoaderProgress(int, int))); connect(m_dataLoader, SIGNAL(finished()), this, SLOT(onDataLoaderFinished())); // Create the main buttons. m_settingsButton = new QPushButton("Settings"); connect(m_settingsButton, SIGNAL(clicked()), this, SLOT(onSettingsButtonClicked())); m_updateButton = new QPushButton("Update"); connect(m_updateButton, SIGNAL(clicked()), this, SLOT(onUpdateButtonClicked())); m_startButton = new QPushButton("Start"); connect(m_startButton, SIGNAL(clicked()), this, SLOT(onStartButtonClicked())); // Create the active issue widget. m_activeIssueWidget = new ActiveIssueWidget; m_activeIssueWidget->hide(); connect(m_activeIssueWidget, SIGNAL(trackingCompleted()), this, SLOT(onActiveIssueWidgetTrackingCompleted())); // Create the progress bar. m_progressBar = new QProgressBar; m_progressBar->setMinimum(0); m_progressBar->setMaximum(100); m_progressBar->setValue(50); m_progressBar->setTextVisible(false); m_progressBar->setVisible(false); // Create the issues model that we use in the issues table. m_issuesTableModel = new IssuesTableModel(this); // Create the issues table. m_issuesTable = new IssuesTableView; m_issuesTable->setFrameShape(QFrame::NoFrame); m_issuesTable->setItemDelegate(new IssueTableItemDelegate); m_issuesTable->setModel(m_issuesTableModel); connect(m_issuesTable, SIGNAL(clicked(QModelIndex)), this, SLOT(onSelectIssue(QModelIndex))); // Set up the layouts. QHBoxLayout* buttonsLayout = new QHBoxLayout; buttonsLayout->setMargin(5); buttonsLayout->setSpacing(5); buttonsLayout->addWidget(m_settingsButton); buttonsLayout->addWidget(m_updateButton); buttonsLayout->addWidget(m_startButton); QVBoxLayout* mainLayout = new QVBoxLayout(this); mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addLayout(buttonsLayout); mainLayout->addWidget(m_activeIssueWidget); mainLayout->addWidget(m_issuesTable); mainLayout->addWidget(m_progressBar); setLayout(mainLayout); m_issueListTimer = new QTimer(this); connect(m_issueListTimer, SIGNAL(timeout()), this, SLOT(onUpdateButtonClicked())); // Do an update. onUpdateButtonClicked(); }