summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-10-16 15:21:21 +0200
committerArno <am@disconnect.de>2010-10-16 15:21:21 +0200
commitd7db872a15418d20392990a65d9525c11e2a4fa4 (patch)
tree778104058f0fa87a5dbeb25aa7f6f410f2b748e4
parentbf5ccbe56631ac516751a9f194b643f77fdedf82 (diff)
downloadSheMov-d7db872a15418d20392990a65d9525c11e2a4fa4.tar.gz
SheMov-d7db872a15418d20392990a65d9525c11e2a4fa4.tar.bz2
SheMov-d7db872a15418d20392990a65d9525c11e2a4fa4.zip
Made hovering configurable
Revamped misc tab in configurationdialog to QGroupBoxes. Added options for enabling or disabling hovering over pictures or the archive tree. Also implemented an option to set the opacity for HoverWindow.
-rw-r--r--configurationdialog.cpp64
-rw-r--r--configurationdialog.h7
-rw-r--r--filestreewidget.cpp14
-rw-r--r--filestreewidget.h4
-rw-r--r--seriestreewidget.cpp18
-rw-r--r--seriestreewidget.h4
-rw-r--r--shemov.cpp2
7 files changed, 92 insertions, 21 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp
index 6d6899c..20e424b 100644
--- a/configurationdialog.cpp
+++ b/configurationdialog.cpp
@@ -19,6 +19,9 @@
#include <QSettings>
#include <QRegExp>
#include <QFileInfo>
+#include <QGroupBox>
+#include <QCheckBox>
+#include <QSpinBox>
#include "configurationdialog.h"
#include "programconfigurator.h"
@@ -33,31 +36,60 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : Q
//misc tab
QWidget *miscWidget = new QWidget;
- QGridLayout *miscGrid = new QGridLayout;
- miscGrid->setAlignment(Qt::AlignTop);
- QLabel *miscl1 = new QLabel(tr("Select icon for &folders"));
+ QVBoxLayout *miscLayout = new QVBoxLayout;
+ miscLayout->setAlignment(Qt::AlignTop);
+
+ //misc - icons
+ QGroupBox *iconBox = new QGroupBox(tr("Icon for folders"));
+ QHBoxLayout *iconLayout = new QHBoxLayout;
mIconForFolder = new QComboBox;
- miscl1->setBuddy(mIconForFolder);
QStringList icons = QStringList() << tr("Dildo") << tr("Normal");
mIconForFolder->addItems(icons);
- miscGrid->addWidget(miscl1, 0, 0);
- miscGrid->addWidget(mIconForFolder, 0, 1);
+ iconLayout->addWidget(mIconForFolder);
+ iconBox->setLayout(iconLayout);
+
+ //misc - directories
+ QGroupBox *pathBox = new QGroupBox(tr("Directories"));
+ QGridLayout *pathGrid = new QGridLayout;
QLabel *miscl2 = new QLabel(tr("Archive directory"));
mArchiveDir = new QLineEdit;
mArchiveDir->setCompleter(fsCompleter);
- miscGrid->addWidget(miscl2, 1, 0);
- miscGrid->addWidget(mArchiveDir, 1, 1);
- miscWidget->setLayout(miscGrid);
+ pathGrid->addWidget(miscl2, 0, 0);
+ pathGrid->addWidget(mArchiveDir, 0, 1);
QLabel *miscl3 = new QLabel(tr("Burn Directory"));
mBurnDir = new QLineEdit;
mBurnDir->setCompleter(fsCompleter);
- miscGrid->addWidget(miscl3, 2, 0);
- miscGrid->addWidget(mBurnDir, 2, 1);
+ pathGrid->addWidget(miscl3, 1, 0);
+ pathGrid->addWidget(mBurnDir, 1, 1);
QLabel *miscl4 = new QLabel(tr("Path to ffprobe"));
mFfProbePath = new QLineEdit;
mFfProbePath->setCompleter(fsCompleter);
- miscGrid->addWidget(miscl4, 3, 0);
- miscGrid->addWidget(mFfProbePath, 3, 1);
+ pathGrid->addWidget(miscl4, 2, 0);
+ pathGrid->addWidget(mFfProbePath, 2, 1);
+ pathBox->setLayout(pathGrid);
+
+ //misc - hover
+ QGroupBox *hoverBox = new QGroupBox(tr("Hover options"));
+ QVBoxLayout *hoverLayout = new QVBoxLayout;
+ mHoverPics = new QCheckBox(tr("Show picture when hovering"));
+ hoverLayout->addWidget(mHoverPics);
+ mHoverArchive = new QCheckBox(tr("Show further information when hovering over archive"));
+ hoverLayout->addWidget(mHoverArchive);
+ mHoverOpacity = new QSpinBox;
+ mHoverOpacity->setMinimum(1);
+ mHoverOpacity->setMaximum(10);
+ QLabel *miscl5 = new QLabel(tr("Opacity of hover window"));
+ QHBoxLayout *opacityLayout = new QHBoxLayout;
+ opacityLayout->addWidget(miscl5);
+ opacityLayout->addWidget(mHoverOpacity);
+ hoverLayout->addLayout(opacityLayout);
+ hoverBox->setLayout(hoverLayout);
+
+ //misc - assemble
+ miscLayout->addWidget(iconBox);
+ miscLayout->addWidget(pathBox);
+ miscLayout->addWidget(hoverBox);
+ miscWidget->setLayout(miscLayout);
mTab->addTab(miscWidget, tr("Misc. settings"));
// movie viewer
@@ -131,6 +163,9 @@ void ConfigurationDialog::readSettings(){
mArchiveDir->setText(s.value("paths/archivedir").toString());
mBurnDir->setText(s.value("paths/burn").toString());
mFfProbePath->setText(s.value("paths/ffprobe").toString());
+ mHoverPics->setChecked(s.value("ui/hoverpics", false).toBool());
+ mHoverArchive->setChecked(s.value("ui/hoverarchive", false).toBool());
+ mHoverOpacity->setValue(s.value("ui/hoveropacity", 10).toInt());
//read database
mDatabaseHost->setText(s.value("database/hostname").toString());
@@ -152,6 +187,9 @@ void ConfigurationDialog::writeSettings(){
if(ffProbeInfo.exists() && ffProbeInfo.isExecutable()){
s.setValue("paths/ffprobe", ffprobe);
}
+ s.setValue("ui/hoverpics", (mHoverPics->checkState() == Qt::Checked));
+ s.setValue("ui/hoverarchive", (mHoverArchive->checkState() == Qt::Checked));
+ s.setValue("ui/hoveropacity", mHoverOpacity->value());
//write database
s.setValue("database/hostname", mDatabaseHost->text());
diff --git a/configurationdialog.h b/configurationdialog.h
index da04c7c..f41cabe 100644
--- a/configurationdialog.h
+++ b/configurationdialog.h
@@ -14,6 +14,8 @@ class QPushButton;
class QTabWidget;
class QLineEdit;
class QComboBox;
+class QCheckBox;
+class QSpinBox;
class ProgramConfigurator;
@@ -26,8 +28,6 @@ class ConfigurationDialog : public QDialog {
public slots:
void accept();
- private slots:
-
private:
void readSettings();
void writeSettings();
@@ -44,6 +44,9 @@ class ConfigurationDialog : public QDialog {
QLineEdit *mDatabaseUsername;
QLineEdit *mDatabasePassword;
QComboBox *mIconForFolder;
+ QCheckBox *mHoverPics;
+ QCheckBox *mHoverArchive;
+ QSpinBox *mHoverOpacity;
};
#endif
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index 0dab9a2..43611f9 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -269,9 +269,15 @@ void FilesTreeWidget::fileSelectionChanged(const QItemSelection &selected, const
emit sizeChanged(mSelectedSize);
}
-FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent){
+FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent), mHoverWin(new HoverWindow), mHover(false){
setAttribute(Qt::WA_Hover);
- mHoverWin = new HoverWindow;
+ readConfig();
+}
+
+void FilesTreeView::readConfig(){
+ QSettings s;
+ mHover = s.value("ui/hoverpics", true).toBool();
+ mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0);
}
void FilesTreeView::contextMenuEvent(QContextMenuEvent *event){
@@ -283,6 +289,10 @@ void FilesTreeView::contextMenuEvent(QContextMenuEvent *event){
}
bool FilesTreeView::event(QEvent *e){
+ QSettings s;
+ if(!s.value("ui/hoverpics").toBool()){
+ return true;
+ }
QModelIndex curIdx;
QHoverEvent *hEvent = static_cast<QHoverEvent*>(e);
QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset());
diff --git a/filestreewidget.h b/filestreewidget.h
index c385f43..192b313 100644
--- a/filestreewidget.h
+++ b/filestreewidget.h
@@ -64,6 +64,9 @@ class FilesTreeView : public QTreeView {
public:
explicit FilesTreeView(QWidget *parent = 0);
+ public slots:
+ void readConfig();
+
protected:
virtual void contextMenuEvent(QContextMenuEvent *event);
virtual bool event(QEvent *event);
@@ -71,6 +74,7 @@ class FilesTreeView : public QTreeView {
private:
QModelIndex mCurHover;
HoverWindow *mHoverWin;
+ bool mHover;
};
class FilesTreeSortModel : public QSortFilterProxyModel {
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp
index b5a3feb..77784b8 100644
--- a/seriestreewidget.cpp
+++ b/seriestreewidget.cpp
@@ -313,9 +313,15 @@ void SeriesTreeWidget::addCover(){
}
}
-SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent) {
+SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent), mHoverWin(new HoverWindow), mHover(false) {
setAttribute(Qt::WA_Hover);
- mHoverWin = new HoverWindow;
+ readConfig();
+}
+
+void SeriesTreeView::readConfig(){
+ QSettings s;
+ mHover = s.value("ui/hoverarchive", true).toBool();
+ mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0);
}
void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){
@@ -327,6 +333,10 @@ void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){
}
bool SeriesTreeView::event(QEvent *e){
+ QSettings s;
+ if(!s.value("ui/hoverarchive").toBool()){
+ return true;
+ }
QModelIndex curIdx;
QHoverEvent *hEvent = static_cast<QHoverEvent*>(e);
QPoint hotSpot(hEvent->pos().x(), hEvent->pos().y() - SmGlobals::instance()->cursorOffset());
@@ -336,12 +346,12 @@ bool SeriesTreeView::event(QEvent *e){
curIdx = indexAt(hotSpot);
if((e->type() == QEvent::HoverEnter) || (e->type() == QEvent::HoverMove)){
if(!curIdx.isValid()){
- return false;
+ return true;
}
if(curIdx.parent() != QModelIndex()){
mHoverWin->setVisible(false);
mCurHover = QModelIndex();
- return false;
+ return true;
}
}
diff --git a/seriestreewidget.h b/seriestreewidget.h
index c5d91d4..774120a 100644
--- a/seriestreewidget.h
+++ b/seriestreewidget.h
@@ -71,6 +71,9 @@ class SeriesTreeView : public QTreeView {
public:
explicit SeriesTreeView(QWidget *parent = 0);
+ public slots:
+ void readConfig();
+
protected:
virtual void contextMenuEvent(QContextMenuEvent *e);
virtual bool event(QEvent *event);
@@ -79,6 +82,7 @@ class SeriesTreeView : public QTreeView {
QStringList children(const QModelIndex &idx) const;
QModelIndex mCurHover;
HoverWindow *mHoverWin;
+ bool mHover;
};
diff --git a/shemov.cpp b/shemov.cpp
index 2fa47d3..8294900 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -142,6 +142,8 @@ void SheMov::configure(){
dlg.exec();
createOpenWithMenuFS();
createOpenWithMenuAV();
+ mATree->seriesWidget()->seriesTree()->readConfig();
+ mATree->filesWidget()->filesTree()->readConfig();
}
void SheMov::tabChanged(int newTab){