summaryrefslogtreecommitdiff
authorleseb <leseb>2002-06-09 16:06:21 (UTC)
committer leseb <leseb>2002-06-09 16:06:21 (UTC)
commitb59a64c90deba66180e3a778d411296e984f64ea (patch) (side-by-side diff)
tree88ef0767602dd174f5911719ffb346a4fcf7420f
parent29c0d188836a59bff1fbcd1d338fcd3334c0f1f5 (diff)
downloadopie-b59a64c90deba66180e3a778d411296e984f64ea.zip
opie-b59a64c90deba66180e3a778d411296e984f64ea.tar.gz
opie-b59a64c90deba66180e3a778d411296e984f64ea.tar.bz2
Changing page order now works in thumbnail view
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp18
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h2
-rw-r--r--noncore/graphics/drawpad/thumbnailview.cpp43
-rw-r--r--noncore/graphics/drawpad/thumbnailview.h11
4 files changed, 65 insertions, 9 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index c23ee34..bcb6877 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -406,32 +406,50 @@ void DrawPadCanvas::deletePage()
if (m_pages.isEmpty()) {
m_pages.append(new Page(contentsRect().size()));
m_pages.current()->fill(Qt::white);
}
m_pageBackups.clear();
m_pageBackups.append(new Page(*(m_pages.current())));
resizeContents(m_pages.current()->width(), m_pages.current()->height());
viewport()->update();
emit pagesChanged();
emit pageBackupsChanged();
}
+void DrawPadCanvas::movePageUp()
+{
+ int index = m_pages.at();
+ Page* page = m_pages.take();
+ m_pages.insert(index - 1, page);
+
+ emit pagesChanged();
+}
+
+void DrawPadCanvas::movePageDown()
+{
+ int index = m_pages.at();
+ Page* page = m_pages.take();
+ m_pages.insert(index + 1, page);
+
+ emit pagesChanged();
+}
+
bool DrawPadCanvas::undoEnabled()
{
return (m_pageBackups.current() != m_pageBackups.getFirst());
}
bool DrawPadCanvas::redoEnabled()
{
return (m_pageBackups.current() != m_pageBackups.getLast());
}
bool DrawPadCanvas::goPreviousPageEnabled()
{
return (m_pages.current() != m_pages.getFirst());
}
bool DrawPadCanvas::goNextPageEnabled()
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index d74d425..39cf752 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -42,32 +42,34 @@ public:
bool goPreviousPageEnabled();
bool goNextPageEnabled();
Page* currentPage();
QList<Page> pages();
uint pagePosition();
uint pageCount();
void selectPage(Page* page);
void backupPage();
public slots:
void deleteAll();
void newPage(uint width, uint height, const QColor& color);
void clearPage();
void deletePage();
+ void movePageUp();
+ void movePageDown();
void undo();
void redo();
void goFirstPage();
void goPreviousPage();
void goNextPage();
void goLastPage();
signals:
void pagesChanged();
void pageBackupsChanged();
protected:
void contentsMousePressEvent(QMouseEvent* e);
void contentsMouseReleaseEvent(QMouseEvent* e);
diff --git a/noncore/graphics/drawpad/thumbnailview.cpp b/noncore/graphics/drawpad/thumbnailview.cpp
index 0c7934e..428e008 100644
--- a/noncore/graphics/drawpad/thumbnailview.cpp
+++ b/noncore/graphics/drawpad/thumbnailview.cpp
@@ -157,116 +157,143 @@ ThumbnailView::ThumbnailView(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas, QWi
QToolButton* newPageButton = new QToolButton(this);
newPageButton->setIconSet(Resource::loadIconSet("new"));
newPageButton->setAutoRaise(true);
connect(newPageButton, SIGNAL(clicked()), this, SLOT(newPage()));
QToolButton* clearPageButton = new QToolButton(this);
clearPageButton->setIconSet(Resource::loadIconSet("drawpad/clear"));
clearPageButton->setAutoRaise(true);
connect(clearPageButton, SIGNAL(clicked()), this, SLOT(clearPage()));
QToolButton* deletePageButton = new QToolButton(this);
deletePageButton->setIconSet(Resource::loadIconSet("trash"));
deletePageButton->setAutoRaise(true);
connect(deletePageButton, SIGNAL(clicked()), this, SLOT(deletePage()));
- QToolButton* movePageUpButton = new QToolButton(this);
- movePageUpButton->setIconSet(Resource::loadIconSet("up"));
- movePageUpButton->setAutoRaise(true);
+ m_pMovePageUpButton = new QToolButton(this);
+ m_pMovePageUpButton->setIconSet(Resource::loadIconSet("up"));
+ m_pMovePageUpButton->setAutoRaise(true);
+ connect(m_pMovePageUpButton, SIGNAL(clicked()), this, SLOT(movePageUp()));
- QToolButton* movePageDownButton = new QToolButton(this);
- movePageDownButton->setIconSet(Resource::loadIconSet("down"));
- movePageDownButton->setAutoRaise(true);
+ m_pMovePageDownButton = new QToolButton(this);
+ m_pMovePageDownButton->setIconSet(Resource::loadIconSet("down"));
+ m_pMovePageDownButton->setAutoRaise(true);
+ connect(m_pMovePageDownButton, SIGNAL(clicked()), this, SLOT(movePageDown()));
m_pPageListView = new PageListView(m_pDrawPadCanvas, this);
connect(m_pPageListView, SIGNAL(selectionChanged()), this, SLOT(changePage()));
QVBoxLayout* mainLayout = new QVBoxLayout(this, 4, 4);
QHBoxLayout* buttonLayout = new QHBoxLayout(0);
buttonLayout->addWidget(newPageButton);
buttonLayout->addWidget(clearPageButton);
buttonLayout->addWidget(deletePageButton);
buttonLayout->addStretch();
- buttonLayout->addWidget(movePageUpButton);
- buttonLayout->addWidget(movePageDownButton);
+ buttonLayout->addWidget(m_pMovePageUpButton);
+ buttonLayout->addWidget(m_pMovePageDownButton);
mainLayout->addLayout(buttonLayout);
mainLayout->addWidget(m_pPageListView);
+
+ updateView();
}
ThumbnailView::~ThumbnailView()
{
hide();
}
+void ThumbnailView::updateView()
+{
+ m_pMovePageUpButton->setEnabled(m_pDrawPadCanvas->goPreviousPageEnabled());
+ m_pMovePageDownButton->setEnabled(m_pDrawPadCanvas->goNextPageEnabled());
+}
+
void ThumbnailView::hide()
{
QWidget::hide();
if (inLoop) {
inLoop = false;
qApp->exit_loop();
}
}
void ThumbnailView::exec()
{
show();
if (!inLoop) {
inLoop = true;
qApp->enter_loop();
}
}
void ThumbnailView::newPage()
{
QRect rect = m_pDrawPadCanvas->contentsRect();
NewPageDialog newPageDialog(rect.width(), rect.height(), m_pDrawPad->pen().color(),
m_pDrawPad->brush().color(), this);
if (newPageDialog.exec() == QDialog::Accepted) {
m_pDrawPadCanvas->newPage(newPageDialog.selectedWidth(), newPageDialog.selectedHeight(),
newPageDialog.selectedColor());
m_pPageListView->updateView();
+ updateView();
}
}
void ThumbnailView::clearPage()
{
QMessageBox messageBox(tr("Clear Page"), tr("Do you want to clear\nthe selected page?"),
QMessageBox::Information, QMessageBox::Yes,
QMessageBox::No | QMessageBox::Escape | QMessageBox::Default,
QMessageBox::NoButton, this);
messageBox.setButtonText(QMessageBox::Yes, tr("Yes"));
messageBox.setButtonText(QMessageBox::No, tr("No"));
if (messageBox.exec() == QMessageBox::Yes) {
m_pDrawPadCanvas->clearPage();
m_pPageListView->updateView();
}
}
void ThumbnailView::deletePage()
{
QMessageBox messageBox(tr("Delete Page"), tr("Do you want to delete\nthe selected page?"),
QMessageBox::Information, QMessageBox::Yes,
QMessageBox::No | QMessageBox::Escape | QMessageBox::Default,
QMessageBox::NoButton, this);
messageBox.setButtonText(QMessageBox::Yes, tr("Yes"));
messageBox.setButtonText(QMessageBox::No, tr("No"));
if (messageBox.exec() == QMessageBox::Yes) {
m_pDrawPadCanvas->deletePage();
m_pPageListView->updateView();
+ updateView();
}
}
+void ThumbnailView::movePageUp()
+{
+ m_pDrawPadCanvas->movePageUp();
+ m_pPageListView->updateView();
+ updateView();
+}
+
+void ThumbnailView::movePageDown()
+{
+ m_pDrawPadCanvas->movePageDown();
+ m_pPageListView->updateView();
+ updateView();
+}
+
void ThumbnailView::changePage()
{
m_pDrawPadCanvas->selectPage(m_pPageListView->selected());
+ updateView();
}
diff --git a/noncore/graphics/drawpad/thumbnailview.h b/noncore/graphics/drawpad/thumbnailview.h
index 1fdb168..eb748fa 100644
--- a/noncore/graphics/drawpad/thumbnailview.h
+++ b/noncore/graphics/drawpad/thumbnailview.h
@@ -8,32 +8,34 @@
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef THUMBNAILVIEW_H
#define THUMBNAILVIEW_H
#include <qwidget.h>
#include <qlistview.h>
class DrawPad;
class DrawPadCanvas;
class Page;
+class QToolButton;
+
class PageListViewItem : public QListViewItem
{
public:
PageListViewItem(Page* page, QListView* parent);
~PageListViewItem();
Page* page() const;
private:
Page* m_pPage;
};
class PageListView : public QListView
{
public:
PageListView(DrawPadCanvas* drawPadCanvas, QWidget* parent = 0, const char* name = 0);
@@ -45,36 +47,43 @@ public:
Page* selected() const;
protected:
void resizeEvent(QResizeEvent* e);
private:
DrawPadCanvas* m_pDrawPadCanvas;
};
class ThumbnailView : public QWidget
{
Q_OBJECT
public:
ThumbnailView(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas, QWidget* parent = 0, const char* name = 0);
~ThumbnailView();
-
+
+ void updateView();
+
void hide();
void exec();
public slots:
void newPage();
void clearPage();
void deletePage();
+ void movePageUp();
+ void movePageDown();
void changePage();
private:
bool inLoop;
DrawPad* m_pDrawPad;
DrawPadCanvas* m_pDrawPadCanvas;
+ QToolButton* m_pMovePageUpButton;
+ QToolButton* m_pMovePageDownButton;
+
PageListView* m_pPageListView;
};
#endif // THUMBNAILVIEW_H