diff options
-rw-r--r-- | configurationdialog.cpp | 46 | ||||
-rw-r--r-- | configurationdialog.h | 4 | ||||
-rw-r--r-- | pictureswidget.h | 1 | ||||
-rw-r--r-- | pictureviewer2.cpp | 19 | ||||
-rw-r--r-- | pictureviewer2.h | 5 | ||||
-rw-r--r-- | shemov.cpp | 1 |
6 files changed, 67 insertions, 9 deletions
diff --git a/configurationdialog.cpp b/configurationdialog.cpp index 25908db..717e510 100644 --- a/configurationdialog.cpp +++ b/configurationdialog.cpp @@ -313,15 +313,37 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : S colorGrid->addWidget(mFavoriteColorButton, 7, 2); colorMapper->setMapping(mFavoriteColorButton, mFavoriteColor); connect(mFavoriteColorButton, SIGNAL(clicked()), colorMapper, SLOT(map())); - connect(colorMapper, SIGNAL(mapped(QWidget*)), this, SLOT(chooseColor(QWidget*))); - mAlternateColors = new QCheckBox(tr("Use alternating row colors")); + mAlternateColors = new QCheckBox(tr("Use alternating row colors")); mAlternateColors->setTristate(false); connect(mAlternateColors, SIGNAL(stateChanged(int)), this, SLOT(alternateColorsChanged(int))); colorGrid->addWidget(mAlternateColors, 8, 1, 1, 2, Qt::AlignLeft); - QVBoxLayout *colorStretchLayout = new QVBoxLayout; - colorStretchLayout->addStretch(); - colorGrid->addLayout(colorStretchLayout, 9, 1, 3, Qt::AlignLeft); - colorsWidget->setLayout(colorGrid); + colorsWidget->setLayout(colorGrid); + + QLabel *color9 = new QLabel(tr("PicViewer Background")); + mPVBgColor = new QLabel; + mPVBgColor->setFrameStyle(QFrame::Sunken | QFrame::Panel); + mPVBgColor->setScaledContents(true); + mPVBgButton = new QPushButton(tr("Choose...")); + QGridLayout *pvGrid = new QGridLayout; + pvGrid->addWidget(color9, 0, 0); + pvGrid->addWidget(mPVBgColor, 0, 1); + pvGrid->addWidget(mPVBgButton, 0, 2); + colorMapper->setMapping(mPVBgButton, mPVBgColor); + connect(mPVBgButton, SIGNAL(clicked()), colorMapper, SLOT(map())); + mPVGradient = new QCheckBox(tr("Use random gradient as background")); + mPVGradient->setTristate(false); + connect(mPVGradient, SIGNAL(stateChanged(int)), this, SLOT(randomGradientChanged(int))); + pvGrid->addWidget(mPVGradient, 1, 1, 1, 2, Qt::AlignLeft); + + connect(colorMapper, SIGNAL(mapped(QWidget*)), this, SLOT(chooseColor(QWidget*))); + QGroupBox *treeGB = new QGroupBox(tr("Treeview colors")); + treeGB->setLayout(colorGrid); + QGroupBox *pvGB = new QGroupBox(tr("PicViewer colors")); + pvGB->setLayout(pvGrid); + QVBoxLayout *colorLayout = new QVBoxLayout; + colorLayout->addWidget(treeGB); + colorLayout->addWidget(pvGB); + colorsWidget->setLayout(colorLayout); mTab->addTab(colorsWidget, tr("Colors")); //main layout @@ -406,6 +428,8 @@ void ConfigurationDialog::readSettings(){ mColors.insert(mArchivedColor, archived.value<QColor>()); QVariant favorite = s.value("ui/favoritecolor", Qt::red); mColors.insert(mFavoriteColor, favorite.value<QColor>()); + QVariant pvbackground = s.value("ui/pvbgcolor", Qt::red); + mColors.insert(mPVBgColor, pvbackground.value<QColor>()); QHash<QWidget*, QColor>::const_iterator it; for(it = mColors.constBegin(); it != mColors.constEnd(); ++it){ setColor(it.key()); @@ -413,6 +437,9 @@ void ConfigurationDialog::readSettings(){ bool allowAlternate = s.value("ui/allowalternate", true).toBool(); mAlternateColors->setChecked(allowAlternate); alternateColorsChanged(mAlternateColors->checkState()); + bool useGradient = s.value("ui/pvgradient", false).toBool(); + mPVGradient->setChecked(useGradient); + randomGradientChanged(mPVGradient->checkState()); } void ConfigurationDialog::writeSettings(){ @@ -470,7 +497,9 @@ void ConfigurationDialog::writeSettings(){ s.setValue("ui/localcolor", mColors.value(mLocalColor)); s.setValue("ui/archivedcolor", mColors.value(mArchivedColor)); s.setValue("ui/favoritecolor", mColors.value(mFavoriteColor)); + s.setValue("ui/pvbgcolor", mColors.value(mPVBgColor)); s.setValue("ui/allowalternate", mAlternateColors->isChecked()); + s.setValue("ui/pvgradient", mPVGradient->isChecked()); } bool ConfigurationDialog::checkDvdPath(){ @@ -539,6 +568,11 @@ void ConfigurationDialog::alternateColorsChanged(int state){ mAlternateBaseColor->setEnabled(state == Qt::Checked); } +void ConfigurationDialog::randomGradientChanged(int state){ + mPVBgButton->setEnabled(state == Qt::Unchecked); + mPVBgColor->setEnabled(state == Qt::Unchecked); +} + void ConfigurationDialog::setColor(QWidget *label){ QLabel *curLabel = qobject_cast<QLabel*>(label); if(!curLabel){ diff --git a/configurationdialog.h b/configurationdialog.h index 946e34b..1d9edf0 100644 --- a/configurationdialog.h +++ b/configurationdialog.h @@ -36,6 +36,7 @@ class ConfigurationDialog : public SmDialog { void setGrabFrameEnabled(bool enabled); void chooseColor(QWidget *label); void alternateColorsChanged(int); + void randomGradientChanged(int); private: void readSettings(); @@ -78,6 +79,7 @@ class ConfigurationDialog : public SmDialog { QLabel *mLocalColor; QLabel *mArchivedColor; QLabel *mFavoriteColor; + QLabel *mPVBgColor; QPushButton *mSeenButton; QPushButton *mClipboardButton; QPushButton *mBaseButton; @@ -86,7 +88,9 @@ class ConfigurationDialog : public SmDialog { QPushButton *mLocalColorButton; QPushButton *mArchivedColorButton; QPushButton *mFavoriteColorButton; + QPushButton *mPVBgButton; QCheckBox *mAlternateColors; + QCheckBox *mPVGradient; QHash<QWidget*, QColor> mColors; QStandardItemModel *mIconModel; }; diff --git a/pictureswidget.h b/pictureswidget.h index 3f2c41f..40c1874 100644 --- a/pictureswidget.h +++ b/pictureswidget.h @@ -34,6 +34,7 @@ class PicturesWidget : public QWidget { explicit PicturesWidget(QWidget *parent = 0); PictureView *picView() { return mPictureView; } void setPicViewerAction(QAction *action) { mPicViewerA = action; } + PictureViewer2 *picViewer2() { return mPicViewer; } public slots: void showPicViewer(bool toggled); diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index cf24c0a..3234ffc 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -17,6 +17,7 @@ #include <QPainter> #include <QStyleOptionGraphicsItem> #include <QDate> +#include <QSettings> #include "pictureviewer2.h" #include "pictureswidget.h" @@ -42,10 +43,12 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) setScene(mScene); QDesktopWidget *dw = QApplication::desktop(); QSize screenSize = dw->availableGeometry().size(); + //TODO: configure! mMinimunSize = QSize(screenSize.width() - 100, screenSize.height() - 100); setMinimumSize(mMinimunSize); move(50, 50); setVisible(false); + readSettings(); mScene->setSceneRect(QRectF(0, 0, width() - 10, height() - 10)); showFile(mFiles.at(mCurPos)); } @@ -99,6 +102,13 @@ void PictureViewer2::slide(){ } } +void PictureViewer2::readSettings(){ + QSettings s; + mUseGradient = s.value("ui/pvgradient").toBool(); + QVariant t = s.value("ui/pvbgcolor"); + mBgColor = t.value<QColor>(); +} + void PictureViewer2::wheelEvent(QWheelEvent *event){ int steps = event->delta() / 8 / 15; if(steps < 0){ @@ -121,7 +131,11 @@ void PictureViewer2::showFile(const PicData &file){ if(pixmap.isNull()){ return; } - setCurPalette(pixmap); + if(mUseGradient){ + setGradient(pixmap); + }else{ + setBackgroundBrush(QBrush(mBgColor)); + } if((pixmap.height() > height()) || (pixmap.width() > width())){ pixmap = pixmap.scaled(QSize(width() - 3, height() - 10), Qt::KeepAspectRatio, Qt::SmoothTransformation); } @@ -136,6 +150,7 @@ void PictureViewer2::showFile(const PicData &file){ mScene->addItem(mCur); mCur->setPos(cX, cY); setWindowTitle(constructWindowTitle()); + //TODO: configure! constructFilenameItem(file, pixmap.size()); } @@ -149,7 +164,7 @@ void PictureViewer2::constructFilenameItem(const PicData &data, QSize picSize){ mScene->addItem(mFnItem); } -void PictureViewer2::setCurPalette(const QPixmap &pic){ +void PictureViewer2::setGradient(const QPixmap &pic){ QPoint val1 = QPoint(qrand() % pic.width(), qrand() % pic.height()); QPoint val2 = QPoint(qrand() % pic.width(), qrand() % pic.height()); QImage img = pic.toImage(); diff --git a/pictureviewer2.h b/pictureviewer2.h index d5d80a4..e93dffc 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -36,6 +36,7 @@ class PictureViewer2 : public QGraphicsView { void next(); void previous(); void slide(); + void readSettings(); protected: virtual void wheelEvent(QWheelEvent *event); @@ -47,7 +48,7 @@ class PictureViewer2 : public QGraphicsView { private: void setupDialog(); - void setCurPalette(const QPixmap &pic); + void setGradient(const QPixmap &pic); QString constructWindowTitle() const; PicDataList mFiles; QGraphicsScene *mScene; @@ -57,6 +58,8 @@ class PictureViewer2 : public QGraphicsView { QTimer *mSlideTimer; const QString mDefaultFile; PictureViewer2FileinfoItem *mFnItem; + bool mUseGradient; + QColor mBgColor; }; class PictureViewer2FileinfoItem : public QGraphicsItem { @@ -115,6 +115,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla connect(this, SIGNAL(configChanged()), mFSWidget->fileView(), SLOT(readConfig())); connect(this, SIGNAL(configChanged()), mATree->seriesWidget(), SLOT(readSettings())); connect(this, SIGNAL(configChanged()), SmGlobals::instance()->pictureViewer(), SLOT(readSettings())); + connect(this, SIGNAL(configChanged()), mPicWidget->picViewer2(), SLOT(readSettings())); connect(mFSWidget, SIGNAL(mounted(bool)), this, SLOT(checkMount(bool))); QWidget *centralWidget = new QWidget; |