Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added resources/images/toolbar/displayDisabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 11 additions & 1 deletion src/core/UBApplicationController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ UBApplicationController::UBApplicationController(UBBoardView *pControlView,
, mCheckingForUpdates(false)
, mIsShowingDesktop(false)
, mHttp(0)
, mUserSceneIndex(-1)
{
mDisplayManager = new UBDisplayManager(this);

Expand Down Expand Up @@ -242,10 +243,19 @@ void UBApplicationController::adjustDisplayView()
}
}

void UBApplicationController::setUserSceneIndex(int index) {
mUserSceneIndex = index;

}

void UBApplicationController::adjustPreviousViews(int pActiveSceneIndex, UBDocumentProxy *pActiveDocument)
{
int viewIndex = pActiveSceneIndex;
qDebug() << "adjustPreviousViews(pActiveSceneIndex=" << pActiveSceneIndex << ")";
int viewIndex;
if (mUserSceneIndex == -1)
viewIndex = pActiveSceneIndex;
else
viewIndex = mUserSceneIndex + 1;

foreach(UBBoardView* previousView, mPreviousViews)
{
Expand Down
5 changes: 5 additions & 0 deletions src/core/UBApplicationController.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@ class UBApplicationController : public QObject
void checkUpdateRequest();
void checkUpdateAtLaunch();

void setUserSceneIndex(int index);
int userSceneIndex() const { return mUserSceneIndex; }

private slots:
void updateRequestFinished(int id, bool error);

Expand All @@ -161,6 +164,8 @@ class UBApplicationController : public QObject

int mInitialHScroll, mInitialVScroll;

int mUserSceneIndex;

private:

MainMode mMainMode;
Expand Down
9 changes: 9 additions & 0 deletions src/document/UBDocumentController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3219,6 +3219,15 @@ bool UBDocumentController::pageCanBeDeleted(int page)
return page != 0;
}

bool UBDocumentController::pageCanBeStuckOnPreviousViews(int page)
{
if(UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool())
return page != 0;
else
return true;
}


void UBDocumentController::setDocument(UBDocumentProxy *document, bool forceReload)
{
UBDocumentContainer::setDocument(document, forceReload);
Expand Down
1 change: 1 addition & 0 deletions src/document/UBDocumentController.h
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ class UBDocumentController : public UBDocumentContainer
bool pageCanBeMovedDown(int page);
bool pageCanBeDuplicated(int page);
bool pageCanBeDeleted(int page);
bool pageCanBeStuckOnPreviousViews(int page);
QString documentTrashGroupName(){ return mDocumentTrashGroupName;}
QString defaultDocumentGroupName(){ return mDefaultDocumentGroupName;}

Expand Down
25 changes: 24 additions & 1 deletion src/gui/UBThumbnailWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,7 @@ UBSceneThumbnailNavigPixmap::UBSceneThumbnailNavigPixmap(const QPixmap& pix, UBD
, bCanMoveUp(false)
, bCanMoveDown(false)
, bCanDuplicate(false)
, bCanStickOnPreviousViews(false)
{
if(0 <= UBDocumentContainer::pageFromSceneIndex(pSceneIndex)){
setAcceptsHoverEvents(true);
Expand Down Expand Up @@ -886,6 +887,12 @@ void UBSceneThumbnailNavigPixmap::paint(QPainter *painter, const QStyleOptionGra
else
painter->drawPixmap(3*(BUTTONSIZE + BUTTONSPACING), 0, BUTTONSIZE, BUTTONSIZE, QPixmap(":images/menuDisabled.svg"));
}
if (bButtonsVisible || sceneIndex() == UBApplication::applicationController->userSceneIndex()) {
if(bCanStickOnPreviousViews)
painter->drawPixmap(4*(BUTTONSIZE + BUTTONSPACING), 0, BUTTONSIZE, BUTTONSIZE, QPixmap(":images/toolbar/display.png"));
else
painter->drawPixmap(4*(BUTTONSIZE + BUTTONSPACING), 0, BUTTONSIZE, BUTTONSIZE, QPixmap(":images/toolbar/displayDisabled.png"));
}
}

void UBSceneThumbnailNavigPixmap::mousePressEvent(QGraphicsSceneMouseEvent *event)
Expand All @@ -901,6 +908,8 @@ void UBSceneThumbnailNavigPixmap::mousePressEvent(QGraphicsSceneMouseEvent *even
moveUpPage();
if(bCanMoveDown && p.x() >= 3*(BUTTONSIZE + BUTTONSPACING) && p.x() <= 4*BUTTONSIZE + 3*BUTTONSPACING && p.y() >= 0 && p.y() <= BUTTONSIZE)
moveDownPage();
if(bCanStickOnPreviousViews && p.x() >= 4*(BUTTONSIZE + BUTTONSPACING) && p.x() <= 5*BUTTONSIZE + 4*BUTTONSPACING && p.y() >= 0 && p.y() <= BUTTONSIZE)
stickPageOnPreviousViews();

event->accept();
}
Expand All @@ -912,6 +921,7 @@ void UBSceneThumbnailNavigPixmap::updateButtonsState()
bCanMoveUp = false;
bCanMoveDown = false;
bCanDuplicate = false;
bCanStickOnPreviousViews = false;

if(proxy()){
int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneIndex());
Expand All @@ -923,6 +933,7 @@ void UBSceneThumbnailNavigPixmap::updateButtonsState()
bCanMoveUp = documentController->pageCanBeMovedUp(pageIndex);
bCanMoveDown = documentController->pageCanBeMovedDown(pageIndex);
bCanDuplicate = documentController->pageCanBeDuplicated(pageIndex);
bCanStickOnPreviousViews = documentController->pageCanBeStuckOnPreviousViews(pageIndex);
}

if(bCanDelete || bCanMoveUp || bCanMoveDown || bCanDuplicate)
Expand All @@ -938,7 +949,7 @@ void UBSceneThumbnailNavigPixmap::deletePage()

void UBSceneThumbnailNavigPixmap::duplicatePage()
{
UBApplication::boardController->duplicateScene(sceneIndex());
UBApplication::boardController->duplicateScene(sceneIndex());
}

void UBSceneThumbnailNavigPixmap::moveUpPage()
Expand All @@ -953,6 +964,18 @@ void UBSceneThumbnailNavigPixmap::moveDownPage()
UBApplication::boardController->moveSceneToIndex(sceneIndex(), sceneIndex() + 1);
}

void UBSceneThumbnailNavigPixmap::stickPageOnPreviousViews()
{
if (UBApplication::applicationController->userSceneIndex() != sceneIndex()) {
UBApplication::applicationController->setUserSceneIndex(sceneIndex());
}
else {
UBApplication::applicationController->setUserSceneIndex(-1);
}

UBApplication::boardController->setActiveDocumentScene(UBApplication::boardController->activeSceneIndex());
}

void UBImgTextThumbnailElement::Place(int row, int col, qreal width, qreal height)
{
int labelSpacing = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/gui/UBThumbnailWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -280,12 +280,14 @@ class UBSceneThumbnailNavigPixmap : public UBSceneThumbnailPixmap
void duplicatePage();
void moveUpPage();
void moveDownPage();
void stickPageOnPreviousViews();

bool bButtonsVisible;
bool bCanDelete;
bool bCanMoveUp;
bool bCanMoveDown;
bool bCanDuplicate;
bool bCanStickOnPreviousViews;
};

class UBThumbnailVideo : public UBThumbnailPixmap
Expand Down