aboutsummaryrefslogtreecommitdiffstats
path: root/doc/codesnippets/doc/src/snippets/code
diff options
context:
space:
mode:
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code')
-rw-r--r--doc/codesnippets/doc/src/snippets/code/doc_src_phonon-api.qdoc192
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp37
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp15
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp24
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp8
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp53
6 files changed, 329 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/doc_src_phonon-api.qdoc b/doc/codesnippets/doc/src/snippets/code/doc_src_phonon-api.qdoc
new file mode 100644
index 000000000..3f0771e37
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/doc_src_phonon-api.qdoc
@@ -0,0 +1,192 @@
+//! [0]
+class PushStream (AbstractMediaStream):
+ def __init__(self, parent = None):
+ AbstractMediaStream.__init(self, parent)
+ self.timer = QTimer(self)
+ self.setStreamSize(self.getMediaStreamSize())
+
+ self.timer.timeout.connect(self.moreData)
+ self.timer.setInterval(0)
+
+ @Slot()
+ def moreData(self):
+ data = self.getMediaData()
+ if data.isEmpty():
+ self.endOfData()
+ else:
+ self.writeData(data)
+
+ def needData(self):
+ self.timer.start()
+ self.moreData()
+
+ def enoughData(self):
+ self.timer.stop()
+//! [0]
+
+
+//! [1]
+class PushStream (AbstractMediaStream):
+ def __init__(self, parent = None):
+ AbstractMediaStream.__init(self, parent)
+ self.setStreamSize(self.getMediaStreamSize())
+
+ @Slot()
+ def needData(self):
+ data = self.getMediaData()
+ if data.isEmpty():
+ self.endOfData()
+ else:
+ self.writeData(data)
+//! [1]
+
+
+//! [2]
+self.seekStream(0)
+//! [2]
+
+
+//! [3]
+m = MediaObject()
+fileName = "/home/foo/bar.ogg"
+url = QUrl("http://www.example.com/stream.mp3")
+someBuffer = QBuffer()
+m.setCurrentSource(fileName)
+m.setCurrentSource(url)
+m.setCurrentSource(someBuffer)
+m.setCurrentSource(Phonon.Cd)
+//! [3]
+
+
+//! [4]
+player = VideoPlayer(Phonon.VideoCategory, parentWidget)
+player.finished.connect(player.deleteLater)
+player.play(url)
+//! [4]
+
+
+//! [5]
+audioPlayer.load(url)
+audioPlayer.play()
+//! [5]
+
+
+//! [6]
+media = MediaObject(self)
+media.finished.connect(self.slotFinished)
+media.setCurrentSource("/home/username/music/filename.ogg")
+
+# ...
+
+media.play()
+//! [6]
+
+
+//! [7]
+media.setCurrentSource(":/sounds/startsound.ogg")
+media.enqueue("/home/username/music/song.mp3")
+media.enqueue(":/sounds/endsound.ogg")
+//! [7]
+
+
+//! [8]
+ media.setCurrentSource(":/sounds/startsound.ogg")
+ media.aboutToFinish.connect(lambda : media.enqueue("/home/username/music/song.mp3"))
+//! [8]
+
+
+//! [9]
+x = 200
+media.setTickInterval(x)
+assert(x == producer.tickInterval())
+//! [9]
+
+
+//! [10]
+x = 200
+media.setTickInterval(x)
+assert(x >= producer.tickInterval() and x <= * producer.tickInterval())
+//! [10]
+
+
+//! [11]
+//! [12]
+ self.media.hasVideoChanged[bool].connect(hasVideoChanged)
+ self.media.setCurrentSource("somevideo.avi")
+ self.media.hasVideo() # returns false
+
+ @Slot(bool)
+ def hasVideoChanged(self, b):
+ # b == true
+ media.hasVideo() # returns true
+//! [12]
+//! [11]
+
+//! [13]
+self.setMetaArtist(media.metaData("ARTIST"))
+self.setMetaAlbum(media.metaData("ALBUM"))
+self.setMetaTitle(media.metaData("TITLE"))
+self.setMetaDate(media.metaData("DATE"))
+self.setMetaGenre(media.metaData("GENRE"))
+self.setMetaTrack(media.metaData("TRACKNUMBER"))
+self.setMetaComment(media.metaData("DESCRIPTION"))
+//! [13]
+
+
+//! [14]
+url = QUrl("http://www.example.com/music.ogg")
+media.setCurrentSource(url)
+//! [14]
+
+
+//! [15]
+progressBar.setRange(0, 100) # this is the default
+self.media.bufferStatus[int].connect(progressBar.setValue)
+//! [15]
+
+
+//! [16]
+BackendCapabilities.notifier.capabilitiesChanged.connect(...)
+//! [16]
+
+
+//! [17]
+cb = QComboBox(parentWidget)
+model = ObjectDescriptionModel(cb)
+model.setModelData(BackendCapabilities.availableAudioOutputDevices())
+cb.setModel(model)
+cb.setCurrentIndex(0) # select first entry
+//! [17]
+
+
+//! [18]
+cbIndex = cb.currentIndex()
+selectedDevice = model.modelData(cbIndex)
+//! [18]
+
+
+//! [19]
+path = Phonon.createPath(...)
+effect = Effect(this)
+path.insertEffect(effect)
+//! [19]
+
+
+//! [20]
+media = MediaObject()
+output = AudioOutput(Phonon.MusicCategory)
+path = Phonon.createPath(media, output)
+assert(path.isValid()) # for this simple case the path should always be
+ # valid - there are unit tests to ensure it
+# insert an effect
+effectList = BackendCapabilities.availableAudioEffects()
+if effectList:
+ effect = path.insertEffect(effectList[0])
+//! [20]
+
+
+//! [21]
+media = MediaObject(parent)
+vwidget = VideoWidget(parent)
+Phonon.createPath(media, vwidget)
+//! [21]
diff --git a/doc/codesnippets/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp b/doc/codesnippets/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp
new file mode 100644
index 000000000..c5d4809bb
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp
@@ -0,0 +1,37 @@
+//! [0]
+def draw(self, painter):
+ # Fully opaque draw directly without going through a pixmap.
+ if qFuzzyCompare(self.opacity, 1):
+ drawSource(painter)
+ return
+ # ...
+//! [0]
+
+//! [1]
+def draw(self, painter):
+ # ...
+ offset = QPoint()
+ if self.sourceIsPixmap():
+ # No point in drawing in device coordinates (pixmap will be scaled anyways).
+ pixmap = sourcePixmap(Qt.LogicalCoordinates, offset)
+ ...
+ painter.drawPixmap(offset, pixmap)
+ else:
+ # Draw pixmap in device coordinates to avoid pixmap scaling
+ pixmap = sourcePixmap(Qt.DeviceCoordinates, offset)
+ painter.setWorldTransform(QTransform())
+ # ...
+ painter.drawPixmap(offset, pixmap)
+ # ...
+//! [1]
+
+//! [2]
+# ...
+alphaGradient = QLinearGradient(rect.topLeft(), rect.bottomLeft())
+alphaGradient.setColorAt(0.0, Qt.transparent)
+alphaGradient.setColorAt(0.5, Qt.black)
+alphaGradient.setColorAt(1.0, Qt.transparent)
+effect = QGraphicsOpacityEffect()
+effect.setOpacityMask(alphaGradient)
+# ...
+//! [2]
diff --git a/doc/codesnippets/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp b/doc/codesnippets/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp
new file mode 100644
index 000000000..465fff192
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp
@@ -0,0 +1,15 @@
+//! [0]
+def closeEvent(self, event):
+ settings = QSettings("MyCompany", "MyApp")
+ settings.setValue("geometry", self.saveGeometry())
+ settings.setValue("windowState", self.saveState())
+ QMainWindow.closeEvent(self, event)
+//! [0]
+
+
+//! [1]
+def readSettings(self):
+ settings = QSettings("MyCompany", "MyApp")
+ restoreGeometry(settings.value("myWidget/geometry"))
+ restoreState(settings.value("myWidget/windowState"))
+//! [1]
diff --git a/doc/codesnippets/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp b/doc/codesnippets/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp
new file mode 100644
index 000000000..8d18510ce
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp
@@ -0,0 +1,24 @@
+//! [0]
+manager = QNetworkAccessManager(self)
+diskCache = QNetworkDiskCache(self)
+diskCache.setCacheDirectory("cacheDir")
+manager.setCache(diskCache)
+//! [0]
+
+//! [1]
+# do a normal request (preferred from network, as this is the default)
+request = QNetworkRequest(QUrl("http://qt.nokia.com"))
+manager.get(request)
+
+# do a request preferred from cache
+request2 = QNetworkRequest(QUrl("http://qt.nokia.com"))
+request2.setAttribute(QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.PreferCache)
+manager.get(request2)
+//! [1]
+
+//! [2]
+@Slot(QNetworkReply)
+def replyFinished(reply):
+ fromCache = reply.attribute(QNetworkRequest.SourceIsFromCacheAttribute)
+ print("page from cache? %d" % fromCache)
+//! [2]
diff --git a/doc/codesnippets/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp b/doc/codesnippets/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp
new file mode 100644
index 000000000..837ea03ee
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp
@@ -0,0 +1,8 @@
+//! [0]
+mgr = QNetworkConfigurationManager()
+activeConfigs = mgr.allConfigurations(QNetworkConfiguration.Active)
+if activeConfigs:
+ assert(mgr.isOnline())
+else:
+ assert(not mgr.isOnline())
+//! [0]
diff --git a/doc/codesnippets/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp b/doc/codesnippets/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp
new file mode 100644
index 000000000..9c8f35a22
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp
@@ -0,0 +1,53 @@
+//! [0]
+shader = QGLShader(QGLShader.Vertex)
+shader.compileSourceCode(code)
+
+program = QGLShaderProgram(context)
+program.addShader(shader)
+program.link()
+
+program.bind()
+//! [0]
+
+//! [1]
+program.addShaderFromSourceCode(QGLShader.Vertex,
+ "attribute highp vec4 vertex\n" \
+ "attribute mediump mat4 matrix\n" \
+ "void main(void)\n" \
+ "{\n" \
+ " gl_Position = matrix * vertex\n" \
+ "}")
+program.addShaderFromSourceCode(QGLShader.Fragment,
+ "uniform mediump vec4 color\n" \
+ "void main(void)\n" \
+ "{\n" \
+ " gl_FragColor = color\n" \
+ "}")
+program.link()
+program.bind()
+
+vertexLocation = program.attributeLocation("vertex")
+matrixLocation = program.attributeLocation("matrix")
+colorLocation = program.uniformLocation("color")
+//! [1]
+
+//! [2]
+triangleVertices = (
+ 60.0f, 10.0f, 0.0f,
+ 110.0f, 110.0f, 0.0f,
+ 10.0f, 110.0f, 0.0f)
+
+color = QColor(0, 255, 0, 255)
+
+pmvMatrix = QMatrix4x4()
+pmvMatrix.ortho(self.rect())
+
+program.enableAttributeArray(vertexLocation)
+program.setAttributeArray(vertexLocation, triangleVertices, 3)
+program.setUniformValue(matrixLocation, pmvMatrix)
+program.setUniformValue(colorLocation, color)
+
+glDrawArrays(GL_TRIANGLES, 0, 3)
+
+program.disableAttributeArray(vertexLocation)
+//! [2]