CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
Vispa.Share.ImageExporter.ImageExporter Class Reference
Inheritance diagram for Vispa.Share.ImageExporter.ImageExporter:

Public Member Functions

def __init__
 
def exportImage
 
def exportImageDialog
 
def exportPdf
 
def exportPdfHelper
 

Private Member Functions

def _fileFilter
 

Private Attributes

 _exportImageFileName
 
 _fileFiltersString
 
 _imageFormats
 
 _selectedFileFilter
 

Detailed Description

Definition at line 7 of file ImageExporter.py.

Constructor & Destructor Documentation

def Vispa.Share.ImageExporter.ImageExporter.__init__ (   self,
  parent = None 
)

Definition at line 8 of file ImageExporter.py.

8 
9  def __init__(self, parent=None):
10  QtCore.QObject.__init__(self, parent)
11  self._imageFormats = ["pdf", "ps"] + [str(f) for f in QtGui.QImageWriter.supportedImageFormats()]
12  fileFilters = [self._fileFilter(ft) for ft in self._imageFormats]
13  self._fileFiltersString = ";;".join(fileFilters)
14  self._selectedFileFilter = fileFilters[0]
15  self._exportImageFileName = None
static std::string join(char **cmd)
Definition: RemoteFile.cc:18

Member Function Documentation

def Vispa.Share.ImageExporter.ImageExporter._fileFilter (   self,
  ext 
)
private

Definition at line 16 of file ImageExporter.py.

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImage().

16 
17  def _fileFilter(self, ext):
18  return ext.upper() +" File (*."+ ext.lower() + ")"
def Vispa.Share.ImageExporter.ImageExporter.exportImage (   self,
  widget,
  filename,
  ext = "" 
)

Definition at line 61 of file ImageExporter.py.

References Vispa.Share.ImageExporter.ImageExporter._exportImageFileName, Vispa.Share.ImageExporter.ImageExporter._fileFilter(), Vispa.Share.ImageExporter.ImageExporter._imageFormats, Vispa.Share.ImageExporter.ImageExporter._selectedFileFilter, and Vispa.Share.ImageExporter.ImageExporter.exportPdf().

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImageDialog().

61 
62  def exportImage(self, widget, filename, ext=""):
63  self._exportImageFileName = filename
64  name = filename
65 
66  if os.path.splitext(filename)[1].lower().strip(".") in self._imageFormats:
67  name=os.path.splitext(filename)[0]
68  ext=os.path.splitext(filename)[1].lower().strip(".")
69 
70  self._selectedFileFilter = self._fileFilter(ext)
71  if ext == "pdf":
72  self.exportPdf(widget, name +"."+ ext, QtGui.QPrinter.PdfFormat)
73  elif ext == "ps":
74  self.exportPdf(widget, name +"."+ ext, QtGui.QPrinter.PostScriptFormat)
75  else:
76  childrenRect = widget.childrenRect()
77  margin = 10
78  picture = QtGui.QPixmap.grabWidget(widget, childrenRect.left() - margin, childrenRect.top() - margin, childrenRect.width() + 2*margin, childrenRect.height() + 2*margin)
79 
80  # grabWidget() does not work on Mac OS X with color gradients
81  # grabWidget() grabs pixels directly from screen --> can lead to problems if window is partly covered
82  picture.save(name+"."+ext,ext)
def Vispa.Share.ImageExporter.ImageExporter.exportImageDialog (   self,
  widget 
)

Definition at line 50 of file ImageExporter.py.

References Vispa.Share.ImageExporter.ImageExporter._exportImageFileName, Vispa.Share.ImageExporter.ImageExporter._fileFiltersString, Vispa.Share.ImageExporter.ImageExporter._selectedFileFilter, Vispa.Gui.ZoomableWidget.ZoomableWidget.exportImage(), Vispa.Share.ImageExporter.ImageExporter.exportImage(), python.multivaluedict.MyUserList.parent, edmIntegrityCheck.PublishToFileSystem.parent, edm::ThinnedAssociationBranches.parent(), confdb.HLTProcess.parent, FSimVertex.parent(), reco::PattRecoNode< reco::PattRecoPeak< double > >.parent(), reco::PattRecoNode< reco::PattRecoPeak< float > >.parent(), reco::PattRecoNode< Cluster >.parent(), DDI::Division.parent(), graphwalker< N, E >.parent(), graphwalker< ReferenceCountingPointer, ReferenceCountingPointer >.parent(), graphwalker< DDLogicalPart, DDPosData * >.parent(), edm::ModuleCallingContext.parent(), OpticalObject.parent(), EmDQMReco::FourVectorMonitorElements.parent, DDLSAX2FileHandler.parent(), FWPSetTableManager::PSetData.parent, DDFilteredView.parent(), edm::DocFormatHelper.parent(), DDExpandedView.parent(), DDDivision.parent(), dqmservices::TriggerSelector::TreeElement.parent(), options.HLTProcessOptions.parent, DDXMLElement.parent(), argparse.HelpFormatter._Section.parent, python.rootplot.argparse.HelpFormatter._Section.parent, globcontrol.parent, TiXmlNode.parent, Vispa.Views.LineDecayView.DecayObject.parent(), and split.

