diff options
-rw-r--r-- | configurationdialog.cpp | 64 | ||||
-rw-r--r-- | configurationdialog.h | 7 | ||||
-rw-r--r-- | filestreewidget.cpp | 14 | ||||
-rw-r--r-- | filestreewidget.h | 4 | ||||
-rw-r--r-- | seriestreewidget.cpp | 18 | ||||
-rw-r--r-- | seriestreewidget.h | 4 | ||||
-rw-r--r-- | shemov.cpp | 2 |
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; }; @@ -142,6 +142,8 @@ void SheMov::configure(){ dlg.exec(); createOpenWithMenuFS(); createOpenWithMenuAV(); + mATree->seriesWidget()->seriesTree()->readConfig(); + mATree->filesWidget()->filesTree()->readConfig(); } void SheMov::tabChanged(int newTab){ |