这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
08d321e
Write palette name as title
davidlamhauge Sep 17, 2018
cc0f609
Small string change
davidlamhauge Sep 21, 2018
c4d6c84
renamed branch and designed dialog
davidlamhauge Sep 21, 2018
8e400ce
Copy loop miltiple times working. Debugging remains.
davidlamhauge Sep 22, 2018
b054f6e
work in progress
davidlamhauge Sep 23, 2018
f7a7cfa
Merge branch 'copymultiplekeyframes' into develop_david
davidlamhauge Sep 23, 2018
c20952f
Copy multiple frame works. A little testing remains
davidlamhauge Sep 23, 2018
83282c3
Use settings to get timeline length
davidlamhauge Sep 23, 2018
226df0b
Redesigned dialog
davidlamhauge Sep 29, 2018
cdd12f3
Passing params to constructer works
davidlamhauge Sep 30, 2018
c1b7f77
Cleaning up the code
davidlamhauge Sep 30, 2018
707e237
Redesigned dialog
davidlamhauge Oct 1, 2018
42f5d05
Dialog expanded with Reverse Range
davidlamhauge Oct 2, 2018
3677f49
Copy and move between layer works
davidlamhauge Oct 2, 2018
2fc1862
Everything working on bitmap layers
davidlamhauge Oct 3, 2018
361c623
Dialog redesigned
davidlamhauge Oct 5, 2018
37eb34d
Messages on dialog working
davidlamhauge Oct 5, 2018
6772e71
Manipulate Range of frames - test version 1 finished
davidlamhauge Oct 6, 2018
67db416
Merge branch 'master' into iss575_rangeManipulation
davidlamhauge Oct 7, 2018
014931d
Dialog changes
davidlamhauge Oct 7, 2018
e0606fe
All keys on a layer are moved/deleted, empty keyframe is inserted a p…
davidlamhauge Oct 7, 2018
bcca188
Qrect bug fixed to avoid crash
davidlamhauge Oct 7, 2018
67a0529
Works for Bitmap and Vector. Stress test remains
davidlamhauge Oct 8, 2018
3b26125
Merge branch 'master' into iss575
davidlamhauge Oct 8, 2018
953412b
Edited icon + small ajustments
davidlamhauge Oct 8, 2018
b80c7d5
Checking for validity OK
davidlamhauge Oct 8, 2018
5bff3fd
Renaming functions to more logical names
davidlamhauge Oct 8, 2018
9b4bc24
Prolonging timeline when user wishes demand it
davidlamhauge Oct 8, 2018
90d9b74
Added check at startup + minor changes
davidlamhauge Oct 9, 2018
a5046b9
Merge branch 'master' into myfork/iss575
davidlamhauge Oct 9, 2018
306e510
Removing comments, unwanted functions and some minor changes
davidlamhauge Oct 9, 2018
8866744
Comments, renaming and cleaning up
davidlamhauge Oct 9, 2018
0876973
Removed function header from layermanager.h
davidlamhauge Oct 9, 2018
f272be7
Changes some text to lowercase
davidlamhauge Oct 9, 2018
0d1fee9
Moved OK and Cancel to the bottom of dialog
davidlamhauge Oct 9, 2018
592f8c2
Corrected minor error in animation menu
davidlamhauge Oct 9, 2018
1e2e710
Added a few lines to prevent errors
davidlamhauge Oct 10, 2018
49f361a
Inserted warnings in checkValidity
davidlamhauge Oct 11, 2018
71a73e4
Tested a simpler procedure
davidlamhauge Oct 12, 2018
7978546
Multiple changes suggested by J5|x implemented
davidlamhauge Oct 12, 2018
3288386
Finishing changes on request by J5|x
davidlamhauge Oct 12, 2018
2d6362a
Optimized manipulateRange() and erased unused warnings
davidlamhauge Oct 12, 2018
ea265b6
Moved .h, .cpp and .ui to app/app.pro
davidlamhauge Oct 12, 2018
3f701a5
manipulateRange() main loop as switch. Removed getActiveTab(). Cleani…
davidlamhauge Oct 13, 2018
23561e0
Reducing 4 int's to 2. Covering same variables.
davidlamhauge Oct 13, 2018
e1c8974
Removed unnecessary #include and switch
davidlamhauge Oct 13, 2018
69e8af6
Broke manipulateRange() up into 5 functions, for reusability
davidlamhauge Oct 13, 2018
2fee945
Removing empty lines and improving readability
davidlamhauge Oct 13, 2018
592515b
Changed action to ManipulateFrames for consistency. Fixed a small bug…
davidlamhauge Oct 17, 2018
ba7d405
Changed messageboxes to info/critical, and enhanced ui
davidlamhauge Oct 22, 2018
da65771
Removed unnecessary SetText, and text in ui
davidlamhauge Oct 22, 2018
1310a73
Merge branch 'master' into iss575_lowercase
davidlamhauge Oct 22, 2018
4bdf674
Warnings if originals in danger. Ui enhancement
davidlamhauge Nov 1, 2018
e8c3dc9
Inserted 4 TODOs, to remind me on changes to be made
davidlamhauge Nov 22, 2018
20c11f3
Resolved merge conflicts based on updated Master branch
davidlamhauge Dec 12, 2018
29c4483
Merge branch 'master' into iss575_lowercase
davidlamhauge Jan 2, 2019
ca7fb59
Update app/src/actioncommands.h
candyface Jan 20, 2019
532e913
PR changes requested by J5lx and CandyFace
davidlamhauge Jan 21, 2019
4732f4c
Requests: Q_UNUSED, nullptr and ///< comments removed
davidlamhauge Jan 22, 2019
757b087
Fixed indentation and some label-updating errors
davidlamhauge Jan 22, 2019
94fa62c
Unify layout in copymultiplekeyframesdialog
J5lx Jan 22, 2019
264cc52
Use Doxygen comments where appropriate
J5lx Jan 22, 2019
2bcf5a4
Merge pull request #4 from J5lx/iss575_lowercase
davidlamhauge Jan 22, 2019
cea5e21
Resolving conflicts with master
davidlamhauge Jan 19, 2020
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
3 changes: 3 additions & 0 deletions app/app.pro
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ HEADERS += \
src/spinslider.h \
src/doubleprogressdialog.h \
src/colorslider.h \
src/copymultiplekeyframesdialog.h \
src/checkupdatesdialog.h \
src/presetdialog.h

