Masterwork From Distant Lands
ActivePublic

Authored by dkazakov on Aug 2 2017, 12:02 PM.
diff --git a/libs/ui/kis_action_manager.cpp b/libs/ui/kis_action_manager.cpp
index 8269228..296703b 100644
--- a/libs/ui/kis_action_manager.cpp
+++ b/libs/ui/kis_action_manager.cpp
@@ -160,7 +160,7 @@ void KisActionManager::takeAction(KisAction* action)
}
}
-KisAction *KisActionManager::actionByName(const QString &name) const
+/*KisAction *KisActionManager::actionByName(const QString &name) const
{
Q_FOREACH (KisAction *action, d->actions) {
if (action->objectName() == name) {
@@ -168,8 +168,17 @@ KisAction *KisActionManager::actionByName(const QString &name) const
}
}
return 0;
-}
+}*/
+KisAction *KisActionManager::actionByName(const QString &name)
+{
+ Q_FOREACH (KisAction *action, d->actions) {
+ if (action->objectName() == name) {
+ return action;
+ }
+ }
+ return 0;
+}
KisAction *KisActionManager::createAction(const QString &name)
{
diff --git a/libs/ui/kis_action_manager.h b/libs/ui/kis_action_manager.h
index c481469..26d2822 100644
--- a/libs/ui/kis_action_manager.h
+++ b/libs/ui/kis_action_manager.h
@@ -76,7 +76,8 @@ public:
/**
* Look up an action by name.
*/
- KisAction *actionByName(const QString &name) const;
+ //KisAction *actionByName(const QString &name) const;
+ KisAction *actionByName(const QString &name);
void registerOperationUIFactory(KisOperationUIFactory* factory);
void registerOperation(KisOperation* operation);
diff --git a/libs/ui/kis_multinode_property.h b/libs/ui/kis_multinode_property.h
index 56ca189..cd16ed6 100644
--- a/libs/ui/kis_multinode_property.h
+++ b/libs/ui/kis_multinode_property.h
@@ -133,6 +133,21 @@ inline uint qHash(const KisBaseNode::Property &prop, uint seed = 0) {
return qHash(prop.name, seed);
}
+struct ShowInTimelineAdapter : public BaseAdapter {
+ typedef bool ValueType;
+ typedef MultinodePropertyBoolConnector<ShowInTimelineAdapter> ConnectorType;
+ static const bool forceIgnoreByDefault = false;
+
+ static ValueType propForNode(KisNodeSP node) {
+ return node->useInTimeline();
+ }
+
+ static void setPropForNode(KisNodeSP node, const ValueType &value, int index) {
+ Q_UNUSED(index);
+ node->setUseInTimeline(value);
+ }
+};
+
struct LayerPropertyAdapter : public BaseAdapter {
typedef bool ValueType;
typedef MultinodePropertyBoolConnector<LayerPropertyAdapter> ConnectorType;
diff --git a/libs/ui/kis_node_manager.cpp b/libs/ui/kis_node_manager.cpp
index 4e99690..71d4203 100644
--- a/libs/ui/kis_node_manager.cpp
+++ b/libs/ui/kis_node_manager.cpp
@@ -103,6 +103,8 @@ struct KisNodeManager::Private {
QScopedPointer<KisNodeSelectionAdapter> nodeSelectionAdapter;
QScopedPointer<KisNodeInsertionAdapter> nodeInsertionAdapter;
+ KisAction *showInTimeline;
+
KisNodeList selectedNodes;
QPointer<KisNodeJugglerCompressed> nodeJuggler;
@@ -300,6 +302,13 @@ void KisNodeManager::setup(KActionCollection * actionCollection, KisActionManage
action = actionManager->createAction("new_from_visible");
connect(action, SIGNAL(triggered()), this, SLOT(createFromVisible()));
+ action = actionManager->createAction("show_in_timeline");
+ action->setCheckable(true);
+ //connect(action, SIGNAL(triggered(bool)), this, SLOT(slotShowHideTimeline(bool)));
+ connect(action, SIGNAL(toggled(bool)), this, SLOT(slotShowHideTimeline(bool)));
+ //connect(this, SIGNAL(sigUiNeedChangeSelectedNodes(KisNodeList)), this, SLOT(slotStartChecking()));
+ m_d->showInTimeline = action;
+
NEW_LAYER_ACTION("add_new_paint_layer", "KisPaintLayer");
NEW_LAYER_ACTION("add_new_group_layer", "KisGroupLayer");
@@ -537,6 +546,31 @@ void KisNodeManager::createFromVisible()
KisLayerUtils::newLayerFromVisible(m_d->view->image(), m_d->view->image()->root()->lastChild());
}
+void KisNodeManager::slotStartChecking()
+{
+ bool shouldBeChecked = true;
+
+ Q_FOREACH (const KisNodeSP &node, selectedNodes()) {
+ if (!node->useInTimeline()) {
+ shouldBeChecked = false;
+ break;
+ }
+ }
+
+ //m_d->showInTimeline->setChecked(shouldBeChecked);
+}
+
+void KisNodeManager::slotShowHideTimeline(bool value)
+{
+ ENTER_FUNCTION() << ppVar(value);
+
+ Q_FOREACH (KisNodeSP node, selectedNodes()) {
+ node->setUseInTimeline(value);
+ }
+
+ //m_d->showInTimeline->setChecked(value);
+}
+
KisLayerSP KisNodeManager::createPaintLayer()
{
KisNodeSP activeNode = this->activeNode();
diff --git a/libs/ui/kis_node_manager.h b/libs/ui/kis_node_manager.h
index 80dc92a..5365cf4 100644
--- a/libs/ui/kis_node_manager.h
+++ b/libs/ui/kis_node_manager.h
@@ -158,6 +158,9 @@ public Q_SLOTS:
*/
void createFromVisible();
+ void slotStartChecking(); //
+ void slotShowHideTimeline(bool value); //
+
void toggleIsolateActiveNode();
void toggleIsolateMode(bool checked);
void slotUpdateIsolateModeAction();
dkazakov edited the content of this paste. (Show Details)Aug 2 2017, 12:02 PM
dkazakov changed the title of this paste from untitled to Masterwork From Distant Lands.
dkazakov updated the paste's language from autodetect to autodetect.