| 146 | AppRender Editor::m_renderEngine; |
| 147 | |
| 148 | Editor::Editor(Document* document, EditorFlags flags) |
| 149 | : Widget(editor_type()) |
| 150 | , m_state(new StandbyState()) |
| 151 | , m_decorator(NULL) |
| 152 | , m_document(document) |
| 153 | , m_sprite(m_document->sprite()) |
| 154 | , m_layer(m_sprite->folder()->getFirstLayer()) |
| 155 | , m_frame(frame_t(0)) |
| 156 | , m_zoom(1, 1) |
| 157 | , m_docPref(Preferences::instance().document(document)) |
| 158 | , m_brushPreview(this) |
| 159 | , m_lastDrawingPosition(-1, -1) |
| 160 | , m_toolLoopModifiers(tools::ToolLoopModifiers::kNone) |
| 161 | , m_autoSelectLayer(false) |
| 162 | , m_padding(0, 0) |
| 163 | , m_antsTimer(100, this) |
| 164 | , m_antsOffset(0) |
| 165 | , m_customizationDelegate(NULL) |
| 166 | , m_docView(NULL) |
| 167 | , m_flags(flags) |
| 168 | , m_secondaryButton(false) |
| 169 | , m_aniSpeed(1.0) |
| 170 | { |
| 171 | // Add the first state into the history. |
| 172 | m_statesHistory.push(m_state); |
| 173 | |
| 174 | this->setFocusStop(true); |
| 175 | |
| 176 | App::instance()->activeToolManager()->addObserver(this); |
| 177 | |
| 178 | m_fgColorChangeConn = |
| 179 | Preferences::instance().colorBar.fgColor.AfterChange.connect( |
| 180 | base::Bind<void>(&Editor::onFgColorChange, this)); |
| 181 | |
| 182 | m_contextBarBrushChangeConn = |
| 183 | App::instance()->contextBar()->BrushChange.connect( |
| 184 | base::Bind<void>(&Editor::onContextBarBrushChange, this)); |
| 185 | |
| 186 | // Restore last site in preferences |
| 187 | frame_t preferredFrame = m_docPref.site.frame(); |
| 188 | Layer* preferredLayer = m_sprite->indexToLayer(m_docPref.site.layer()); |
| 189 | if (preferredFrame >= 0 && preferredFrame <= m_sprite->lastFrame()) |
| 190 | setFrame(preferredFrame); |
| 191 | if (preferredLayer) |
| 192 | setLayer(preferredLayer); |
| 193 | |
| 194 | m_tiledConn = m_docPref.tiled.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); |
| 195 | m_gridConn = m_docPref.grid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); |
| 196 | m_pixelGridConn = m_docPref.pixelGrid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); |
| 197 | m_bgConn = m_docPref.bg.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); |
| 198 | m_onionskinConn = m_docPref.onionskin.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this)); |
| 199 | m_symmetryModeConn = Preferences::instance().symmetryMode.enabled.AfterChange.connect(base::Bind<void>(&Editor::invalidateIfActive, this)); |
| 200 | m_showExtrasConn = |
| 201 | m_docPref.show.AfterChange.connect( |
| 202 | base::Bind<void>(&Editor::onShowExtrasChange, this)); |
| 203 | |
| 204 | m_document->addObserver(this); |
| 205 |
nothing calls this directly
no test coverage detected