summaryrefslogtreecommitdiffstats
path: root/doc/src/snippets/dragging
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2009-03-23 09:18:55 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-03-23 09:18:55 (GMT)
commite5fcad302d86d316390c6b0f62759a067313e8a9 (patch)
treec2afbf6f1066b6ce261f14341cf6d310e5595bc1 /doc/src/snippets/dragging
downloadQt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2
Long live Qt 4.5!
Diffstat (limited to 'doc/src/snippets/dragging')
-rw-r--r--doc/src/snippets/dragging/dragging.pro4
-rw-r--r--doc/src/snippets/dragging/images.qrc5
-rw-r--r--doc/src/snippets/dragging/images/file.pngbin0 -> 313 bytes
-rw-r--r--doc/src/snippets/dragging/main.cpp52
-rw-r--r--doc/src/snippets/dragging/mainwindow.cpp111
-rw-r--r--doc/src/snippets/dragging/mainwindow.h72
6 files changed, 244 insertions, 0 deletions
diff --git a/doc/src/snippets/dragging/dragging.pro b/doc/src/snippets/dragging/dragging.pro
new file mode 100644
index 0000000..bedfc76
--- /dev/null
+++ b/doc/src/snippets/dragging/dragging.pro
@@ -0,0 +1,4 @@
+HEADERS = mainwindow.h
+RESOURCES = images.qrc
+SOURCES = main.cpp \
+ mainwindow.cpp
diff --git a/doc/src/snippets/dragging/images.qrc b/doc/src/snippets/dragging/images.qrc
new file mode 100644
index 0000000..30b8a29
--- /dev/null
+++ b/doc/src/snippets/dragging/images.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>images/file.png</file>
+</qresource>
+</RCC>
diff --git a/doc/src/snippets/dragging/images/file.png b/doc/src/snippets/dragging/images/file.png
new file mode 100644
index 0000000..9520080
--- /dev/null
+++ b/doc/src/snippets/dragging/images/file.png
Binary files differ
diff --git a/doc/src/snippets/dragging/main.cpp b/doc/src/snippets/dragging/main.cpp
new file mode 100644
index 0000000..19c7c20
--- /dev/null
+++ b/doc/src/snippets/dragging/main.cpp
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "mainwindow.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ MainWindow *window = new MainWindow;
+ window->show();
+ return app.exec();
+}
diff --git a/doc/src/snippets/dragging/mainwindow.cpp b/doc/src/snippets/dragging/mainwindow.cpp
new file mode 100644
index 0000000..8c79895
--- /dev/null
+++ b/doc/src/snippets/dragging/mainwindow.cpp
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent)
+{
+ QFrame *centralFrame = new QFrame(this);
+
+ QLabel *nameLabel = new QLabel(tr("Comment:"), centralFrame);
+ commentEdit = new QTextEdit(centralFrame);
+ QLabel *dragLabel = new QLabel(tr("<p>Drag the icon to a filer "
+ "window or the desktop background:</p>"),
+ centralFrame);
+ iconLabel = new QLabel(centralFrame);
+ iconPixmap.load(":/images/file.png");
+ iconLabel->setPixmap(iconPixmap);
+
+ QGridLayout *grid = new QGridLayout(centralFrame);
+ grid->addWidget(nameLabel, 0, 0);
+ grid->addWidget(commentEdit, 1, 0, 1, 2);
+ grid->addWidget(dragLabel, 2, 0);
+ grid->addWidget(iconLabel, 2, 1);
+
+ statusBar();
+ setCentralWidget(centralFrame);
+ setWindowTitle(tr("Dragging"));
+}
+
+//! [0]
+void MainWindow::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton
+ && iconLabel->geometry().contains(event->pos())) {
+
+//! [1]
+ QDrag *drag = new QDrag(this);
+ QMimeData *mimeData = new QMimeData;
+
+ mimeData->setText(commentEdit->toPlainText());
+ drag->setMimeData(mimeData);
+//! [1]
+ drag->setPixmap(iconPixmap);
+
+ Qt::DropAction dropAction = drag->exec();
+//! [0]
+
+ QString actionText;
+ switch (dropAction) {
+ case Qt::CopyAction:
+ actionText = tr("The text was copied.");
+ break;
+ case Qt::MoveAction:
+ actionText = tr("The text was moved.");
+ break;
+ case Qt::LinkAction:
+ actionText = tr("The text was linked.");
+ break;
+ case Qt::IgnoreAction:
+ actionText = tr("The drag was ignored.");
+ break;
+ default:
+ actionText = tr("Unknown action.");
+ break;
+ }
+ statusBar()->showMessage(actionText);
+//! [2]
+ }
+}
+//! [2]
diff --git a/doc/src/snippets/dragging/mainwindow.h b/doc/src/snippets/dragging/mainwindow.h
new file mode 100644
index 0000000..6c90e60
--- /dev/null
+++ b/doc/src/snippets/dragging/mainwindow.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QPixmap>
+#include <QPoint>
+
+class QLabel;
+class QLineEdit;
+class QMouseEvent;
+class QTextEdit;
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow(QWidget *parent = 0);
+
+protected:
+ void mousePressEvent(QMouseEvent *event);
+
+private:
+ QLabel *iconLabel;
+ QLineEdit *nameEdit;
+ QPixmap iconPixmap;
+ QPoint dragStartPosition;
+ QTextEdit *commentEdit;
+};
+
+#endif