void KOnlineJobOutbox::updateButtonState() const { const QModelIndexList indexes = ui->m_onlineJobView->selectionModel()->selectedRows(); const int selectedItems = indexes.count(); // Send button //! @todo Enable button if it is useful //ui->m_buttonSend->setEnabled(selectedItems > 0); // Edit button/action bool editable = true; QString tooltip; if (selectedItems == 1) { const onlineJob job = ui->m_onlineJobView->model()->data(indexes.first(), onlineJobModel::OnlineJobRole).value<onlineJob>(); if (!job.isEditable()) { editable = false; if (job.sendDate().isValid()) tooltip = i18n("This job cannot be edited anymore because is was sent already."); else if (job.isLocked()) tooltip = i18n("Job is being processed at the moment."); else Q_ASSERT(false); } else if (!onlineJobAdministration::instance()->canEditOnlineJob(job)) { editable = false; tooltip = i18n("The plugin to edit this job is not available."); } } else { editable = false; tooltip = i18n("You must select a single job for editing."); } QAction *const onlinejob_edit = kmymoney->action("onlinejob_edit"); Q_CHECK_PTR(onlinejob_edit); onlinejob_edit->setEnabled(editable); onlinejob_edit->setToolTip(tooltip); ui->m_buttonEdit->setEnabled(editable); ui->m_buttonEdit->setToolTip(tooltip); // Delete button/action QAction *const onlinejob_delete = kmymoney->action("onlinejob_delete"); Q_CHECK_PTR(onlinejob_delete); onlinejob_delete->setEnabled(selectedItems > 0); ui->m_buttonRemove->setEnabled(onlinejob_delete->isEnabled()); }
bool kOnlineTransferForm::setOnlineJob(const onlineJob job) { QString name; try { name = job.task()->taskName(); } catch (const onlineJob::emptyTask&) { return false; } setCurrentAccount(job.responsibleAccount()); if (showEditWidget(name)) { IonlineJobEdit* widget = qobject_cast<IonlineJobEdit*>(ui->creditTransferEdit->widget()); if (widget != 0) { // This can happen if there are no widgets const bool ret = widget->setOnlineJob(job); setJobReadOnly(!job.isEditable()); return ret; } } return false; }