50 
51  def exportImageDialog(self, widget):
52  if self._exportImageFileName:
53  defaultname = self._exportImageFileName
54  else:
55  defaultname = QtCore.QCoreApplication.instance().getLastOpenLocation()
56 
57  filter = QtCore.QString(self._selectedFileFilter)
58  filename = str(QtGui.QFileDialog.getSaveFileName(self.parent(),"Save image...",defaultname, self._fileFiltersString, filter))
59  ext = str(filter).split(" ")[0].lower() # extract ext from selected filter
60  self.exportImage(widget, filename)
double split
Definition: MVATrainer.cc:139
def Vispa.Share.ImageExporter.ImageExporter.exportPdf (   self,
  widget,
  filename,
  format = QtGui.QPrinter.PdfFormat 
)
This function draws itself into a pdf file with given filename.

format is any format type supported by QtGui.QPrinter.

Definition at line 32 of file ImageExporter.py.

References Vispa.Share.ImageExporter.ImageExporter.exportPdfHelper().

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImage().

32 
33  def exportPdf(self, widget, filename, format=QtGui.QPrinter.PdfFormat):
34  """ This function draws itself into a pdf file with given filename.
35 
36  format is any format type supported by QtGui.QPrinter.
37  """
38  logging.debug(self.__class__.__name__ +": exportPdf()")
39 
40  printer = QtGui.QPrinter(QtGui.QPrinter.ScreenResolution)
41  printer.setOutputFileName(filename)
42  printer.setOutputFormat(format)
43  printer.setFullPage(True)
44  printer.setPaperSize(QtCore.QSizeF(widget.size()), QtGui.QPrinter.DevicePixel)
45  painter = QtGui.QPainter()
46  painter.begin(printer)
47 
48  self.exportPdfHelper(widget, painter, QtCore.QPoint(0,0))
49  painter.end()
def Vispa.Share.ImageExporter.ImageExporter.exportPdfHelper (   self,
  widget,
  painter,
  offset 
)
This function recursively does the painting for exportPdf().

Definition at line 19 of file ImageExporter.py.

References Vispa.Share.ImageExporter.ImageExporter.exportPdfHelper().

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportPdf(), and Vispa.Share.ImageExporter.ImageExporter.exportPdfHelper().

19 
20  def exportPdfHelper(self, widget, painter, offset):
21  """ This function recursively does the painting for exportPdf().
22  """
23  picture = QtGui.QPicture()
24  QtGui.QPainter.setRedirected(widget, picture)
25  QtGui.QApplication.instance().sendEvent(widget, QtGui.QPaintEvent(widget.rect()))
26  QtGui.QPainter.restoreRedirected(widget)
27  painter.drawPicture(offset, picture)
28 
29  for child in widget.children():
30  if isinstance(child, QtGui.QWidget) and child.isVisible():
31  self.exportPdfHelper(child, painter, offset + child.pos())

Member Data Documentation

Vispa.Share.ImageExporter.ImageExporter._exportImageFileName
private

Definition at line 14 of file ImageExporter.py.

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImage(), and Vispa.Share.ImageExporter.ImageExporter.exportImageDialog().

Vispa.Share.ImageExporter.ImageExporter._fileFiltersString
private

Definition at line 12 of file ImageExporter.py.

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImageDialog().

Vispa.Share.ImageExporter.ImageExporter._imageFormats
private

Definition at line 10 of file ImageExporter.py.

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImage().

Vispa.Share.ImageExporter.ImageExporter._selectedFileFilter
private

Definition at line 13 of file ImageExporter.py.

Referenced by Vispa.Share.ImageExporter.ImageExporter.exportImage(), and Vispa.Share.ImageExporter.ImageExporter.exportImageDialog().