Expand Down Expand Up @@ -102,6 +103,7 @@ SOURCES += \
src/spinslider.cpp \
src/doubleprogressdialog.cpp \
src/colorslider.cpp \
src/copymultiplekeyframesdialog.cpp \
src/checkupdatesdialog.cpp \
src/presetdialog.cpp

Expand Down Expand Up @@ -130,6 +132,7 @@ FORMS += \
ui/filespage.ui \
ui/toolspage.ui \
ui/toolboxwidget.ui \
ui/copymultiplekeyframesdialog.ui \
ui/presetdialog.ui


Expand Down
2 changes: 2 additions & 0 deletions app/data/app.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@
<file>icons/new/arrow-horizontal.png</file>
<file>icons/new/arrow-selectmove.png</file>
<file>icons/new/arrow-vertical.png</file>
<file>icons/manipulate_range.png</file>
<file>icons/copy_many.png</file>
</qresource>
<qresource prefix="/app">
<file>icons/onion-blue.png</file>
Expand Down
Binary file added app/data/icons/copy_many.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/data/icons/manipulate_range.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 69 additions & 1 deletion app/src/actioncommands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ GNU General Public License for more details.
#include "exportimagedialog.h"
#include "aboutdialog.h"
#include "doubleprogressdialog.h"
#include "copymultiplekeyframesdialog.h"
#include "checkupdatesdialog.h"


