DocumentPropertiesWidget::DocumentPropertiesWidget(
        const QFileInfo &file, QDocumentGallery *gallery, QWidget *parent, Qt::WindowFlags flags)
    : QWidget(parent, flags)
    , request(0)
    , resultSet(0)
{
    setLayout(new QFormLayout);

    request = new QGalleryQueryRequest(gallery, this);
    request->setFilter(QDocumentGallery::filePath == file.absoluteFilePath());

    QStringList propertyNames = QStringList()
            << QDocumentGallery::fileName
            << QDocumentGallery::mimeType
            << QDocumentGallery::path
            << QDocumentGallery::fileSize
            << QDocumentGallery::lastModified
            << QDocumentGallery::lastAccessed;

    QStringList labels = QStringList()
             << tr("File Name")
             << tr("Type")
             << tr("Path")
             << tr("Size")
             << tr("Modified")
             << tr("Accessed");

    requestProperties(QDocumentGallery::File, propertyNames, labels);
}
void DocumentPropertiesWidget::requestDocumentProperties()
{
    QStringList propertyNames = QStringList()
            << QDocumentGallery::title
            << QDocumentGallery::author
            << QDocumentGallery::pageCount;

    QStringList labels = QStringList()
            << tr("Title")
            << tr("Author")
            << tr("Page Count");

    requestProperties(QDocumentGallery::Document, propertyNames, labels);
}
void DocumentPropertiesWidget::requestVideoProperties()
{
    QStringList propertyNames = QStringList()
            << QDocumentGallery::title
            << QDocumentGallery::width
            << QDocumentGallery::height
            << QDocumentGallery::duration;

    QStringList labels = QStringList()
            << tr("Title")
            << tr("Width")
            << tr("Height")
            << tr("Duration");

    requestProperties(QDocumentGallery::Video, propertyNames, labels);
}
void DocumentPropertiesWidget::requestImageProperties()
{
    QStringList propertyNames = QStringList()
            << QDocumentGallery::title
            << QDocumentGallery::width
            << QDocumentGallery::height
            << QDocumentGallery::keywords;

    QStringList labels = QStringList()
            << tr("Title")
            << tr("Width")
            << tr("Height")
            << tr("Keywords");

    requestProperties(QDocumentGallery::Image, propertyNames, labels);
}
void DocumentPropertiesWidget::requestAudioProperties()
{
    QStringList propertyNames = QStringList()
            << QDocumentGallery::title
            << QDocumentGallery::artist
            << QDocumentGallery::albumTitle
            << QDocumentGallery::albumArtist
            << QDocumentGallery::genre
            << QDocumentGallery::duration;

    QStringList labels = QStringList()
            << tr("Title")
            << tr("Artist")
            << tr("Album")
            << tr("Album Artist")
            << tr("Genre")
            << tr("Duration");

    requestProperties(QDocumentGallery::Audio, propertyNames, labels);
}
void ExternalObjectInterface::requestModelObjectProperties() 
{
  LOG(Trace, "requestModelObjectProperties");

  emit requestProperties(m_propertyNames);
}