summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-12-27 15:52:30 +0100
committerArno <am@disconnect.de>2010-12-27 15:52:30 +0100
commit51f830068cb6b4847468aced1aa654932c39bf80 (patch)
tree0eff6453050a77999577310746e24f6182493cf3
parent7bb7295a9033c0a6729b301e7c9b76393539e29a (diff)
downloadSheMov-51f830068cb6b4847468aced1aa654932c39bf80.tar.gz
SheMov-51f830068cb6b4847468aced1aa654932c39bf80.tar.bz2
SheMov-51f830068cb6b4847468aced1aa654932c39bf80.zip
Made all icons in qresource available for UI
Every registered icon can be chosen as Qt::DecorationRole for all models at once. Suitable icons must be added to SmGlobals::mIcons. Key is a descriptive text, value is the icon path. To make things easier SmTreeModel got two new member functions: -QIcon decorationIcon() returning the current Icon -void setDecorationIcon() to set the current Icon The current Icon is initialized in the constructor from QSettings - ui/iconfolder To update the TreeViews connected to the FileSystemModel a little hack is needed: Just set the QFileIconProvider again. This causes the Model to update connected views.
-rw-r--r--archivetreeview.cpp10
-rw-r--r--configurationdialog.cpp14
-rw-r--r--configurationdialog.h2
-rw-r--r--filestreemodel.cpp2
-rw-r--r--filestreemodel.h1
-rw-r--r--filesystemwidget.cpp8
-rw-r--r--filesystemwidget.h3
-rw-r--r--mappingtablewidget.cpp2
-rw-r--r--mappingtablewidget.h5
-rw-r--r--seriestreemodel.cpp2
-rw-r--r--shemov.cpp1
-rw-r--r--shemoviconprovider.cpp6
-rw-r--r--smglobals.cpp16
-rw-r--r--smglobals.h2
-rw-r--r--smtreemodel.cpp8
-rw-r--r--smtreemodel.h6
16 files changed, 75 insertions, 13 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 1a58041..16699dc 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -203,6 +203,16 @@ void ArchiveTreeView::readSettings(){
seriesWidget()->seriesTree()->readSettings();
filesWidget()->filesTree()->readSettings();
mFilesModel->readSettings();
+ QSettings s;
+ QString iconName = s.value("ui/foldericon", "Dildo").toString();
+ const QHash<QString, QString> icons = SmGlobals::instance()->icons();
+ QIcon decorationIcon = QIcon(icons.value(iconName));
+ mFilesModel->setDecorationIcon(decorationIcon);
+ mSeriesModel->setDecorationIcon(decorationIcon);
+ MappingTableItemModel *actorsModel = mActorsWidget->model();
+ actorsModel->setDecorationIcon(decorationIcon);
+ MappingTableItemModel *genreModel = mGenresWidget->model();
+ genreModel->setDecorationIcon(decorationIcon);
}
void ArchiveTreeView::currentChanged(const QItemSelection &selected, const QItemSelection &deselected){
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index 7008e76..96c1d1b 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -33,9 +33,12 @@
#include <QPalette>
#include <QImage>
#include <QPainter>
+#include <QStandardItemModel>
+#include <QStandardItem>
#include "configurationdialog.h"
#include "programconfigurator.h"
+#include "smglobals.h"
ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){
//setup
@@ -109,8 +112,13 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : Q
QGroupBox *iconBox = new QGroupBox(tr("Icon for folders"));
QHBoxLayout *iconLayout = new QHBoxLayout;
mIconForFolder = new QComboBox;
- QStringList icons = QStringList() << tr("Dildo") << tr("Normal");
- mIconForFolder->addItems(icons);
+ mIconModel = new QStandardItemModel;
+ const QHash<QString, QString> icons = SmGlobals::instance()->icons();
+ for(QHash<QString, QString>::const_iterator it = icons.constBegin(); it != icons.constEnd(); ++it){
+ QStandardItem *item = new QStandardItem(QIcon(it.value()), it.key());
+ mIconModel->appendRow(item);
+ }
+ mIconForFolder->setModel(mIconModel);
iconLayout->addWidget(mIconForFolder);
iconBox->setLayout(iconLayout);
@@ -289,7 +297,7 @@ void ConfigurationDialog::readSettings(){
QSettings s;
//read misc
- QString icon = s.value("ui/foldericon", "Normal").toString();
+ QString icon = s.value("ui/foldericon", "Dildo").toString();
int pos = mIconForFolder->findText(icon);
if(pos != -1){
mIconForFolder->setCurrentIndex(pos);
diff --git a/configurationdialog.h b/configurationdialog.h
index 0f7f76e..90a2b22 100644
--- a/configurationdialog.h
+++ b/configurationdialog.h
@@ -18,6 +18,7 @@ class QComboBox;
class QCheckBox;
class QSpinBox;
class QLabel;
+class QStandardItemModel;
class ProgramConfigurator;
@@ -77,6 +78,7 @@ class ConfigurationDialog : public QDialog {
QPushButton *mLocalColorButton;
QCheckBox *mAlternateColors;
QHash<QWidget*, QColor> mColors;
+ QStandardItemModel *mIconModel;
};
#endif
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index 1a8b959..2e7ad83 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -185,7 +185,7 @@ QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{
}
if(role == Qt::DecorationRole){
if(index.column() == 0){
- return QIcon(":/dildo.png");
+ return decorationIcon();
}
}
if(role == Qt::TextAlignmentRole){
diff --git a/filestreemodel.h b/filestreemodel.h
index 23e5f75..c31b282 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -13,6 +13,7 @@
#include <QHash>
#include <QMap>
#include <QColor>
+#include <QIcon>
#include "smtreemodel.h"
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index 876d27d..f4a9d24 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -43,8 +43,8 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar
mModel->setRootPath("/");
mModel->setFilter(QDir::AllEntries | QDir::NoDot);
mModel->setReadOnly(false);
- SheMovIconProvider *p = new SheMovIconProvider;
- mModel->setIconProvider(p);
+ mIconProvider = new SheMovIconProvider;
+ mModel->setIconProvider(mIconProvider);
mDirProxy = new FilesystemDirProxy;
mDirProxy->setSourceModel(mModel);
@@ -393,6 +393,10 @@ void FilesystemWidget::writeSettings(){
s.setValue("windows/picviewer", mPicViewer->pos());
}
+void FilesystemWidget::configChanged(){
+ mModel->setIconProvider(mIconProvider);
+}
+
void FilesystemWidget::dvdMount(){
QSettings s;
QString mountDir = s.value("paths/dvdmount").toString();
diff --git a/filesystemwidget.h b/filesystemwidget.h
index b54fdad..ed1f288 100644
--- a/filesystemwidget.h
+++ b/filesystemwidget.h
@@ -28,6 +28,7 @@ class PictureViewer;
class QStringList;
class FileSystemModel;
class QSqlQuery;
+class SheMovIconProvider;
class FilesystemWidget : public QWidget {
Q_OBJECT
@@ -63,6 +64,7 @@ class FilesystemWidget : public QWidget {
void playSelected(const QString &player = QString());
void readSettings();
void writeSettings();
+ void configChanged();
void dvdMount();
void markSeen();
@@ -91,6 +93,7 @@ class FilesystemWidget : public QWidget {
QString mTemplate;
qint64 mSize;
PictureViewer *mPicViewer;
+ SheMovIconProvider *mIconProvider;
QString mLastDir;
int mClipboardMode;
};
diff --git a/mappingtablewidget.cpp b/mappingtablewidget.cpp
index 74763b9..d36749b 100644
--- a/mappingtablewidget.cpp
+++ b/mappingtablewidget.cpp
@@ -116,7 +116,7 @@ MappingTableItemModel::MappingTableItemModel(QObject *parent) : QStringListModel
QVariant MappingTableItemModel::data(const QModelIndex &index, int role) const{
if(role == Qt::DecorationRole){
- return QIcon(":/dildo.png");
+ return decorationIcon();
}
return QStringListModel::data(index, role);
}
diff --git a/mappingtablewidget.h b/mappingtablewidget.h
index 34b877a..38c4fe1 100644
--- a/mappingtablewidget.h
+++ b/mappingtablewidget.h
@@ -51,10 +51,15 @@ class MappingTableItemModel : public QStringListModel {
//data + flags
virtual QVariant data(const QModelIndex &index, int role) const;
virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+ void setDecorationIcon(const QIcon &icon) { mDecorationIcon = icon; }
+ const QIcon decorationIcon() const { return mDecorationIcon; }
//find
int lowerBound(const QString &value) const;
QModelIndex find(const QString &value) const;
+
+ private:
+ QIcon mDecorationIcon;
};
#endif // MAPPINGTABLEWIDGET_H
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp
index bd82acc..e881eb5 100644
--- a/seriestreemodel.cpp
+++ b/seriestreemodel.cpp
@@ -95,7 +95,7 @@ QVariant SeriesTreeModel::data(const QModelIndex &index, int role) const{
}
if(role == Qt::DecorationRole){
if(index.column() == 0){
- return QIcon(":/dildo.png");
+ return decorationIcon();
}
}
if(role == Qt::EditRole){
diff --git a/shemov.cpp b/shemov.cpp
index 3170699..286d33b 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -60,6 +60,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla
setWindowTitle(mFSWidget->windowTitle());
mTab = new QTabWidget;
mTab->addTab(mFSWidget, tr("Filemanager"));
+ connect(this, SIGNAL(configChanged()), mFSWidget, SLOT(configChanged()));
//ArchiveTreeView
mATree = new ArchiveTreeView;
diff --git a/shemoviconprovider.cpp b/shemoviconprovider.cpp
index 569956c..c46fa13 100644
--- a/shemoviconprovider.cpp
+++ b/shemoviconprovider.cpp
@@ -11,6 +11,7 @@
#include "shemoviconprovider.h"
#include "helper.h"
+#include "smglobals.h"
SheMovIconProvider::SheMovIconProvider() {};
@@ -18,9 +19,8 @@ QIcon SheMovIconProvider::icon(const QFileInfo &info) const {
if(info.isDir()){
QSettings s;
QString fi(s.value("ui/foldericon").toString());
- if(fi == "Dildo"){
- return QIcon(":/dildo.png");
- }
+ const QHash<QString, QString> icons = SmGlobals::instance()->icons();
+ return QIcon(icons.value(fi));
}
QString type = Helper::mimeType(info.absoluteFilePath());
if(type.toLower().startsWith("video")){
diff --git a/smglobals.cpp b/smglobals.cpp
index f163ac1..f0906f1 100644
--- a/smglobals.cpp
+++ b/smglobals.cpp
@@ -107,7 +107,21 @@ QSize SmGlobals::cursorSize() {
return mCursorSize;
}
-SmGlobals::SmGlobals() : mPictureViewer(0), mFrameCache(0) {}
+SmGlobals::SmGlobals() : mPictureViewer(0), mFrameCache(0){
+ mIcons.insert("Dildo", ":/dildo.png");
+ mIcons.insert("Dick to left", ":/back_dick.png");
+ mIcons.insert("Dick pointing up", ":/up_dick.png");
+ mIcons.insert("Chastity belt", ":/chastity_belt.png");
+ mIcons.insert("Clitoris", ":/clitoris.png");
+ mIcons.insert("Gaping ass", ":/gaping_ass.png");
+ mIcons.insert("Nipple pointing up", ":/nipple_up.png");
+ mIcons.insert("Bald pussy", ":/bald_pussy.png");
+ mIcons.insert("Prince Albert", ":/prince_albert.png");
+ mIcons.insert("Diaper", ":/diaper.png");
+ mIcons.insert("High heels", ":/higheels.png");
+ mIcons.insert("Ball gag", ":/ball_gag.png");
+ mIcons.insert("French Maid Dress", ":/french_maid_dress.png");
+}
//FrameCache
SmGlobals::FrameCache::FrameCache(QObject *parent) : QObject(parent), mMagic(0xDEADBEEF), mCacheSubDir(".frameCache"), mCacheFileName("cache") {
diff --git a/smglobals.h b/smglobals.h
index b994b53..e86493c 100644
--- a/smglobals.h
+++ b/smglobals.h
@@ -46,6 +46,7 @@ class SmGlobals : public QObject {
PictureViewer *pictureViewer();
FrameCache *frameCache();
QSize cursorSize();
+ const QHash<QString, QString> & icons() const { return mIcons; }
private:
SmGlobals();
@@ -56,6 +57,7 @@ class SmGlobals : public QObject {
PictureViewer *mPictureViewer;
SmGlobals::FrameCache *mFrameCache;
QSize mCursorSize;
+ QHash<QString, QString> mIcons;
};
#endif
diff --git a/smtreemodel.cpp b/smtreemodel.cpp
index 2712cef..8b51bab 100644
--- a/smtreemodel.cpp
+++ b/smtreemodel.cpp
@@ -6,9 +6,11 @@
*/
#include <QIcon>
+#include <QSettings>
#include "smtreemodel.h"
#include "smtreeitem.h"
+#include "smglobals.h"
SmTreeModel::SmTreeModel(const QStringList &headers, QObject *parent) : QAbstractItemModel(parent), mRootItem(0){
mHeaders = headers;
@@ -16,6 +18,10 @@ SmTreeModel::SmTreeModel(const QStringList &headers, QObject *parent) : QAbstrac
mHeaderData.insert(mHeaders.at(i), i);
}
mRootItem = new SmTreeItem(headers.count());
+ QSettings s;
+ QString iconName = s.value("ui/foldericon", "Dildo").toString();
+ const QHash<QString, QString> icons = SmGlobals::instance()->icons();
+ mDecorationIcon = QIcon(icons.value(iconName));
}
SmTreeModel::~SmTreeModel(){
@@ -98,7 +104,7 @@ QVariant SmTreeModel::data(const QModelIndex &index, int role) const{
}
if(role == Qt::DecorationRole){
if(index.column() == 0){
- return QIcon(":/dildo.png");
+ return mDecorationIcon;
}
}
return QVariant();
diff --git a/smtreemodel.h b/smtreemodel.h
index 73abe64..f23e767 100644
--- a/smtreemodel.h
+++ b/smtreemodel.h
@@ -11,6 +11,7 @@
#include <QAbstractItemModel>
#include <QStringList>
#include <QHash>
+#include <QIcon>
class SmTreeItem;
@@ -48,6 +49,10 @@ class SmTreeModel : public QAbstractItemModel {
virtual bool removeRows(int row, int count, const QModelIndex &parent);
bool addRow(const QList<QVariant> &data, const QModelIndex &parent);
+ //misc
+ void setDecorationIcon(const QIcon &icon) { mDecorationIcon = icon; }
+ const QIcon decorationIcon() const { return mDecorationIcon; }
+
protected:
SmTreeItem *itemAt(const QModelIndex &index) const;
@@ -55,6 +60,7 @@ class SmTreeModel : public QAbstractItemModel {
QStringList mHeaders;
SmTreeItem *mRootItem;
QHash<QString, int> mHeaderData;
+ QIcon mDecorationIcon;
};
#endif