1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
/*********************************************************************************
NixNote - An open-source client for the Evernote service.
Copyright (C) 2013 Randy Baumgarte
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.
***********************************************************************************/
#ifndef NWEBVIEW_H
#define NWEBVIEW_H
#include <QWebView>
#include <gui/nwebpage.h>
#include <QShortcut>
#include <QMenu>
#include <QNetworkRequest>
#include <QAction>
#include <QSignalMapper>
#include "gui/nbrowserwindow.h"
#include "gui/browserWidgets/ntitleeditor.h"
class NBrowserWindow;
//****************************************************
//* This inherits everything from QWebView. It is
//* useful to allow us to setup things that are
//* needed to view & edit notes.
//****************************************************
class NWebView : public QWebView
{
Q_OBJECT
private:
QAction *setupColorMenuOption(QString color);
void setupShortcut(QAction *action, QString text);
QSignalMapper *backgroundColorMapper;
public:
explicit NWebView(NBrowserWindow *parent = 0);
NBrowserWindow *parent;
NTitleEditor *titleEditor;
QString pasteSequence;
QString pasteUnformattedSequence;
QMenu *contextMenu;
QMenu *tableMenu;
QMenu *imageMenu;
QAction *cutAction;
QAction *copyAction;
QAction *pasteAction;
QAction *removeFormattingAction;
QAction *insertDateTimeAction;
QAction *pasteWithoutFormatAction;
QAction *todoAction;
QAction *encryptAction;
QAction *downloadAttachmentAction();
QAction *downloadImageAction();
QAction *rotateImageRightAction;
QAction *rotateImageLeftAction;
QAction *insertLinkAction;
QAction *removeLinkAction;
QAction *insertLatexAction;
QAction *attachFileAction;
QAction *insertTableAction;
QAction *insertTableRowAction;
QAction *insertTableColumnAction;
QAction *deleteTableColumnAction;
QAction *deleteTableRowAction;
QAction *openAction;
QAction *insertQuickLinkAction;
QAction *insertHtmlEntitiesAction;
QAction *copyNoteUrlAction;
QShortcut *attachFileShortcut;
bool isDirty;
NWebPage *editorPage;
bool event(QEvent *event);
void keyPressEvent(QKeyEvent *);
void downloadAttachment(QNetworkRequest *req);
void focusLostNotify(QString text);
signals:
void noteChanged();
void downloadAttachmentRequested(QNetworkRequest*);
void htmlEditAlert();
void escapeKeyPressed();
public slots:
void editAlert();
void decryptText(QString id, QString text, QString hint);
void contextMenuEvent(QContextMenuEvent *event);
void setBackgroundColor(QString color);
void printNodeName(QString s);
void setTitleEditor(NTitleEditor *editor);
void focusOutEvent(QFocusEvent *e);
private slots:
void exposeToJavascript();
void setDefaultTitle();
void downloadRequested(QNetworkRequest);
void dropEvent(QDropEvent *e);
};
#endif // NWEBVIEW_H
|