diff options
author | ABBAPOH <ABBAPOH@nextmail.ru> | 2011-05-11 22:06:49 +0400 |
---|---|---|
committer | ABBAPOH <ABBAPOH@nextmail.ru> | 2011-05-11 22:06:49 +0400 |
commit | b1fe18e94bfbe8a87b9daeb8bc25230b110f7e0f (patch) | |
tree | 496002aedc70786527368ba39913c986aeee9cf3 /examples/mimetypeviewer | |
parent | 1fd63ef6b1b5e10536e9b3922491986266f8d422 (diff) |
Added example application
Diffstat (limited to 'examples/mimetypeviewer')
-rw-r--r-- | examples/mimetypeviewer/main.cpp | 16 | ||||
-rw-r--r-- | examples/mimetypeviewer/mimetypeviewer.cpp | 74 | ||||
-rw-r--r-- | examples/mimetypeviewer/mimetypeviewer.h | 35 | ||||
-rw-r--r-- | examples/mimetypeviewer/mimetypeviewer.pro | 23 | ||||
-rw-r--r-- | examples/mimetypeviewer/mimetypeviewer.ui | 145 |
5 files changed, 293 insertions, 0 deletions
diff --git a/examples/mimetypeviewer/main.cpp b/examples/mimetypeviewer/main.cpp new file mode 100644 index 0000000..3ab561d --- /dev/null +++ b/examples/mimetypeviewer/main.cpp @@ -0,0 +1,16 @@ +#include <QtGui/QApplication> +#include "mainwindow.h" +#include "mimetypeviewer.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + MimeTypeViewer v; + v.show(); + +// MainWindow w; +// w.show(); + + return a.exec(); +} diff --git a/examples/mimetypeviewer/mimetypeviewer.cpp b/examples/mimetypeviewer/mimetypeviewer.cpp new file mode 100644 index 0000000..3768f6d --- /dev/null +++ b/examples/mimetypeviewer/mimetypeviewer.cpp @@ -0,0 +1,74 @@ +#include "mimetypeviewer.h" +#include "ui_mimetypeviewer.h" + +#include <QFileDialog> +#include <QMimeDatabase> +#include <QDebug> + +MimeTypeViewer::MimeTypeViewer(QWidget *parent) : + QWidget(parent), + ui(new Ui::MimeTypeViewer), + dataBase(new QMimeDatabase(this)) +{ + ui->setupUi(this); + connect(ui->addTypesButton, SIGNAL(clicked()), SLOT(onAddTypesButtonClicked())); + connect(ui->openFileButton, SIGNAL(clicked()), SLOT(onOpenFileButtonClicked())); +} + +MimeTypeViewer::~MimeTypeViewer() +{ + delete ui; +} + +void MimeTypeViewer::addDatabase(const QString &file) +{ + QString errorString; + if (!dataBase->addMimeTypes(file, &errorString)) + qWarning() << "Can't add types from" << file << ":" << errorString; + + updateTypes(); +} + +void MimeTypeViewer::onAddTypesButtonClicked() +{ + QString file = QFileDialog::getOpenFileName(this, tr("Select database")); + if (file.isEmpty()) + return; + + addDatabase(file); +} + +void MimeTypeViewer::onOpenFileButtonClicked() +{ + QString file = QFileDialog::getOpenFileName(this, tr("Select file")); + if (file.isEmpty()) + return; + + ui->fileLineEdit->setText(file); + QMimeType mime = dataBase->findByFile(QFileInfo(file)); + if (mime) + setMimeType(mime); +} + +void MimeTypeViewer::updateTypes() +{ + ui->listWidget->clear(); + foreach (const QMimeType &mime, dataBase->mimeTypes()) { + ui->listWidget->addItem(mime.type()); + } + ui->listWidget->sortItems(); +} + +void MimeTypeViewer::setMimeType(const QMimeType &mime) +{ + ui->mimeTypeLabel->setText(mime.type()); + ui->aliasesLabel->setText(mime.aliases().join(", ")); + ui->commentLabel->setText(mime.comment()); + + QStringList list; + foreach (const MimeGlobPattern &pattern, mime.globPatterns()) { + list.append(pattern.regExp().pattern()); + } + ui->globPatternsLabel->setText(list.join(", ")); + ui->subClassesOfLabel->setText(mime.subClassesOf().join(", ")); +} diff --git a/examples/mimetypeviewer/mimetypeviewer.h b/examples/mimetypeviewer/mimetypeviewer.h new file mode 100644 index 0000000..466c05c --- /dev/null +++ b/examples/mimetypeviewer/mimetypeviewer.h @@ -0,0 +1,35 @@ +#ifndef MIMETYPEVIEWER_H +#define MIMETYPEVIEWER_H + +#include <QWidget> + +class QMimeDatabase; +class QMimeType; + +namespace Ui { + class MimeTypeViewer; +} + +class MimeTypeViewer : public QWidget +{ + Q_OBJECT + +public: + explicit MimeTypeViewer(QWidget *parent = 0); + ~MimeTypeViewer(); + + void addDatabase(const QString &file); + +public slots: + void onAddTypesButtonClicked(); + void onOpenFileButtonClicked(); + +private: + Ui::MimeTypeViewer *ui; + QMimeDatabase *dataBase; + + void updateTypes(); + void setMimeType(const QMimeType &mime); +}; + +#endif // MIMETYPEVIEWER_H diff --git a/examples/mimetypeviewer/mimetypeviewer.pro b/examples/mimetypeviewer/mimetypeviewer.pro new file mode 100644 index 0000000..6301cf9 --- /dev/null +++ b/examples/mimetypeviewer/mimetypeviewer.pro @@ -0,0 +1,23 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2011-05-07T14:29:03 +# +#------------------------------------------------- + +QT += core gui + +TARGET = MimeTypeViewer +TEMPLATE = app + +message($$PWD) + +LIBS += -L$$OUT_PWD/../../lib -lqmimetype + +INCLUDEPATH *= $$PWD/../../include + +SOURCES += main.cpp\ + mimetypeviewer.cpp + +HEADERS += mimetypeviewer.h + +FORMS += mimetypeviewer.ui diff --git a/examples/mimetypeviewer/mimetypeviewer.ui b/examples/mimetypeviewer/mimetypeviewer.ui new file mode 100644 index 0000000..be0bed6 --- /dev/null +++ b/examples/mimetypeviewer/mimetypeviewer.ui @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MimeTypeViewer</class> + <widget class="QWidget" name="MimeTypeViewer"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>640</width> + <height>480</height> + </rect> + </property> + <property name="windowTitle"> + <string>MimeTypeViewer</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" colspan="2"> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>MimeDatabase</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QListWidget" name="listWidget"/> + </item> + <item> + <widget class="QPushButton" name="addTypesButton"> + <property name="text"> + <string>Add MimeTypes</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Current flle</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>12</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QLineEdit" name="fileLineEdit"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="openFileButton"> + <property name="text"> + <string>Open File</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Mime type:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="mimeTypeLabel"> + <property name="text"> + <string><></string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Aliases:</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLabel" name="aliasesLabel"> + <property name="text"> + <string><></string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>Comment:</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QLabel" name="commentLabel"> + <property name="text"> + <string><></string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Glob patterns:</string> + </property> + </widget> + </item> + <item row="5" column="1"> + <widget class="QLabel" name="globPatternsLabel"> + <property name="text"> + <string><></string> + </property> + </widget> + </item> + <item row="6" column="0"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>SubClasses of:</string> + </property> + </widget> + </item> + <item row="6" column="1"> + <widget class="QLabel" name="subClassesOfLabel"> + <property name="text"> + <string><></string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> |