mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 10:52:52 +00:00
208 lines
5.4 KiB
C
208 lines
5.4 KiB
C
![]() |
/*
|
||
|
This file is part of KJots.
|
||
|
|
||
|
Copyright (C) 1997 Christoph Neerfeld <Christoph.Neerfeld@home.ivm.de>
|
||
|
Copyright (C) 2002, 2003 Aaron J. Seigo <aseigo@kde.org>
|
||
|
Copyright (C) 2003 Stanislav Kljuhhin <crz@hot.ee>
|
||
|
Copyright (C) 2005-2006 Jaison Lee <lee.jaison@gmail.com>
|
||
|
Copyright (C) 2007-2009 Stephen Kelly <steveire@gmail.com>
|
||
|
|
||
|
This library is free software; you can redistribute it and/or modify it
|
||
|
under the terms of the GNU Library General Public License as published by
|
||
|
the Free Software Foundation; either version 2 of the License, or (at your
|
||
|
option) any later version.
|
||
|
|
||
|
This library 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 Library General Public
|
||
|
License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Library General Public License
|
||
|
along with this library; see the file COPYING.LIB. If not, write to the
|
||
|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||
|
02110-1301, USA.
|
||
|
*/
|
||
|
|
||
|
#ifndef KJOTSWIDGET_H
|
||
|
#define KJOTSWIDGET_H
|
||
|
|
||
|
#include <QWidget>
|
||
|
#include <QItemSelection>
|
||
|
#include <QAbstractItemDelegate>
|
||
|
#include <akonadi/item.h>
|
||
|
|
||
|
#include <grantlee/templateloader.h>
|
||
|
|
||
|
class QCheckBox;
|
||
|
class QTextEdit;
|
||
|
class QTextCharFormat;
|
||
|
class QSplitter;
|
||
|
class QStackedWidget;
|
||
|
class QModelIndex;
|
||
|
|
||
|
class KActionMenu;
|
||
|
class KFindDialog;
|
||
|
class KJob;
|
||
|
class KReplaceDialog;
|
||
|
class KSelectionProxyModel;
|
||
|
class KJotsBrowser;
|
||
|
class KXMLGUIClient;
|
||
|
|
||
|
namespace Akonadi
|
||
|
{
|
||
|
class EntityTreeModel;
|
||
|
class EntityOrderProxyModel;
|
||
|
}
|
||
|
|
||
|
namespace Grantlee
|
||
|
{
|
||
|
class Engine;
|
||
|
}
|
||
|
|
||
|
class KJotsEdit;
|
||
|
class KJotsTreeView;
|
||
|
class KJotsSortProxyModel;
|
||
|
|
||
|
class KJotsWidget : public QWidget
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_CLASSINFO("D-Bus Interface", "org.kde.KJotsWidget")
|
||
|
|
||
|
public:
|
||
|
KJotsWidget( QWidget *parent, KXMLGUIClient *xmlGuiclient, Qt::WindowFlags f = 0 );
|
||
|
~KJotsWidget();
|
||
|
|
||
|
QTextEdit* activeEditor();
|
||
|
|
||
|
public slots:
|
||
|
void prevPage();
|
||
|
void nextPage();
|
||
|
void prevBook();
|
||
|
void nextBook();
|
||
|
bool canGoNextPage() const;
|
||
|
bool canGoPreviousPage() const;
|
||
|
bool canGoNextBook() const;
|
||
|
bool canGoPreviousBook() const;
|
||
|
|
||
|
void updateCaption();
|
||
|
void updateMenu();
|
||
|
void doCreateNewPage( const Akonadi::Collection &collection );
|
||
|
|
||
|
Q_SCRIPTABLE void newPage();
|
||
|
Q_SCRIPTABLE void newBook();
|
||
|
|
||
|
Q_SCRIPTABLE bool queryClose();
|
||
|
|
||
|
signals:
|
||
|
void canGoNextPageChanged( bool );
|
||
|
void canGoPreviousPageChanged( bool );
|
||
|
void canGoNextBookChanged( bool );
|
||
|
void canGoPreviousBookChanged( bool );
|
||
|
|
||
|
void captionChanged( const QString &newCaption );
|
||
|
|
||
|
/**
|
||
|
Signals that the text cursor in the editor is now on a different anchor, or not on
|
||
|
an anchor anymore.
|
||
|
@param anchorTarget The href of the focused anchor.
|
||
|
@param anchorText The display text of the focused anchor.
|
||
|
*/
|
||
|
void activeAnchorChanged(const QString &anchorTarget, const QString &anchorText);
|
||
|
|
||
|
protected:
|
||
|
QString renderSelectionToHtml();
|
||
|
QString renderSelectionToXml();
|
||
|
QString renderSelectionToPlainText();
|
||
|
QString getThemeFromUser();
|
||
|
|
||
|
void selectNext( int role, int step );
|
||
|
int search( bool );
|
||
|
void migrateNoteData( const QString &migrator, const QString &type = QString() );
|
||
|
|
||
|
protected slots:
|
||
|
void renderSelection();
|
||
|
void changeTheme();
|
||
|
void exportSelectionToHtml();
|
||
|
void exportSelectionToPlainText();
|
||
|
void exportSelectionToXml();
|
||
|
void printSelection();
|
||
|
void printPreviewSelection();
|
||
|
|
||
|
void deletePage();
|
||
|
void deleteBook();
|
||
|
void deleteMultiple();
|
||
|
|
||
|
private slots:
|
||
|
void delayedInitialization();
|
||
|
void selectionChanged( const QItemSelection &selected, const QItemSelection &deselected );
|
||
|
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight );
|
||
|
void bookshelfEditItemFinished( QWidget *, QAbstractItemDelegate::EndEditHint );
|
||
|
bool canGo( int role, int step ) const;
|
||
|
|
||
|
void newPageResult( KJob *job );
|
||
|
void newBookResult( KJob *job );
|
||
|
|
||
|
void copySelectionToTitle();
|
||
|
void copy();
|
||
|
void configure();
|
||
|
|
||
|
void onShowSearch();
|
||
|
void onUpdateSearch();
|
||
|
void onStartSearch();
|
||
|
void onRepeatSearch();
|
||
|
void onEndSearch();
|
||
|
|
||
|
void onShowReplace();
|
||
|
void onUpdateReplace();
|
||
|
void onStartReplace();
|
||
|
void onRepeatReplace();
|
||
|
void onEndReplace();
|
||
|
|
||
|
void actionLock();
|
||
|
void actionUnlock();
|
||
|
void actionSortChildrenAlpha();
|
||
|
void actionSortChildrenByDate();
|
||
|
|
||
|
void saveState();
|
||
|
void restoreState();
|
||
|
|
||
|
void currentCharFormatChanged(const QTextCharFormat &);
|
||
|
|
||
|
void updateConfiguration();
|
||
|
|
||
|
private:
|
||
|
void print(QPrinter &printer);
|
||
|
KXMLGUIClient *m_xmlGuiClient;
|
||
|
KJotsEdit *editor;
|
||
|
KJotsBrowser *browser;
|
||
|
QStackedWidget *stackedWidget;
|
||
|
KActionMenu *bookmarkMenu;
|
||
|
Akonadi::EntityTreeModel *m_kjotsModel;
|
||
|
KSelectionProxyModel *selProxy;
|
||
|
KJotsSortProxyModel *m_sortProxyModel;
|
||
|
Akonadi::EntityOrderProxyModel *m_orderProxy;
|
||
|
KJotsTreeView *treeview;
|
||
|
QSplitter *m_splitter;
|
||
|
QTimer *m_autosaveTimer;
|
||
|
|
||
|
QString activeAnchor;
|
||
|
|
||
|
Grantlee::Engine *m_templateEngine;
|
||
|
Grantlee::FileSystemTemplateLoader::Ptr m_loader;
|
||
|
|
||
|
KFindDialog *searchDialog;
|
||
|
QStringList searchHistory;
|
||
|
int searchBeginPos, searchEndPos, searchPos;
|
||
|
QCheckBox *searchAllPages;
|
||
|
|
||
|
KReplaceDialog *replaceDialog;
|
||
|
QStringList replaceHistory;
|
||
|
int replaceBeginPos, replaceEndPos, replacePos;
|
||
|
QCheckBox *replaceAllPages;
|
||
|
QModelIndex replaceStartPage;
|
||
|
|
||
|
QSet<QAction*> entryActions, pageActions, bookActions, multiselectionActions;
|
||
|
};
|
||
|
|
||
|
#endif
|