kde-playground/kdepim/kontact/plugins/korganizer/todosummarywidget.h
Ivailo Monev a9b00154bc generic: replace forward class declarations with header inclusions
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
2019-07-31 18:05:48 +00:00

104 lines
2.8 KiB
C++

/*
This file is part of Kontact.
Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
Copyright (c) 2005-2006,2009 Allen Winter <winter@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#ifndef TODO_SUMMARYWIDGET_H
#define TODO_SUMMARYWIDGET_H
#include <Akonadi/Item>
#include <KCalCore/Todo>
#include <KontactInterface/Summary>
#include <Akonadi/Calendar/ETMCalendar>
class TodoPlugin;
namespace Akonadi {
class IncidenceChanger;
}
#include <QGridLayout>
#include <QLabel>
class TodoSummaryWidget : public KontactInterface::Summary
{
Q_OBJECT
public:
TodoSummaryWidget( TodoPlugin *plugin, QWidget *parent );
~TodoSummaryWidget();
int summaryHeight() const { return 3; }
QStringList configModules() const;
public slots:
void updateSummary( bool force = false )
{
Q_UNUSED( force );
updateView();
}
protected:
virtual bool eventFilter( QObject *obj, QEvent *e );
private slots:
void updateView();
void popupMenu( const QString &uid );
void viewTodo( const QString &uid );
void removeTodo( const Akonadi::Item &item );
void completeTodo( Akonadi::Item::Id id );
private:
TodoPlugin *mPlugin;
QGridLayout *mLayout;
bool mDaysToGo;
bool mHideInProgress;
bool mHideOverdue;
bool mHideCompleted;
bool mHideOpenEnded;
bool mHideNotStarted;
bool mShowMineOnly;
QList<QLabel*> mLabels;
Akonadi::ETMCalendar::Ptr mCalendar;
Akonadi::IncidenceChanger *mChanger;
/**
Test if the To-do starts today.
@param todo is a pointer to a To-do object to test.
@return if the To-do starts on the current date.
*/
bool startsToday( const KCalCore::Todo::Ptr &todo );
/**
Create a text string containing the states of the To-do.
@param todo is a pointer to a To-do object to test.
@return a QString containing a comma-separated list of To-do states.
*/
const QString stateStr( const KCalCore::Todo::Ptr &todo );
};
#endif