/*
Copyright 2006-2026 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see .
*/
#ifndef LAST_USED_STYLE_H
#define LAST_USED_STYLE_H
#include
#include
#include
/**
@brief The LastUsedStyle class
Session-scoped "last used" style for new shapes and free text created
on the diagram canvas: whatever pen/brush/font was last applied through
the properties editors becomes the starting point for the next new
item of that type, the way most drawing tools behave.
Deliberately in-memory only, not QSettings-backed: this is a live
"what did I just use" value for the current editing session, not an
app-wide default (that's already covered by the Preferences dialog's
font setting, read as the fallback when nothing has been set yet).
*/
class LastUsedStyle
{
public:
static bool hasShapePen();
static QPen shapePen();
static void setShapePen(const QPen &pen);
static bool hasShapeBrush();
static QBrush shapeBrush();
static void setShapeBrush(const QBrush &brush);
static bool hasTextFont();
static QFont textFont();
static void setTextFont(const QFont &font);
private:
LastUsedStyle() = delete;
static QPen m_shape_pen;
static bool m_has_shape_pen;
static QBrush m_shape_brush;
static bool m_has_shape_brush;
static QFont m_text_font;
static bool m_has_text_font;
};
#endif // LAST_USED_STYLE_H