• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
MarbleWebView.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2012 Illya Kovalevskyy <illya.kovalevskyy@gmail.com>
9 //
10 
11 #include "MarbleWebView.h"
12 #include <QApplication>
13 #include <QMenu>
14 #include <QContextMenuEvent>
15 #include <QKeyEvent>
16 #include <QClipboard>
17 
18 MarbleWebView::MarbleWebView(QWidget *parent) :
19  QWebView(parent),
20  m_contextMenu(new QMenu(this)),
21  m_copyAction(new QAction(this))
22 {
23  m_copyAction->setText(tr("Copy"));
24  m_copyAction->setIcon(QIcon(":/icons/edit-copy.png"));
25  m_copyAction->setIconVisibleInMenu(true);
26  m_copyAction->setToolTip(tr("Copy selected content"));
27  connect(m_copyAction, SIGNAL(triggered()),
28  this, SLOT(copySelectedText()));
29  m_contextMenu->addAction(m_copyAction);
30  setContextMenuPolicy(Qt::DefaultContextMenu);
31 }
32 
33 void MarbleWebView::contextMenuEvent(QContextMenuEvent *event)
34 {
35  m_copyAction->setEnabled(!selectedText().isEmpty());
36  m_contextMenu->exec(event->globalPos());
37 }
38 
39 void MarbleWebView::copySelectedText()
40 {
41  const QString text = selectedText();
42  if (!text.isEmpty()) {
43  QClipboard *clipboard = QApplication::clipboard();
44  clipboard->setText(text);
45  }
46 }
47 
48 void MarbleWebView::keyPressEvent(QKeyEvent *event)
49 {
50  if(event->modifiers() == Qt::ControlModifier && event->key() == Qt::Key_C) {
51  copySelectedText();
52  return;
53  }
54 
55  QWebView::keyPressEvent(event);
56 }
57 
58 #include "MarbleWebView.moc"
QAction::setText
void setText(const QString &text)
QWidget
QKeyEvent::modifiers
Qt::KeyboardModifiers modifiers() const
QWebView
MarbleWebView::keyPressEvent
void keyPressEvent(QKeyEvent *event)
Definition: MarbleWebView.cpp:48
MarbleWebView::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event)
Definition: MarbleWebView.cpp:33
MarbleWebView.h
QAction::setIcon
void setIcon(const QIcon &icon)
QMenu::addAction
void addAction(QAction *action)
QContextMenuEvent::globalPos
const QPoint & globalPos() const
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
QAction::setToolTip
void setToolTip(const QString &tip)
QWebView::selectedText
QString selectedText() const
QClipboard
MarbleWebView::MarbleWebView
MarbleWebView(QWidget *parent=0)
Definition: MarbleWebView.cpp:18
QApplication::clipboard
QClipboard * clipboard()
QContextMenuEvent
QString::isEmpty
bool isEmpty() const
QString
QMenu::exec
QAction * exec()
QMenu
QWidget::setContextMenuPolicy
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
QAction::setIconVisibleInMenu
void setIconVisibleInMenu(bool visible)
QKeyEvent
QWebView::keyPressEvent
virtual void keyPressEvent(QKeyEvent *ev)
QAction
QClipboard::setText
void setText(const QString &text, Mode mode)
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QAction::setEnabled
void setEnabled(bool)
QIcon
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal