kde-extraapps/okular/conf/widgetannottools.h
Ivailo Monev e166af4e02 generic: replace forward declarations with headers inclusions
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
2019-05-23 00:08:45 +00:00

108 lines
2.8 KiB
C++

/***************************************************************************
* Copyright (C) 2012 by Fabio D'Urso <fabiodurso@hotmail.it> *
* *
* 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. *
***************************************************************************/
#ifndef _WIDGETANNOTTOOLS_H_
#define _WIDGETANNOTTOOLS_H_
#include <kdialog.h>
#include <qdom.h>
#include <qwidget.h>
class KLineEdit;
class KComboBox;
class KPushButton;
#include <QLabel>
#include <QListWidget>
#include <QListWidgetItem>
#include <QGroupBox>
class AnnotationWidget;
namespace Okular
{
class Annotation;
}
class WidgetAnnotTools : public QWidget
{
Q_OBJECT
Q_PROPERTY( QStringList tools READ tools WRITE setTools NOTIFY changed USER true )
public:
WidgetAnnotTools( QWidget * parent = 0 );
~WidgetAnnotTools();
QStringList tools() const;
void setTools(const QStringList& items);
Q_SIGNALS:
void changed();
private:
QListWidget *m_list;
KPushButton *m_btnAdd;
KPushButton *m_btnEdit;
KPushButton *m_btnRemove;
KPushButton *m_btnMoveUp;
KPushButton *m_btnMoveDown;
private slots:
void updateButtons();
void slotAdd();
void slotEdit();
void slotRemove();
void slotMoveUp();
void slotMoveDown();
};
class EditAnnotToolDialog : public KDialog
{
Q_OBJECT
public:
enum ToolType
{
ToolNoteLinked,
ToolNoteInline,
ToolInk,
ToolStraightLine,
ToolPolygon,
ToolTextMarkup,
ToolGeometricalShape,
ToolStamp
};
EditAnnotToolDialog( QWidget *parent = 0, const QDomElement &initialState = QDomElement() );
~EditAnnotToolDialog();
QString name() const;
QDomDocument toolXml() const;
private:
void createStubAnnotation();
void rebuildAppearanceBox();
void updateDefaultNameAndIcon();
void setToolType( ToolType newType );
void loadTool( const QDomElement &toolElement );
KLineEdit *m_name;
KComboBox *m_type;
QLabel *m_toolIcon;
QGroupBox *m_appearanceBox;
Okular::Annotation *m_stubann;
AnnotationWidget *m_annotationWidget;
private slots:
void slotTypeChanged();
void slotDataChanged();
};
Q_DECLARE_METATYPE( EditAnnotToolDialog::ToolType )
#endif