mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Enhancement : Rename layers
- added rename icon in layers list - mutualized CSS for edit icon between palette manager and layers list - new CSS file icons.css for actions/links/buttons using icons - layers are no longer retrieved by name, but by index
This commit is contained in:
@ -123,15 +123,10 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.palette-manager-details-head-edit-icon {
|
.palette-manager-details-head .edit-icon {
|
||||||
cursor: pointer;
|
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 100%;
|
|
||||||
background: url('../img/tools/pen.png');
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-size: 20px;
|
background-size: 16px;
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.palette-manager-details-head-actions {
|
.palette-manager-details-head-actions {
|
||||||
|
10
src/css/icons.css
Normal file
10
src/css/icons.css
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
.action-icon {
|
||||||
|
cursor: pointer;
|
||||||
|
height: 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-icon.edit-icon {
|
||||||
|
background-image: url('../img/tools/pen.png');
|
||||||
|
}
|
@ -19,11 +19,27 @@
|
|||||||
.layer-item {
|
.layer-item {
|
||||||
height:24px;
|
height:24px;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
padding : 0 10px;
|
padding : 0 0 0 10px;
|
||||||
border-top: 1px solid #444;
|
border-top: 1px solid #444;
|
||||||
cursor : pointer;
|
cursor : pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.layer-item .edit-icon {
|
||||||
|
float: right;
|
||||||
|
width: 30px;
|
||||||
|
background-size: 12px;
|
||||||
|
opacity: 0;
|
||||||
|
transition : opacity 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-item:hover .edit-icon {
|
||||||
|
opacity : 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-item:hover .edit-icon:hover {
|
||||||
|
opacity : 1;
|
||||||
|
}
|
||||||
|
|
||||||
.layer-item:hover {
|
.layer-item:hover {
|
||||||
background : #222;
|
background : #222;
|
||||||
}
|
}
|
||||||
|
@ -23,24 +23,37 @@
|
|||||||
layers.forEach(this.addLayerItem.bind(this));
|
layers.forEach(this.addLayerItem.bind(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.LayersListController.prototype.addLayerItem = function (layer) {
|
ns.LayersListController.prototype.addLayerItem = function (layer, index) {
|
||||||
|
var isSelected = this.piskelController.getCurrentLayer() === layer;
|
||||||
var layerItemHtml = pskl.utils.Template.replace(this.layerItemTemplate_, {
|
var layerItemHtml = pskl.utils.Template.replace(this.layerItemTemplate_, {
|
||||||
layername : layer.getName()
|
'layername' : layer.getName(),
|
||||||
|
'layerindex' : index,
|
||||||
|
'isselected:current-layer-item' : isSelected
|
||||||
});
|
});
|
||||||
var layerItem = pskl.utils.Template.createFromHTML(layerItemHtml);
|
var layerItem = pskl.utils.Template.createFromHTML(layerItemHtml);
|
||||||
if (this.piskelController.getCurrentLayer() === layer) {
|
|
||||||
layerItem.classList.add('current-layer-item');
|
|
||||||
}
|
|
||||||
this.layersListEl.insertBefore(layerItem, this.layersListEl.firstChild);
|
this.layersListEl.insertBefore(layerItem, this.layersListEl.firstChild);
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.LayersListController.prototype.onClick_ = function (evt) {
|
ns.LayersListController.prototype.onClick_ = function (evt) {
|
||||||
var el = evt.target || evt.srcElement;
|
var el = evt.target || evt.srcElement;
|
||||||
|
var index;
|
||||||
if (el.nodeName == 'BUTTON') {
|
if (el.nodeName == 'BUTTON') {
|
||||||
this.onButtonClick_(el);
|
this.onButtonClick_(el);
|
||||||
} else if (el.nodeName == 'LI') {
|
} else if (el.classList.contains('layer-item')) {
|
||||||
var layerName = el.getAttribute('data-layer-name');
|
index = el.dataset.layerIndex;
|
||||||
this.piskelController.selectLayerByName(layerName);
|
this.piskelController.setCurrentLayerIndex(index);
|
||||||
|
} else if (el.classList.contains('edit-icon')) {
|
||||||
|
index = el.parentNode.dataset.layerIndex;
|
||||||
|
var layer = this.piskelController.getLayerByIndex(index);
|
||||||
|
this.renameLayer_(layer);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.LayersListController.prototype.renameLayer_ = function (layer) {
|
||||||
|
var newName = window.prompt("Please enter the layer name", layer.getName());
|
||||||
|
if (newName) {
|
||||||
|
layer.setName(newName);
|
||||||
|
this.renderLayerList_();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -161,10 +161,12 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.PiskelController.prototype.selectLayerByName = function (name) {
|
ns.PiskelController.prototype.getLayerByIndex = function (index) {
|
||||||
if (this.hasLayerForName_(name)) {
|
var layers = this.getLayers();
|
||||||
var layer = this.piskel.getLayersByName(name)[0];
|
if (layers[index]) {
|
||||||
this.selectLayer(layer);
|
return layers[index];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
var SELECTED_CLASSNAME = 'selected';
|
var SELECTED_CLASSNAME = 'selected';
|
||||||
var NEW_COLOR_CLASS = 'palette-manager-new-color';
|
var NEW_COLOR_CLASS = 'palette-manager-new-color';
|
||||||
var CLOSE_ICON_CLASS = 'palette-manager-delete-card';
|
var CLOSE_ICON_CLASS = 'palette-manager-delete-card';
|
||||||
var EDIT_NAME_CLASS = 'palette-manager-details-head-edit-icon';
|
var EDIT_NAME_CLASS = 'edit-icon';
|
||||||
|
|
||||||
ns.PaletteManagerController = function (piskelController) {
|
ns.PaletteManagerController = function (piskelController) {
|
||||||
this.piskelController = piskelController;
|
this.piskelController = piskelController;
|
||||||
|
@ -27,6 +27,10 @@
|
|||||||
return this.name;
|
return this.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ns.Layer.prototype.setName = function (name) {
|
||||||
|
this.name = name;
|
||||||
|
};
|
||||||
|
|
||||||
ns.Layer.prototype.getFrames = function () {
|
ns.Layer.prototype.getFrames = function () {
|
||||||
return this.frames;
|
return this.frames;
|
||||||
};
|
};
|
||||||
|
@ -6,6 +6,7 @@ exports.styles = [
|
|||||||
"css/forms.css",
|
"css/forms.css",
|
||||||
"css/settings.css",
|
"css/settings.css",
|
||||||
"css/tools.css",
|
"css/tools.css",
|
||||||
|
"css/icons.css",
|
||||||
"css/cheatsheet.css",
|
"css/cheatsheet.css",
|
||||||
"css/dialogs.css",
|
"css/dialogs.css",
|
||||||
"css/dialogs-manage-palettes.css",
|
"css/dialogs-manage-palettes.css",
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<script type="text/template" id="palette-details-head-template">
|
<script type="text/template" id="palette-details-head-template">
|
||||||
<span class="palette-manager-details-head-name">{{name}}</span>
|
<span class="palette-manager-details-head-name">{{name}}</span>
|
||||||
<span class="palette-manager-details-head-edit-icon" title="edit name"> </span>
|
<span class="action-icon edit-icon" title="edit name"> </span>
|
||||||
<div class="palette-manager-details-head-actions">
|
<div class="palette-manager-details-head-actions">
|
||||||
<button class="palette-manager-palette-button button button-primary" {{save:disabled}} data-action="save" type="button">Save</button>
|
<button class="palette-manager-palette-button button button-primary" {{save:disabled}} data-action="save" type="button">Save</button>
|
||||||
<button class="palette-manager-palette-button button " {{revert:disabled}} data-action="revert" type="button">Revert</button>
|
<button class="palette-manager-palette-button button " {{revert:disabled}} data-action="revert" type="button">Revert</button>
|
||||||
|
@ -7,7 +7,9 @@
|
|||||||
<button class="button toolbox-button layers-button-arrow" data-action="down" >↓</button>
|
<button class="button toolbox-button layers-button-arrow" data-action="down" >↓</button>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/template" id="layer-item-template">
|
<script type="text/template" id="layer-item-template">
|
||||||
<li class="layer-item" data-layer-name="{{layername}}">{{layername}}</li>
|
<li class="layer-item {{isselected:current-layer-item}}" data-layer-index="{{layerindex}}">{{layername}}
|
||||||
|
<span class="action-icon edit-icon" title="edit name"> </span>
|
||||||
|
</li>
|
||||||
</script>
|
</script>
|
||||||
<ul class="layers-list"></ul>
|
<ul class="layers-list"></ul>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user