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"