summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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){