diff options
author | Arno <am@disconnect.de> | 2010-10-16 15:21:21 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-10-16 15:21:21 +0200 |
commit | d7db872a15418d20392990a65d9525c11e2a4fa4 (patch) | |
tree | 778104058f0fa87a5dbeb25aa7f6f410f2b748e4 | |
parent | bf5ccbe56631ac516751a9f194b643f77fdedf82 (diff) | |
download | SheMov-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.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){ |