diff options
-rwxr-xr-x | dildo.png | bin | 0 -> 874 bytes | |||
-rw-r--r-- | filesystemdirproxy.cpp | 1 | ||||
-rw-r--r-- | filesystemdirproxy.h | 2 | ||||
-rw-r--r-- | filesystemfileproxy.cpp | 14 | ||||
-rw-r--r-- | filesystemfileproxy.h | 24 | ||||
-rw-r--r-- | filesystemwidget.cpp | 53 | ||||
-rw-r--r-- | filesystemwidget.h | 6 | ||||
-rw-r--r-- | fileview.cpp | 30 | ||||
-rw-r--r-- | fileview.h | 26 | ||||
-rw-r--r-- | helper.cpp | 39 | ||||
-rw-r--r-- | helper.h | 20 | ||||
-rw-r--r-- | main.cpp | 3 | ||||
-rw-r--r-- | movie.svg | 148 | ||||
-rw-r--r-- | picture.svg | 131 | ||||
-rw-r--r-- | shemov.cpp | 30 | ||||
-rw-r--r-- | shemov.h | 29 | ||||
-rw-r--r-- | shemov.pro | 16 | ||||
-rw-r--r-- | shemov.qrc | 9 | ||||
-rw-r--r-- | shemoviconprovider.cpp | 29 | ||||
-rw-r--r-- | shemoviconprovider.h | 24 |
20 files changed, 632 insertions, 2 deletions
diff --git a/dildo.png b/dildo.png Binary files differnew file mode 100755 index 0000000..8a167cb --- /dev/null +++ b/dildo.png diff --git a/filesystemdirproxy.cpp b/filesystemdirproxy.cpp index ff97309..6e9a714 100644 --- a/filesystemdirproxy.cpp +++ b/filesystemdirproxy.cpp @@ -20,3 +20,4 @@ bool FilesystemDirProxy::filterAcceptsRow(int sourcerow, const QModelIndex &sour } return m->isDir(idx); } + diff --git a/filesystemdirproxy.h b/filesystemdirproxy.h index e86773f..67c30de 100644 --- a/filesystemdirproxy.h +++ b/filesystemdirproxy.h @@ -10,6 +10,8 @@ #include <QSortFilterProxyModel> +class QModelIndex; + class FilesystemDirProxy : public QSortFilterProxyModel { Q_OBJECT public: diff --git a/filesystemfileproxy.cpp b/filesystemfileproxy.cpp new file mode 100644 index 0000000..22f8868 --- /dev/null +++ b/filesystemfileproxy.cpp @@ -0,0 +1,14 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include <QModelIndex> +#include <QVariant> + +#include "filesystemfileproxy.h" + +FilesystemFileProxy::FilesystemFileProxy(QObject *parent) : QSortFilterProxyModel(parent) {} + diff --git a/filesystemfileproxy.h b/filesystemfileproxy.h new file mode 100644 index 0000000..cb32a77 --- /dev/null +++ b/filesystemfileproxy.h @@ -0,0 +1,24 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef FILESYSTEMFILEPROXY_H +#define FILESYSTEMFILEPROXY_H + +#include <QSortFilterProxyModel> + +class QModelIndex; +class QVariant; + +class FilesystemFileProxy : public QSortFilterProxyModel { + Q_OBJECT + public: + FilesystemFileProxy(QObject *parent = 0); + ~FilesystemFileProxy() {}; +}; + +#endif + diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index 5e30b66..3798dcc 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -7,16 +7,69 @@ #include <QDirModel> #include <QTreeView> +#include <QSettings> +#include <QDir> +#include <QSplitter> +#include <QVBoxLayout> #include "filesystemwidget.h" #include "filesystemdirproxy.h" +#include "fileview.h" +#include "shemoviconprovider.h" FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent) { mModel = new QDirModel; mModel->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); + mModel->setSorting(QDir::DirsFirst | QDir::IgnoreCase); + SheMovIconProvider *p = new SheMovIconProvider; + mModel->setIconProvider(p); + mDirProxy = new FilesystemDirProxy; mDirProxy->setSourceModel(mModel); mDirView = new QTreeView; mDirView->setModel(mDirProxy); + mDirView->setColumnHidden(1, true); + mDirView->setColumnHidden(2, true); + mDirView->setColumnHidden(3, true); + mDirView->setRootIsDecorated(false); + + mFileView = new FileView; + mFileView->setModel(mModel); + connect(mDirView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(directoryChanged(const QModelIndex &))); + + QSettings s; + QString startDir = s.value("paths/start", QDir::homePath()).toString(); + QModelIndex startIndex = mModel->index(startDir); + if(startIndex.isValid()){ + QModelIndex proxyIndex = mDirProxy->mapFromSource(startIndex); + mDirView->setCurrentIndex(proxyIndex); + mDirView->setExpanded(proxyIndex, true); + QModelIndex parent = proxyIndex.parent(); + mFileView->setRootIndex(startIndex); + do { + mDirView->setExpanded(parent, true); + parent = parent.parent(); + }while(parent.isValid()); + } + + mFileView->resizeColumnToContents(0); + QVBoxLayout *mainLayout = new QVBoxLayout; + QSplitter *splitter = new QSplitter; + splitter->addWidget(mDirView); + splitter->addWidget(mFileView); + splitter->setStretchFactor(0, 1); + splitter->setStretchFactor(1, 2); + mainLayout->addWidget(splitter); + + setLayout(mainLayout); +} + +void FilesystemWidget::directoryChanged(const QModelIndex &index){ + QModelIndex real = mDirProxy->mapToSource(index); + if(!index.isValid()){ + return; + } + mFileView->setRootIndex(real); } + diff --git a/filesystemwidget.h b/filesystemwidget.h index 63707da..380fa22 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -13,6 +13,8 @@ class QDirModel; class QTreeView; class FilesystemDirProxy; +class FileView; +class QModelIndex; class FilesystemWidget : public QWidget { Q_OBJECT @@ -20,9 +22,13 @@ class FilesystemWidget : public QWidget { FilesystemWidget(QWidget *parent = 0); ~FilesystemWidget() {}; + public slots: + void directoryChanged(const QModelIndex &index); + private: QDirModel *mModel; QTreeView *mDirView; + FileView *mFileView; FilesystemDirProxy *mDirProxy; }; diff --git a/fileview.cpp b/fileview.cpp new file mode 100644 index 0000000..b402bd1 --- /dev/null +++ b/fileview.cpp @@ -0,0 +1,30 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include <QContextMenuEvent> +#include <QMenu> +#include <QAction> + +#include "fileview.h" + +FileView::FileView(QWidget *parent) : QTreeView(parent) { + setRootIsDecorated(false); +} + +void FileView::contextMenuEvent(QContextMenuEvent *e){ + QMenu contextMenu(this); + int ctr(0); + foreach(QAction *a, actions()){ + contextMenu.addAction(a); + if(false){ + contextMenu.addSeparator(); + } + ++ctr; + } + contextMenu.exec(e->globalPos()); +} + diff --git a/fileview.h b/fileview.h new file mode 100644 index 0000000..3382132 --- /dev/null +++ b/fileview.h @@ -0,0 +1,26 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef FILEVIEW_H +#define FILEVIEW_H + +#include <QTreeView> + +class QContextMenuEvent; + +class FileView : public QTreeView { + Q_OBJECT + public: + FileView(QWidget *parent = 0); + ~FileView() {}; + + protected: + virtual void contextMenuEvent(QContextMenuEvent *e); +}; + +#endif + diff --git a/helper.cpp b/helper.cpp new file mode 100644 index 0000000..116efa5 --- /dev/null +++ b/helper.cpp @@ -0,0 +1,39 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include <QString> +#include <QByteArray> + +#include "helper.h" + +namespace Helper { + const QString mimeType(const QString &path){ + QString retval; + magic_t mc = magic_open(MAGIC_MIME_TYPE); + QByteArray name = path.toUtf8(); + if(mc){ + magic_load(mc, 0); + const char* magic_c = magic_file(mc, name.constData()); + retval = QString(magic_c); + magic_close(mc); + } + if(retval.toLower().startsWith("application/octet-stream")){ + magic_t mc = magic_open(MAGIC_NONE); + if(mc){ + magic_load(mc, 0); + const char* magic_c = magic_file(mc, name.constData()); + QString desc(magic_c); + magic_close(mc); + if(desc.toLower().contains("mpeg sequence") || desc.toLower().contains("microsoft asf")){ + retval = "video/"; + } + } + return retval; + } + } +} + diff --git a/helper.h b/helper.h new file mode 100644 index 0000000..033f7d6 --- /dev/null +++ b/helper.h @@ -0,0 +1,20 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef HELPER_H +#define HELPER_H + +#include <magic.h> + +class QString; + +namespace Helper { + const QString mimeType(const QString &path); +} + +#endif + @@ -7,11 +7,14 @@ #include <QApplication> +#include "shemov.h" + int main(int argc, char **argv){ QApplication app(argc, argv); QCoreApplication::setOrganizationName("Sissie's, Inc."); QCoreApplication::setOrganizationDomain("hadante.servebeer.com"); QCoreApplication::setApplicationName("SheMov"); QCoreApplication::setApplicationVersion("0.1"); + (void) new SheMov; return app.exec(); } diff --git a/movie.svg b/movie.svg new file mode 100644 index 0000000..4c85bb6 --- /dev/null +++ b/movie.svg @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16px" + height="16px" + id="svg2383" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="movie.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs2385"> + <linearGradient + inkscape:collect="always" + id="linearGradient3207"> + <stop + style="stop-color:#fd161d;stop-opacity:1;" + offset="0" + id="stop3209" /> + <stop + style="stop-color:#fd161d;stop-opacity:0;" + offset="1" + id="stop3211" /> + </linearGradient> + <linearGradient + id="linearGradient3195"> + <stop + style="stop-color:#d30000;stop-opacity:1;" + offset="0" + id="stop3197" /> + <stop + style="stop-color:#aa0000;stop-opacity:0;" + offset="1" + id="stop3199" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3187"> + <stop + style="stop-color:#fd161d;stop-opacity:1;" + offset="0" + id="stop3189" /> + <stop + style="stop-color:#fd161d;stop-opacity:0;" + offset="1" + id="stop3191" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective2391" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3187" + id="linearGradient3193" + x1="0.13069308" + y1="8.0712867" + x2="15.860396" + y2="8.0712867" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3195" + id="linearGradient3201" + x1="0.13069308" + y1="8.0712867" + x2="15.860396" + y2="8.0712867" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3207" + id="linearGradient3213" + x1="0.016135588" + y1="8.1679688" + x2="16.266136" + y2="8.1679688" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.197802" + inkscape:cx="9.7990716" + inkscape:cy="6.1980198" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1680" + inkscape:window-height="1028" + inkscape:window-x="1675" + inkscape:window-y="-3"> + <inkscape:grid + type="xygrid" + id="grid2393" /> + </sodipodi:namedview> + <metadata + id="metadata2388"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="fill:url(#linearGradient3201);stroke:url(#linearGradient3193);stroke-width:0.98890400000000001;stroke-opacity:1;fill-opacity:1" + id="rect3183" + width="14.740799" + height="14.967531" + x="0.62514508" + y="0.58752114" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#0000c1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold Oblique" + x="0.0390625" + y="13.832031" + id="text3203" + sodipodi:linespacing="100%"><tspan + sodipodi:role="line" + id="tspan3205" + x="0.0390625" + y="13.832031" + style="stroke:none">M</tspan></text> + </g> +</svg> diff --git a/picture.svg b/picture.svg new file mode 100644 index 0000000..119879f --- /dev/null +++ b/picture.svg @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16px" + height="16px" + id="svg2383" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="picture.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs2385"> + <linearGradient + id="linearGradient3195"> + <stop + style="stop-color:#37dead;stop-opacity:1;" + offset="0" + id="stop3197" /> + <stop + id="stop3235" + offset="0.5" + style="stop-color:#70f030;stop-opacity:0.49803922;" /> + <stop + style="stop-color:#aa0000;stop-opacity:0;" + offset="1" + id="stop3199" /> + </linearGradient> + <linearGradient + id="linearGradient3187"> + <stop + style="stop-color:#1fd31d;stop-opacity:1;" + offset="0" + id="stop3189" /> + <stop + style="stop-color:#fd161d;stop-opacity:0;" + offset="1" + id="stop3191" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective2391" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3187" + id="linearGradient3193" + x1="0.13069308" + y1="8.0712867" + x2="15.860396" + y2="8.0712867" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3195" + id="linearGradient3201" + x1="0.13069308" + y1="8.0712867" + x2="15.860396" + y2="8.0712867" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="22.197802" + inkscape:cx="9.7990716" + inkscape:cy="6.1980198" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1680" + inkscape:window-height="1028" + inkscape:window-x="1675" + inkscape:window-y="-3"> + <inkscape:grid + type="xygrid" + id="grid2393" /> + </sodipodi:namedview> + <metadata + id="metadata2388"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <rect + style="fill:url(#linearGradient3201);fill-opacity:1;stroke:url(#linearGradient3193);stroke-width:0.988904;stroke-opacity:1" + id="rect3183" + width="14.740799" + height="14.967531" + x="0.62514508" + y="0.58752114" + inkscape:transform-center-x="11.983168" + inkscape:transform-center-y="-0.45049505" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:oblique;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#0000e1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold Oblique" + x="2.078125" + y="13.832031" + id="text3237" + sodipodi:linespacing="100%"><tspan + sodipodi:role="line" + id="tspan3239" + x="2.078125" + y="13.832031">P</tspan></text> + </g> +</svg> diff --git a/shemov.cpp b/shemov.cpp new file mode 100644 index 0000000..ea84a7e --- /dev/null +++ b/shemov.cpp @@ -0,0 +1,30 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include <QTabWidget> +#include <QVBoxLayout> + +#include "shemov.h" +#include "filesystemwidget.h" + +SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { + mFSWidget = new FilesystemWidget; + + mTab = new QTabWidget; + mTab->addTab(mFSWidget, tr("Filemanager")); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(mTab); + + QWidget *centralWidget = new QWidget; + centralWidget->setLayout(mainLayout); + setCentralWidget(centralWidget); + show(); + +} + + diff --git a/shemov.h b/shemov.h new file mode 100644 index 0000000..2de2adc --- /dev/null +++ b/shemov.h @@ -0,0 +1,29 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef SHEMOV_H +#define SHEMOV_H + +#include <QMainWindow> + +class QTabWidget; +class FilesystemWidget; + +class SheMov : public QMainWindow { + Q_OBJECT + public: + SheMov(QWidget *parent = 0, Qt::WindowFlags flags = 0); + ~SheMov() {}; + + private: + QTabWidget *mTab; + FilesystemWidget *mFSWidget; + +}; + +#endif + @@ -8,11 +8,23 @@ movieitem.cpp \ moviemodel.cpp \ coveritem.cpp \ filesystemdirproxy.cpp \ -filesystemwidget.cpp +filesystemwidget.cpp \ +fileview.cpp \ +shemov.cpp \ +filesystemfileproxy.cpp \ +helper.cpp \ +shemoviconprovider.cpp HEADERS = listitem.h \ listmodel.h \ movieitem.h \ moviemodel.h \ coveritem.h \ filesystemdirproxy.h \ -filesystemwidget.h +filesystemwidget.h \ +fileview.h \ +shemov.h \ +filesystemfileproxy.h \ +helper.h \ +shemoviconprovider.h +LIBS += -lmagic +RESOURCES = shemov.qrc diff --git a/shemov.qrc b/shemov.qrc new file mode 100644 index 0000000..9763baf --- /dev/null +++ b/shemov.qrc @@ -0,0 +1,9 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> + <qresource> + <file>movie.svg</file> + <file>dildo.png</file> + <file>picture.svg</file> + </qresource> +</RCC> + diff --git a/shemoviconprovider.cpp b/shemoviconprovider.cpp new file mode 100644 index 0000000..f0ea01e --- /dev/null +++ b/shemoviconprovider.cpp @@ -0,0 +1,29 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include <QIcon> +#include <QFileInfo> + +#include "shemoviconprovider.h" +#include "helper.h" + +SheMovIconProvider::SheMovIconProvider() {}; + +QIcon SheMovIconProvider::icon(const QFileInfo &info) const { + if(info.isDir()){ + return QIcon(":/dildo.png"); + } + QString type = Helper::mimeType(info.absoluteFilePath()); + if(type.toLower().startsWith("video")){ + return QIcon(":/movie.svg"); + } + if(type.toLower().startsWith("image")){ + return QIcon(":/picture.svg"); + } + return QFileIconProvider::icon(info); +} + diff --git a/shemoviconprovider.h b/shemoviconprovider.h new file mode 100644 index 0000000..04af45b --- /dev/null +++ b/shemoviconprovider.h @@ -0,0 +1,24 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef SHEMOVICONPROVIDER_H +#define SHEMOVICONPROVIDER_H + +#include <QFileIconProvider> + +class QIcon; +class QFileInfo; + +class SheMovIconProvider : public QFileIconProvider { + public: + SheMovIconProvider(); + ~SheMovIconProvider() {}; + virtual QIcon icon(const QFileInfo &info) const; +}; + +#endif + |