53 friend class ModelStack;
56 TodoView(
const EventViews::PrefsPtr &preferences,
bool sidebarView,
QWidget *
parent);
70 void setDocumentId(
const QString &)
76 void restoreLayout(
KConfig *config,
const QString &group,
bool minimalDefaults);
79 void getHighlightMode(
bool &highlightEvents,
bool &highlightTodos,
bool &highlightJournals);
81 [[nodiscard]]
bool usesFullWindow();
83 [[nodiscard]]
bool supportsDateRangeSelection()
const
89 void setIncidenceChanger(Akonadi::IncidenceChanger *changer)
override;
90 void showDates(
const QDate &
start,
const QDate &end,
const QDate &preferredMonth = QDate())
override;
92 void updateView()
override;
93 virtual void changeIncidenceDisplay(
const Akonadi::Item &incidence, Akonadi::IncidenceChanger::ChangeType changeType);
94 void updateConfig()
override;
95 void clearSelection()
override;
96 void expandIndex(
const QModelIndex &index);
97 void restoreViewState();
103 void resizeEvent(QResizeEvent *)
override;
106 void contextMenu(QPoint pos);
108 void currentChanged(
const QModelIndex ¤t,
const QModelIndex &previous);
116 void copyTodoToDate(QDate date);
119 EVENTVIEWS_NO_EXPORT
void scheduleResizeColumns();
120 EVENTVIEWS_NO_EXPORT
void resizeColumns();
121 EVENTVIEWS_NO_EXPORT
void itemDoubleClicked(
const QModelIndex &index);
122 EVENTVIEWS_NO_EXPORT
void setNewDate(QDate date);
123 EVENTVIEWS_NO_EXPORT
void setStartDate(QDate date);
124 EVENTVIEWS_NO_EXPORT
void setNewPercentage(QAction *action);
125 EVENTVIEWS_NO_EXPORT
void setNewPriority(QAction *action);
126 EVENTVIEWS_NO_EXPORT
void changedCategories(QAction *action);
127 EVENTVIEWS_NO_EXPORT
void setFullView(
bool fullView);
129 EVENTVIEWS_NO_EXPORT
void setFlatView(
bool flatView,
bool notifyOtherViews =
true);
131 EVENTVIEWS_NO_EXPORT
void onRowsInserted(
const QModelIndex &parent,
int start,
int end);
132 EVENTVIEWS_NO_EXPORT
void onTagsFetched(KJob *);
135 void purgeCompletedSignal();
136 void unSubTodoSignal();
137 void unAllSubTodoSignal();
138 void configChanged();
139 void fullViewChanged(
bool enabled);
140 void printPreviewTodo();
143 void createEvent(
const Akonadi::Item &item);
146 EVENTVIEWS_NO_EXPORT QMenu *createCategoryPopupMenu();
147 EVENTVIEWS_NO_EXPORT QString stateSaverGroup()
const;
150 void addTodo(
const QString &summary,
const Akonadi::Item &parentItem,
const QStringList &categories = QStringList());
152 TodoViewView *mView =
nullptr;
153 TodoViewSortFilterProxyModel *mProxyModel =
nullptr;
154 TodoCategoriesDelegate *mCategoriesDelegate =
nullptr;
155 std::unique_ptr<CalendarFilterModel> mCalendarFilterModel;
157 TodoViewQuickSearch *mQuickSearch =
nullptr;
158 TodoViewQuickAddLine *mQuickAdd =
nullptr;
159 QToolButton *mFullViewButton =
nullptr;
160 QToolButton *mFlatViewButton =
nullptr;
162 QMenu *mItemPopupMenu =
nullptr;
163 KDatePickerPopup *mCopyPopupMenu =
nullptr;
164 KDatePickerPopup *mMovePopupMenu =
nullptr;
165 QMenu *mPriorityPopupMenu =
nullptr;
166 QMenu *mPercentageCompletedPopupMenu =
nullptr;
167 QList<QAction *> mItemPopupMenuItemOnlyEntries;
168 QList<QAction *> mItemPopupMenuReadWriteEntries;
170 QAction *mMakeTodoIndependent =
nullptr;
171 QAction *mMakeSubtodosIndependent =
nullptr;
173 QPointer<Akonadi::ETMViewStateSaver> mTreeStateRestorer;
175 QMap<QAction *, int> mPercentage;
176 QMap<QAction *, int> mPriority;
178 bool mResizeColumnsScheduled;
179 QTimer *mResizeColumnsTimer =
nullptr;