ActionCommands::ActionCommands(QWidget* parent) : QObject(parent)
{
mParent = parent;
Expand Down Expand Up @@ -579,6 +579,74 @@ void ActionCommands::duplicateKey()
mEditor->layers()->notifyAnimationLengthChanged();
}

void ActionCommands::manipulateFrames()
{
int startLoop = 1, stopLoop = 2; // default values
if (mEditor->playback()->isRangedPlaybackOn())
{ // defined range values if available
startLoop = mEditor->playback()->getRangedStartFrame();
stopLoop = mEditor->playback()->getRangedEndFrame();
}
LayerManager* layerMgr = mEditor->layers();
Layer::LAYER_TYPE layerType = layerMgr->currentLayer()->type();
if (layerType != Layer::BITMAP && layerType != Layer::VECTOR)
{
Q_UNUSED(QMessageBox::information(nullptr, tr("Action not available"),
tr("Can only be used on Bitmap and Vector layers."),
QMessageBox::Ok));
return;
}
CopyMultiplekeyframesDialog* cd = new CopyMultiplekeyframesDialog(layerMgr, startLoop, stopLoop, nullptr);
cd->exec();

if (cd->result() != QDialog::Accepted) { return; }

if (!cd->getValidity())
{
Q_UNUSED(QMessageBox::critical(nullptr, tr("Action not valid!"),
tr("Failed validation check:\n- Exceeds 9999 Frames OR\n- Range not valid"),
QMessageBox::Ok));
return;
}

// If Validation is OK
startLoop = cd->getFirstFrame();
stopLoop = cd->getLastFrame();
Layer *fromLayer = layerMgr->findLayerByName(cd->getFromLayer());
Q_ASSERT(fromLayer != nullptr);
Layer *toLayer = nullptr;
int scrubOrg = mEditor->currentFrame();
int numLoops, startFrame;
switch (cd->getCurrentTab()) {
case 0: // Copy
startFrame = cd->getCopyStartFrame();
toLayer = layerMgr->findLayerByName(cd->getCopyToLayer());
Q_ASSERT(toLayer != nullptr);
numLoops = cd->getNumLoops();
fromLayer->copyFrames(startLoop, stopLoop, numLoops, startFrame, fromLayer, toLayer);
break;
case 1: // Move
startFrame = cd->getMoveStartFrame();
toLayer = layerMgr->findLayerByName(cd->getMoveToLayer());
Q_ASSERT(toLayer != nullptr);
fromLayer->moveFrames(startLoop, stopLoop,startFrame, fromLayer, toLayer);
break;
case 2: // Reverse
startFrame = cd->getReverseStartFrame();
fromLayer->reverseFrames(startLoop, stopLoop, startFrame, fromLayer);
break;
case 3: // Delete
fromLayer->deleteFrames(startLoop, stopLoop, fromLayer);
break;
default:
Q_ASSERT(false);
break;
}
mEditor->scrubTo(scrubOrg);
mEditor->layers()->notifyLayerChanged(toLayer);
mEditor->layers()->notifyAnimationLengthChanged();
}

void ActionCommands::moveFrameForward()
{
Layer* layer = mEditor->layers()->currentLayer();
Expand Down
4 changes: 4 additions & 0 deletions app/src/actioncommands.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,20 @@ GNU General Public License for more details.

#include <QObject>
#include "pencilerror.h"
class Layer;

class Editor;
class QWidget;
class ExportMovieDialog;



class ActionCommands : public QObject
{
Q_OBJECT

public:

explicit ActionCommands(QWidget* parent = nullptr);
virtual ~ActionCommands();

Expand Down Expand Up @@ -66,6 +69,7 @@ class ActionCommands : public QObject
Status addNewKey();
void removeKey();
void duplicateKey();
void manipulateFrames();
void moveFrameForward();
void moveFrameBackward();

Expand Down
Loading