summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configurationdialog.cpp46
-rw-r--r--configurationdialog.h4
-rw-r--r--pictureswidget.h1
-rw-r--r--pictureviewer2.cpp19
-rw-r--r--pictureviewer2.h5
-rw-r--r--shemov.cpp1
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 {
diff --git a/shemov.cpp b/shemov.cpp
index 9f261c2..a828e04 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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;