Fix ZoomEntry slider range

After f8874f4f7b41a73db16c647aeaa7f95306c360ec, we fixed the zoom text
entry but we broke the zoom slider. We weren't able to select zoom
factors with the slider correctly (as the scale from 0 to 6400 was too
big). Now we revert the change and make the maximum text length in entry
bigger so the user can enter zoom levels like 6400 in the text entry and
use the zoom slider.
This commit is contained in:
David Capello 2016-12-29 10:22:39 -03:00
parent a56dff5515
commit ea71455f81
3 changed files with 11 additions and 4 deletions

View File

@ -31,11 +31,11 @@ using namespace gfx;
using namespace ui;
ZoomEntry::ZoomEntry()
: IntEntry(
0, render::Zoom::fromLinearScale(render::Zoom::linearValues()-1).scale()*100, this)
: IntEntry(0, render::Zoom::linearValues()-1, this)
, m_locked(false)
{
setSuffix("%");
setMaxTextLength(6); // strlen("6400.0") == 6
setup_mini_look(this);
setZoom(render::Zoom(1, 1));

View File

@ -29,7 +29,7 @@
namespace ui {
Entry::Entry(std::size_t maxsize, const char* format, ...)
Entry::Entry(const std::size_t maxsize, const char* format, ...)
: Widget(kEntryWidget)
, m_timer(500, this)
, m_maxsize(maxsize)
@ -71,6 +71,11 @@ Entry::~Entry()
{
}
void Entry::setMaxTextLength(const std::size_t maxsize)
{
m_maxsize = maxsize;
}
bool Entry::isReadOnly() const
{
return m_readonly;

View File

@ -18,9 +18,11 @@ namespace ui {
class Entry : public Widget {
public:
Entry(std::size_t maxsize, const char *format, ...);
Entry(const std::size_t maxsize, const char *format, ...);
~Entry();
void setMaxTextLength(const std::size_t maxsize);
bool isPassword() const;
bool isReadOnly() const;
void setReadOnly(bool state);