CMS 3D CMS Logo

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__ (self, parent=None)
 
def exportImage (self, widget, filename, ext="")
 
def exportImageDialog (self, widget)
 
def exportPdf (self, widget, filename, format=QtGui.QPrinter.PdfFormat)
 
def exportPdfHelper (self, widget, painter, offset)
 

Private Member Functions

def _fileFilter (self, ext)
 

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  def __init__(self, parent=None):
9  QtCore.QObject.__init__(self, parent)
10  self._imageFormats = ["pdf", "ps"] + [str(f) for f in QtGui.QImageWriter.supportedImageFormats()]
11  fileFilters = [self._fileFilter(ft) for ft in self._imageFormats]
12  self._fileFiltersString = ";;".join(fileFilters)
13  self._selectedFileFilter = fileFilters[0]
15 
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
#define str(s)

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  def _fileFilter(self, ext):
17  return ext.upper() +" File (*."+ ext.lower() + ")"
18 
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, Vispa.Share.ImageExporter.ImageExporter.exportPdf(), and digitizers_cfi.strip.

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

61  def exportImage(self, widget, filename, ext=""):
62  self._exportImageFileName = filename
63  name = filename
64 
65  if os.path.splitext(filename)[1].lower().strip(".") in self._imageFormats:
66  name=os.path.splitext(filename)[0]
67  ext=os.path.splitext(filename)[1].lower().strip(".")
68 
69  self._selectedFileFilter = self._fileFilter(ext)
70  if ext == "pdf":
71  self.exportPdf(widget, name +"."+ ext, QtGui.QPrinter.PdfFormat)
72  elif ext == "ps":
73  self.exportPdf(widget, name +"."+ ext, QtGui.QPrinter.PostScriptFormat)
74  else:
75  childrenRect = widget.childrenRect()
76  margin = 10
77  picture = QtGui.QPixmap.grabWidget(widget, childrenRect.left() - margin, childrenRect.top() - margin, childrenRect.width() + 2*margin, childrenRect.height() + 2*margin)
78 
79  # grabWidget() does not work on Mac OS X with color gradients
80  # grabWidget() grabs pixels directly from screen --> can lead to problems if window is partly covered
81  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(), edmIntegrityCheck.PublishToFileSystem.parent, edm::ThinnedAssociationBranches.parent(), reco::PattRecoNode< Cluster >.parent(), FSimVertex.parent(), confdb.HLTProcess.parent, DDI::Division.parent(), math::GraphWalker< N, E >.parent(), math::GraphWalker< DDLogicalPart, DDPosData * >.parent(), math::GraphWalker< ReferenceCountingPointer, ReferenceCountingPointer >.parent(), GraphWalker< N, E >.parent(), edm::ModuleCallingContext.parent(), DDLSAX2FileHandler.parent(), OpticalObject.parent(), emtf::Node.parent, FWPSetTableManager::PSetData.parent, edm::DocFormatHelper.parent(), EmDQMReco::FourVectorMonitorElements.parent, DDFilteredView.parent(), cms::DDFilteredView.parent(), DDExpandedView.parent(), DDDivision.parent(), options.HLTProcessOptions.parent, dqmservices::TriggerSelector::TreeElement.parent(), DDXMLElement.parent(), BeautifulSoup.PageElement.parent, globcontrol.parent, Vispa.Views.LineDecayView.DecayObject.parent(), split, and str.

50  def exportImageDialog(self, widget):
51  if self._exportImageFileName:
52  defaultname = self._exportImageFileName
53  else:
54  defaultname = QtCore.QCoreApplication.instance().getLastOpenLocation()
55 
56  filter = QtCore.QString(self._selectedFileFilter)
57  filename = str(QtGui.QFileDialog.getSaveFileName(self.parent(),"Save image...",defaultname, self._fileFiltersString, filter))
58  ext = str(filter).split(" ")[0].lower() # extract ext from selected filter
59  self.exportImage(widget, filename)
60 
def exportImage(self, widget, filename, ext="")
#define str(s)
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  def exportPdf(self, widget, filename, format=QtGui.QPrinter.PdfFormat):
33  """ This function draws itself into a pdf file with given filename.
34 
35  format is any format type supported by QtGui.QPrinter.
36  """
37  logging.debug(self.__class__.__name__ +": exportPdf()")
38 
39  printer = QtGui.QPrinter(QtGui.QPrinter.ScreenResolution)
40  printer.setOutputFileName(filename)
41  printer.setOutputFormat(format)
42  printer.setFullPage(True)
43  printer.setPaperSize(QtCore.QSizeF(widget.size()), QtGui.QPrinter.DevicePixel)
44  painter = QtGui.QPainter()
45  painter.begin(printer)
46 
47  self.exportPdfHelper(widget, painter, QtCore.QPoint(0,0))
48  painter.end()
49 
def exportPdfHelper(self, widget, painter, offset)
def exportPdf(self, widget, filename, format=QtGui.QPrinter.PdfFormat)
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  def exportPdfHelper(self, widget, painter, offset):
20  """ This function recursively does the painting for exportPdf().
21  """
22  picture = QtGui.QPicture()
23  QtGui.QPainter.setRedirected(widget, picture)
24  QtGui.QApplication.instance().sendEvent(widget, QtGui.QPaintEvent(widget.rect()))
25  QtGui.QPainter.restoreRedirected(widget)
26  painter.drawPicture(offset, picture)
27 
28  for child in widget.children():
29  if isinstance(child, QtGui.QWidget) and child.isVisible():
30  self.exportPdfHelper(child, painter, offset + child.pos())
31 
def exportPdfHelper(self, widget, painter, offset)

Member Data Documentation

Vispa.Share.ImageExporter.ImageExporter._exportImageFileName
private
Vispa.Share.ImageExporter.ImageExporter._fileFiltersString
private
Vispa.Share.ImageExporter.ImageExporter._imageFormats
private
Vispa.Share.ImageExporter.ImageExporter._selectedFileFilter
private