File indexing completed on 2024-04-28 05:11:36

0001 /*
0002   SPDX-FileCopyrightText: 2010 Bertjan Broeksema <broeksema@kde.org>
0003   SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
0004 
0005   SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "incidencewhatwhere.h"
0009 #include "ui_dialogdesktop.h"
0010 
0011 #include "incidenceeditor_debug.h"
0012 #include <KLocalizedString>
0013 
0014 using namespace IncidenceEditorNG;
0015 
0016 IncidenceWhatWhere::IncidenceWhatWhere(Ui::EventOrTodoDesktop *ui)
0017     : IncidenceEditor(nullptr)
0018     , mUi(ui)
0019 {
0020     setObjectName(QLatin1StringView("IncidenceWhatWhere"));
0021     connect(mUi->mSummaryEdit, &QLineEdit::textChanged, this, &IncidenceWhatWhere::checkDirtyStatus);
0022     connect(mUi->mLocationEdit, &QLineEdit::textChanged, this, &IncidenceWhatWhere::checkDirtyStatus);
0023 }
0024 
0025 void IncidenceWhatWhere::load(const KCalendarCore::Incidence::Ptr &incidence)
0026 {
0027     qCDebug(INCIDENCEEDITOR_LOG);
0028     mLoadedIncidence = incidence;
0029     if (mLoadedIncidence) {
0030         mUi->mSummaryEdit->setText(mLoadedIncidence->summary());
0031         mUi->mLocationEdit->setText(mLoadedIncidence->location());
0032     } else {
0033         mUi->mSummaryEdit->clear();
0034         mUi->mLocationEdit->clear();
0035     }
0036 
0037     mUi->mLocationEdit->setVisible(type() != KCalendarCore::Incidence::TypeJournal);
0038     mUi->mLocationLabel->setVisible(type() != KCalendarCore::Incidence::TypeJournal);
0039 
0040     mWasDirty = false;
0041 }
0042 
0043 void IncidenceWhatWhere::save(const KCalendarCore::Incidence::Ptr &incidence)
0044 {
0045     Q_ASSERT(incidence);
0046     incidence->setSummary(mUi->mSummaryEdit->text());
0047     incidence->setLocation(mUi->mLocationEdit->text());
0048 }
0049 
0050 bool IncidenceWhatWhere::isDirty() const
0051 {
0052     if (mLoadedIncidence) {
0053         return (mUi->mSummaryEdit->text() != mLoadedIncidence->summary()) || (mUi->mLocationEdit->text() != mLoadedIncidence->location());
0054     } else {
0055         return mUi->mSummaryEdit->text().isEmpty() && mUi->mLocationEdit->text().isEmpty();
0056     }
0057 }
0058 
0059 void IncidenceWhatWhere::focusInvalidField()
0060 {
0061     if (mUi->mSummaryEdit->text().isEmpty()) {
0062         mUi->mSummaryEdit->setFocus();
0063     }
0064 }
0065 
0066 bool IncidenceWhatWhere::isValid() const
0067 {
0068     if (mUi->mSummaryEdit->text().isEmpty()) {
0069         qCDebug(INCIDENCEEDITOR_LOG) << "Specify a summary";
0070         mLastErrorString = i18nc("@info", "Please enter a summary.");
0071         return false;
0072     } else {
0073         mLastErrorString.clear();
0074         return true;
0075     }
0076 }
0077 
0078 void IncidenceWhatWhere::validate()
0079 {
0080     if (mUi->mSummaryEdit->text().isEmpty()) {
0081         mUi->mSummaryEdit->setFocus();
0082     }
0083 }
0084 
0085 #include "moc_incidencewhatwhere.cpp"