Merge branch 'master' of git@github.com:aseprite/aseprite.git

This commit is contained in:
David Capello 2015-04-16 20:32:41 -03:00
commit 7e65cab22f
3 changed files with 13 additions and 10 deletions

View File

@ -67,7 +67,8 @@ MaskByColorCommand::MaskByColorCommand()
bool MaskByColorCommand::onEnabled(Context* context)
{
return context->checkFlags(ContextFlags::ActiveDocumentIsWritable |
ContextFlags::HasActiveSprite);
ContextFlags::HasActiveSprite |
ContextFlags::HasActiveImage);
}
void MaskByColorCommand::onExecute(Context* context)

View File

@ -84,8 +84,6 @@ private:
base::UniquePtr<ui::Timer> m_timer;
};
static void slider_change_hook(Slider* slider);
static WidgetType statusbar_type()
{
static WidgetType type = kGenericWidget;
@ -139,6 +137,7 @@ StatusBar* StatusBar::m_instance = NULL;
StatusBar::StatusBar()
: Widget(statusbar_type())
, m_color(app::Color::fromMask())
, m_hasDoc(false)
{
m_instance = this;
@ -173,7 +172,7 @@ StatusBar::StatusBar()
setup_mini_look(m_newFrame);
setup_mini_look(m_slider);
m_slider->Change.connect(Bind<void>(&slider_change_hook, m_slider));
m_slider->Change.connect(Bind<void>(&StatusBar::onCelOpacityChange, this));
m_slider->setMinSize(gfx::Size(ui::display_w()/5, 0));
box1->setBorder(gfx::Border(2, 1, 2, 2)*guiscale());
@ -333,7 +332,7 @@ void StatusBar::onResize(ResizeEvent& ev)
rc.x += rc.w - prefWidth - border.right() - toolBarWidth;
rc.w = prefWidth;
m_commandsBox->setVisible(true);
m_commandsBox->setVisible(true && m_hasDoc);
m_commandsBox->setBounds(rc);
}
else
@ -426,7 +425,7 @@ bool StatusBar::CustomizedTipWindow::onProcessMessage(Message* msg)
return ui::TipWindow::onProcessMessage(msg);
}
static void slider_change_hook(Slider* slider)
void StatusBar::onCelOpacityChange()
{
try {
ContextWriter writer(UIContext::instance(), 500);
@ -434,13 +433,13 @@ static void slider_change_hook(Slider* slider)
DocumentRange range = App::instance()->getMainWindow()->getTimeline()->range();
if (range.enabled()) {
for (Cel* cel : get_unique_cels(writer.sprite(), range))
cel->setOpacity(slider->getValue());
cel->setOpacity(m_slider->getValue());
}
else {
Cel* cel = writer.cel();
if (cel) {
// Update the opacity
cel->setOpacity(slider->getValue());
cel->setOpacity(m_slider->getValue());
}
}
@ -457,6 +456,7 @@ void StatusBar::updateFromDocument(Editor* editor)
try {
if (editor && editor->document()) {
const DocumentReader reader(editor->document(), 100);
m_hasDoc = true;
m_commandsBox->setVisible(true);
// Cel opacity
@ -475,11 +475,11 @@ void StatusBar::updateFromDocument(Editor* editor)
}
}
else {
m_hasDoc = false;
m_commandsBox->setVisible(false);
}
}
catch (LockedDocumentException&) {
// Disable all
catch (const LockedDocumentException&) {
m_slider->setEnabled(false);
}
}

View File

@ -60,6 +60,7 @@ namespace app {
private:
void onCurrentToolChange();
void onCelOpacityChange();
void updateFromDocument(Editor* editor);
void updateCurrentFrame(Editor* editor);
void newFrame();
@ -82,6 +83,7 @@ namespace app {
ui::Slider* m_slider; // Opacity slider
ui::Entry* m_currentFrame; // Current frame and go to frame entry
ui::Button* m_newFrame; // Button to create a new frame
bool m_hasDoc;
// Tip window
class CustomizedTipWindow;