From bfe87ae31af8398d3bc0bf26a7dac3dbdecec569 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 6 Jun 2015 07:36:39 +0200 Subject: Resize PictureViewer2 Make it possible to resize the PictureViewer2 and get rid of fixed size. Also, make sure that the current picture is redrawn when we get a resize event. --- configurationdialog.cpp | 2 +- pictureviewer2.cpp | 24 +++++++++--------------- pictureviewer2.h | 3 +-- shemov.cpp | 1 + smglobals.h | 1 - 5 files changed, 12 insertions(+), 19 deletions(-) diff --git a/configurationdialog.cpp b/configurationdialog.cpp index 2570434..8a10d4a 100644 --- a/configurationdialog.cpp +++ b/configurationdialog.cpp @@ -43,7 +43,7 @@ #include "smglobals.h" #include "helper.h" -ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f), mPVMinSize(SmGlobals::instance()->minPVSize()){ +ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : SmDialog(parent, f) { //setup mTab = new QTabWidget; QDirModel *model = new QDirModel(this); diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index f49b23f..3f8c8ff 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -42,11 +42,9 @@ const QString PictureViewer2::mDefaultFile = ":/picgone.png"; PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0), mShowInfoItem(true), mShowMappingItem(true), mShowMarkItem(false) { - //behave like QDialog, but don't be one... - setWindowFlags(QFlags(0x1|0x2|0x1000|0x2000|0x10000|0x8000000)); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + setWindowState(Qt::WindowMaximized); //initial file list PicData initialData; @@ -69,8 +67,7 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) mScene = new QGraphicsScene(this); setScene(mScene); readSettings(); - setVisible(false); - mScene->setSceneRect(QRectF(0, 0, width(), height())); + setMinimumSize(QSize(800, 600)); showFile(mFiles.at(mCurPos)); } @@ -165,10 +162,6 @@ PicData PictureViewer2::picData(const QString &fullPath){ return retval; } -QSize PictureViewer2::sizeHint() const{ - return mSize; -} - void PictureViewer2::next(){ if(mFiles.size() == 0 || mFiles.size() == 1){ return; @@ -235,14 +228,8 @@ void PictureViewer2::readSettings(){ mInfoPos = s.value("ui/pvinfopos", QPointF(20, 20)).toPointF(); mConfigMapPos = s.value("ui/mappingposition").toInt(); mMappingPos = s.value("ui/pvmappingpos", QPointF(20, 20)).toPointF(); - const QSize pvMinSize = SmGlobals::instance()->minPVSize(); - int pvWidth = s.value("ui/pvwidth", pvMinSize.width()).toInt(); - int pvHeight = s.value("ui/pvheight", pvMinSize.height()).toInt(); - mSize = QSize(pvWidth, pvHeight); - resize(mSize); mScene->setSceneRect(QRectF(0, 0, width(), height())); showFile(mCurPicData); - Helper::centerWidget(this); } void PictureViewer2::writeSettings(){ @@ -406,6 +393,7 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){ void PictureViewer2::showEvent(QShowEvent *e){ mHideA->setChecked(true); + //mSize = size(); QGraphicsView::showEvent(e); } @@ -417,6 +405,11 @@ void PictureViewer2::hideEvent(QHideEvent *e){ QGraphicsView::hideEvent(e); } +void PictureViewer2::resizeEvent(QResizeEvent *event){ + QGraphicsView::resizeEvent(event); + showFile(mCurPicData); +} + void PictureViewer2::showFile(const PicData &file){ if(file.isEmpty()){ return; @@ -439,6 +432,7 @@ void PictureViewer2::showFile(const PicData &file){ delete mCur; mCur = 0; } + mScene->setSceneRect(rect()); mCur = new QGraphicsPixmapItem(pixmap); mScene->addItem(mCur); QRectF picRect = mCur->boundingRect(); diff --git a/pictureviewer2.h b/pictureviewer2.h index c9c7688..bfc1977 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -48,7 +48,6 @@ class PictureViewer2 : public QGraphicsView { void setCurrentDir(const QString &curDir) { mCurrentDir = curDir; } const PicDataList marked() { return mMarkedFiles; } PicData picData(const QString &fullPath); - virtual QSize sizeHint() const; public slots: void next(); @@ -73,6 +72,7 @@ class PictureViewer2 : public QGraphicsView { virtual void keyPressEvent(QKeyEvent *e); virtual void showEvent(QShowEvent *e); virtual void hideEvent(QHideEvent *e); + virtual void resizeEvent(QResizeEvent *event); private slots: void showFile(const PicData &data); @@ -90,7 +90,6 @@ class PictureViewer2 : public QGraphicsView { PicDataList mFiles; PicDataList mMarkedFiles; QGraphicsScene *mScene; - QSize mSize; QGraphicsPixmapItem *mCur; int mCurPos; int mConfigInfoPos; diff --git a/shemov.cpp b/shemov.cpp index 15b7284..08094d6 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -627,6 +627,7 @@ void SheMov::createActions(){ // assign actions to PictureViewer2 members, so they can be toggled from within picViewer->initActions(); + picViewer->hide(); /* picView(er) END Actions! */ diff --git a/smglobals.h b/smglobals.h index e28047d..a674203 100644 --- a/smglobals.h +++ b/smglobals.h @@ -39,7 +39,6 @@ class SmGlobals : public QObject { ArchiveController *archiveController() { return mArchiveController; } QSize cursorSize(); QIcon iconFor(const QString &type); - const QSize minPVSize() const { return QSize(640, 480); } const QHash & icons() const { return mIcons; } QHash filetypeMap() const { return mFiletypeMap; } QHash registeredWidgets() { return mWidgets; } -- cgit v1.2.3-70-g09d2