DropSiteWindow Class Reference

#include <dropsitewindow.h>

Inheritance diagram for DropSiteWindow:

Inheritance graph
[legend]
Collaboration diagram for DropSiteWindow:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 36 of file dropsitewindow.h.

Public Slots

void updateFormatsTable (const QMimeData *mimeData)

Public Member Functions

 DropSiteWindow ()

Private Attributes

DropAreadropArea
QLabelabstractLabel
QTableWidgetformatsTable
QPushButtonclearButton
QPushButtonquitButton
QDialogButtonBoxbuttonBox


Constructor & Destructor Documentation

DropSiteWindow::DropSiteWindow (  ) 

Definition at line 29 of file dropsitewindow.cpp.

References abstractLabel, QDialogButtonBox::ActionRole, QDialogButtonBox::addButton(), QBoxLayout::addWidget(), QWidget::adjustSize(), buttonBox, clear(), clearButton, QWidget::close(), QObject::connect(), dropArea, formatsTable, QTableView::horizontalHeader(), QAbstractItemView::NoEditTriggers, quitButton, QDialogButtonBox::RejectRole, QTableWidget::setColumnCount(), QAbstractItemView::setEditTriggers(), QTableWidget::setHorizontalHeaderLabels(), QWidget::setLayout(), QWidget::setMinimumSize(), QHeaderView::setStretchLastSection(), QWidget::setWindowTitle(), QLabel::setWordWrap(), SIGNAL, SLOT, and updateFormatsTable().

00030 {
00031     abstractLabel = new QLabel(tr("This example accepts drags from other "
00032                                   "applications and displays the MIME types "
00033                                   "provided by the drag object."));
00034     abstractLabel->setWordWrap(true);
00035     abstractLabel->adjustSize();
00036 
00037     dropArea = new DropArea;
00038     connect(dropArea, SIGNAL(changed(const QMimeData *)),
00039             this, SLOT(updateFormatsTable(const QMimeData *)));
00040 
00041     QStringList labels;
00042     labels << tr("Format") << tr("Content");
00043 
00044     formatsTable = new QTableWidget;
00045     formatsTable->setColumnCount(2);
00046     formatsTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
00047     formatsTable->setHorizontalHeaderLabels(labels);
00048     formatsTable->horizontalHeader()->setStretchLastSection(true);
00049 
00050     clearButton = new QPushButton(tr("Clear"));
00051     quitButton = new QPushButton(tr("Quit"));
00052 
00053     buttonBox = new QDialogButtonBox;
00054     buttonBox->addButton(clearButton, QDialogButtonBox::ActionRole);
00055     buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);
00056 
00057     connect(quitButton, SIGNAL(pressed()), this, SLOT(close()));
00058     connect(clearButton, SIGNAL(pressed()), dropArea, SLOT(clear()));
00059 
00060     QVBoxLayout *mainLayout = new QVBoxLayout;
00061     mainLayout->addWidget(abstractLabel);
00062     mainLayout->addWidget(dropArea);
00063     mainLayout->addWidget(formatsTable);
00064     mainLayout->addWidget(buttonBox);
00065     setLayout(mainLayout);
00066 
00067     setWindowTitle(tr("Drop Site"));
00068     setMinimumSize(350, 500);
00069 }

Here is the call graph for this function:


Member Function Documentation

void DropSiteWindow::updateFormatsTable ( const QMimeData mimeData  )  [slot]

Definition at line 71 of file dropsitewindow.cpp.

References Qt::AlignLeft, Qt::AlignTop, QString::append(), QMimeData::data(), data, QMimeData::formats(), formatsTable, hex(), QMimeData::html(), i, QTableWidget::insertRow(), Qt::ItemIsEnabled, QTableView::resizeColumnToContents(), row, QTableWidget::rowCount(), QTableWidget::setItem(), QTableWidget::setRowCount(), QString::simplified(), and QMimeData::text().

Referenced by DropSiteWindow().

00072 {
00073     formatsTable->setRowCount(0);
00074     if (!mimeData)
00075         return;
00076 
00077     foreach (QString format, mimeData->formats()) {
00078         QTableWidgetItem *formatItem = new QTableWidgetItem(format);
00079         formatItem->setFlags(Qt::ItemIsEnabled);
00080         formatItem->setTextAlignment(Qt::AlignTop | Qt::AlignLeft);
00081 
00082         QString text;
00083         if (format == "text/plain") {
00084             text = mimeData->text().simplified();
00085         } else if (format == "text/html") {
00086             text = mimeData->html().simplified();
00087         } else {
00088             QByteArray data = mimeData->data(format);
00089             for (int i = 0; i < data.size() && i < 32; ++i) {
00090                 QString hex = QString("%1").arg(uchar(data[i]), 2, 16,
00091                                                 QChar('0'))
00092                                            .toUpper();
00093                 text.append(hex + " ");
00094             }
00095         }
00096 
00097         int row = formatsTable->rowCount();
00098         formatsTable->insertRow(row);
00099         formatsTable->setItem(row, 0, new QTableWidgetItem(format));
00100         formatsTable->setItem(row, 1, new QTableWidgetItem(text));
00101     }
00102 
00103     formatsTable->resizeColumnToContents(0);
00104 }


Member Data Documentation

DropArea* DropSiteWindow::dropArea [private]

Definition at line 47 of file dropsitewindow.h.

Referenced by DropSiteWindow().

QLabel* DropSiteWindow::abstractLabel [private]

Definition at line 48 of file dropsitewindow.h.

Referenced by DropSiteWindow().

QTableWidget* DropSiteWindow::formatsTable [private]

Definition at line 49 of file dropsitewindow.h.

Referenced by DropSiteWindow(), and updateFormatsTable().

QPushButton* DropSiteWindow::clearButton [private]

Definition at line 51 of file dropsitewindow.h.

Referenced by DropSiteWindow().

QPushButton* DropSiteWindow::quitButton [private]

Definition at line 52 of file dropsitewindow.h.

Referenced by DropSiteWindow().

QDialogButtonBox* DropSiteWindow::buttonBox [private]

Definition at line 53 of file dropsitewindow.h.

Referenced by DropSiteWindow().


The documentation for this class was generated from the following files:
Generated on Thu Mar 15 14:57:39 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1