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

okular

  • sources
  • kde-4.12
  • kdegraphics
  • okular
  • core
tilesmanager_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2012 by Mailson Menezes <mailson@gmail.com> *
3  * This program is free software; you can redistribute it and/or modify *
4  * it under the terms of the GNU General Public License as published by *
5  * the Free Software Foundation; either version 2 of the License, or *
6  * (at your option) any later version. *
7  ***************************************************************************/
8 
9 #ifndef _OKULAR_TILES_MANAGER_P_H_
10 #define _OKULAR_TILES_MANAGER_P_H_
11 
12 #include "okular_export.h"
13 #include "area.h"
14 
15 class QPixmap;
16 
17 namespace Okular {
18 
19 class Tile;
20 
34 class TileNode
35 {
36  public:
37  TileNode();
38 
39  bool isValid() const;
40 
44  NormalizedRect rect;
45 
55  QPixmap *pixmap;
56 
63  Rotation rotation;
64 
70  bool dirty;
71 
76  double distance;
77 
83  TileNode *tiles;
84  int nTiles;
85  TileNode *parent;
86 };
87 
98 class TilesManager
99 {
100  public:
101  enum TileLeaf
102  {
103  TerminalTile,
104  PixmapTile
105  };
106 
107  TilesManager( int pageNumber, int width, int height, Rotation rotation = Rotation0 );
108  ~TilesManager();
109 
119  void setPixmap( const QPixmap *pixmap, const NormalizedRect &rect );
120 
126  bool hasPixmap( const NormalizedRect &rect );
127 
136  QList<Tile> tilesAt( const NormalizedRect &rect, TileLeaf tileLeaf );
137 
141  qulonglong totalMemory() const;
142 
150  void cleanupPixmapMemory( qulonglong numberOfBytes, const NormalizedRect &visibleRect, int visiblePageNumber );
151 
155  bool isRequesting( const NormalizedRect &rect, int pageWidth, int pageHeight ) const;
156 
161  void setRequest( const NormalizedRect &rect, int pageWidth, int pageHeight );
162 
166  void setSize( int width, int height );
167 
171  int width() const;
172 
176  int height() const;
177 
181  void setRotation( Rotation rotation );
182  Rotation rotation() const;
183 
187  void markDirty();
188 
192  static NormalizedRect toRotatedRect( const NormalizedRect &rect, Rotation rotation );
193 
197  static NormalizedRect fromRotatedRect( const NormalizedRect &rect, Rotation rotation );
198 
199  private:
200  class Private;
201  Private * const d;
202  friend class Private;
203 };
204 
205 }
206 
207 #endif // _OKULAR_TILES_MANAGER_P_H_
Okular::TileNode::tiles
TileNode * tiles
Children tiles When a tile is split into multiple tiles, they're added as children.
Definition: tilesmanager_p.h:83
Okular::TilesManager::setRotation
void setRotation(Rotation rotation)
Inform the new rotation of the page.
Definition: tilesmanager.cpp:157
Okular::TilesManager::cleanupPixmapMemory
void cleanupPixmapMemory(qulonglong numberOfBytes, const NormalizedRect &visibleRect, int visiblePageNumber)
Removes at least numberOfBytes bytes worth of tiles (least ranked tiles are removed first)...
Definition: tilesmanager.cpp:449
Okular::Rotation
Rotation
A rotation.
Definition: global.h:44
Okular::TilesManager::height
int height() const
Gets the height of the page in tiles manager.
Definition: tilesmanager.cpp:152
Okular::TilesManager::fromRotatedRect
static NormalizedRect fromRotatedRect(const NormalizedRect &rect, Rotation rotation)
Returns a non rotated version of rect, which is rotated by rotation.
Definition: tilesmanager.cpp:581
Okular::TileNode::nTiles
int nTiles
Definition: tilesmanager_p.h:84
Okular::NormalizedRect
NormalizedRect is a helper class which stores the coordinates of a normalized rect, which is a rectangle of.
Definition: area.h:105
area.h
Okular::TileNode::distance
double distance
Distance between the tile and the viewport.
Definition: tilesmanager_p.h:76
Okular::Rotation0
Not rotated.
Definition: global.h:46
okular_export.h
Okular::TilesManager::TileLeaf
TileLeaf
Definition: tilesmanager_p.h:101
Okular::TilesManager::tilesAt
QList< Tile > tilesAt(const NormalizedRect &rect, TileLeaf tileLeaf)
Returns a list of all tiles intersecting with rect.
Definition: tilesmanager.cpp:358
Okular::TilesManager::setRequest
void setRequest(const NormalizedRect &rect, int pageWidth, int pageHeight)
Sets a region to be requested so the tiles manager knows which pixmaps to expect and discard those no...
Definition: tilesmanager.cpp:539
Okular::TilesManager
Tiles management.
Definition: tilesmanager_p.h:98
Okular::TilesManager::PixmapTile
Return only tiles with pixmap.
Definition: tilesmanager_p.h:104
Okular::TilesManager::rotation
Rotation rotation() const
Definition: tilesmanager.cpp:165
Okular::TilesManager::markDirty
void markDirty()
Mark all tiles as dirty.
Definition: tilesmanager.cpp:170
Okular::TilesManager::~TilesManager
~TilesManager()
Definition: tilesmanager.cpp:111
Okular::TilesManager::toRotatedRect
static NormalizedRect toRotatedRect(const NormalizedRect &rect, Rotation rotation)
Returns a rotated NormalizedRect given a rotation.
Definition: tilesmanager.cpp:606
Okular::TilesManager::width
int width() const
Gets the width of the page in tiles manager.
Definition: tilesmanager.cpp:147
Okular::TileNode::parent
TileNode * parent
Definition: tilesmanager_p.h:85
Okular::TileNode::pixmap
QPixmap * pixmap
Associated pixmap or NULL if not present.
Definition: tilesmanager_p.h:55
Okular::TileNode
Node in the quadtree structure used by the tiles manager to store tiles.
Definition: tilesmanager_p.h:34
Okular::TilesManager::totalMemory
qulonglong totalMemory() const
The total memory consumed by the tiles manager.
Definition: tilesmanager.cpp:444
Okular::TilesManager::setSize
void setSize(int width, int height)
Inform the new size of the page and mark all tiles to repaint.
Definition: tilesmanager.cpp:136
Okular::TileNode::isValid
bool isValid() const
Definition: tilesmanager.cpp:642
Okular::TileNode::dirty
bool dirty
Whether the tile needs to be repainted (after a zoom or rotation) If a tile doesn't have a pixmap but...
Definition: tilesmanager_p.h:70
Okular::TilesManager::TerminalTile
Return tiles without children.
Definition: tilesmanager_p.h:103
Okular::TilesManager::Private
friend class Private
Definition: tilesmanager_p.h:202
Okular::TilesManager::setPixmap
void setPixmap(const QPixmap *pixmap, const NormalizedRect &rect)
Sets the pixmap of the tiles covered by rect (which represents the location of pixmap on the page)...
Definition: tilesmanager.cpp:188
Okular::TilesManager::isRequesting
bool isRequesting(const NormalizedRect &rect, int pageWidth, int pageHeight) const
Checks whether a given region has already been requested.
Definition: tilesmanager.cpp:534
Okular::TileNode::rect
NormalizedRect rect
Location on the page in normalized coords.
Definition: tilesmanager_p.h:44
Okular::TilesManager::hasPixmap
bool hasPixmap(const NormalizedRect &rect)
Checks whether all tiles intersecting with rect are available.
Definition: tilesmanager.cpp:325
Okular::TilesManager::TilesManager
TilesManager(int pageNumber, int width, int height, Rotation rotation=Rotation0)
Definition: tilesmanager.cpp:93
Okular::TileNode::rotation
Rotation rotation
Rotation of this individual tile.
Definition: tilesmanager_p.h:63
Okular::TileNode::TileNode
TileNode()
Definition: tilesmanager.cpp:631
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:45:03 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okular

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

kdegraphics API Reference

Skip menu "kdegraphics API Reference"
  •     libkdcraw
  •     libkexiv2
  •     libkipi
  •     libksane
  • okular

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