mirror of
https://github.com/yse/easy_profiler.git
synced 2024-12-27 08:41:02 +08:00
#0 [UI] refactoring
This commit is contained in:
parent
7503199eed
commit
2b75e65535
@ -353,7 +353,7 @@ GraphicsRulerItem* BlocksGraphicsView::createRuler(bool _main)
|
|||||||
{
|
{
|
||||||
auto ruler = new GraphicsRulerItem(_main);
|
auto ruler = new GraphicsRulerItem(_main);
|
||||||
|
|
||||||
ruler->setColor(_main ? ::profiler_gui::CHRONOMETER_COLOR : ::profiler_gui::CHRONOMETER_COLOR2);
|
ruler->setColor(_main ? ::profiler_gui::RULER_COLOR : ::profiler_gui::RULER_COLOR2);
|
||||||
ruler->setBoundingRect(sceneRect());
|
ruler->setBoundingRect(sceneRect());
|
||||||
ruler->hide();
|
ruler->hide();
|
||||||
scene()->addItem(ruler);
|
scene()->addItem(ruler);
|
||||||
@ -2391,8 +2391,8 @@ void ThreadNameItem::paint(QPainter* _painter, const QStyleOptionGraphicsItem*,
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
drawTimeText(time1, th, ::profiler_gui::CHRONOMETER_COLOR.rgb() & 0x00ffffff);
|
drawTimeText(time1, th, ::profiler_gui::RULER_COLOR.rgb() & 0x00ffffff);
|
||||||
drawTimeText(time2, th, ::profiler_gui::CHRONOMETER_COLOR2.rgb() & 0x00ffffff);
|
drawTimeText(time2, th, ::profiler_gui::RULER_COLOR2.rgb() & 0x00ffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -92,7 +92,7 @@ namespace profiler_gui {
|
|||||||
, max_fps_history(90)
|
, max_fps_history(90)
|
||||||
, fps_timer_interval(500)
|
, fps_timer_interval(500)
|
||||||
, fps_widget_line_width(2)
|
, fps_widget_line_width(2)
|
||||||
, chrono_text_position(ChronoTextPosition_Top)
|
, chrono_text_position(RulerTextPosition_Top)
|
||||||
, time_units(TimeUnits_ms)
|
, time_units(TimeUnits_ms)
|
||||||
, connected(false)
|
, connected(false)
|
||||||
, fps_enabled(true)
|
, fps_enabled(true)
|
||||||
|
@ -72,10 +72,10 @@ namespace profiler_gui {
|
|||||||
const QString ORGANAZATION_NAME = "EasyProfiler";
|
const QString ORGANAZATION_NAME = "EasyProfiler";
|
||||||
const QString APPLICATION_NAME = "Easy profiler gui application";
|
const QString APPLICATION_NAME = "Easy profiler gui application";
|
||||||
|
|
||||||
const QColor CHRONOMETER_COLOR = QColor::fromRgba(0x40000000 | (::profiler::colors::RichBlue & 0x00ffffff));// 0x402020c0);
|
const QColor RULER_COLOR = QColor::fromRgba(0x40000000 | (::profiler::colors::RichBlue & 0x00ffffff));// 0x402020c0);
|
||||||
const QColor CHRONOMETER_COLOR2 = QColor::fromRgba(0x40000000 | (::profiler::colors::Dark & 0x00ffffff));// 0x40408040);
|
const QColor RULER_COLOR2 = QColor::fromRgba(0x40000000 | (::profiler::colors::Dark & 0x00ffffff));// 0x40408040);
|
||||||
const QColor TEXT_COLOR = QColor::fromRgb(0xff504040);
|
const QColor TEXT_COLOR = QColor::fromRgb(0xff504040);
|
||||||
const QColor SYSTEM_BORDER_COLOR = QColor::fromRgb(0xffcccccc);
|
const QColor SYSTEM_BORDER_COLOR = QColor::fromRgb(0xffc4c4c4);
|
||||||
EASY_CONSTEXPR QRgb SELECTED_THREAD_BACKGROUND = 0xffe0e060;
|
EASY_CONSTEXPR QRgb SELECTED_THREAD_BACKGROUND = 0xffe0e060;
|
||||||
EASY_CONSTEXPR QRgb SELECTED_THREAD_FOREGROUND = 0xffffffff - (SELECTED_THREAD_BACKGROUND & 0x00ffffff);
|
EASY_CONSTEXPR QRgb SELECTED_THREAD_FOREGROUND = 0xffffffff - (SELECTED_THREAD_BACKGROUND & 0x00ffffff);
|
||||||
|
|
||||||
@ -146,13 +146,13 @@ namespace profiler_gui {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
enum ChronometerTextPosition : int8_t
|
enum RulerTextPosition : int8_t
|
||||||
{
|
{
|
||||||
ChronoTextPosition_Center = 0,
|
RulerTextPosition_Center = 0,
|
||||||
ChronoTextPosition_Top,
|
RulerTextPosition_Top,
|
||||||
ChronoTextPosition_Bottom,
|
RulerTextPosition_Bottom,
|
||||||
|
|
||||||
}; // END of enum ChronometerTextPosition.
|
}; // END of enum RulerTextPosition.
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ namespace profiler_gui {
|
|||||||
int max_fps_history; ///< Max frames history displayed in FPS Monitor
|
int max_fps_history; ///< Max frames history displayed in FPS Monitor
|
||||||
int fps_timer_interval; ///< Interval in milliseconds for sending network requests to the profiled application (used by FPS Monitor)
|
int fps_timer_interval; ///< Interval in milliseconds for sending network requests to the profiled application (used by FPS Monitor)
|
||||||
int fps_widget_line_width; ///< Line width in pixels of FPS lines for FPS Monitor
|
int fps_widget_line_width; ///< Line width in pixels of FPS lines for FPS Monitor
|
||||||
ChronometerTextPosition chrono_text_position; ///< Selected interval text position
|
RulerTextPosition chrono_text_position; ///< Selected interval text position
|
||||||
TimeUnits time_units; ///< Units type for time (milliseconds, microseconds, nanoseconds or auto-definition)
|
TimeUnits time_units; ///< Units type for time (milliseconds, microseconds, nanoseconds or auto-definition)
|
||||||
bool connected; ///< Is connected to source (to be able to capture profiling information)
|
bool connected; ///< Is connected to source (to be able to capture profiling information)
|
||||||
bool fps_enabled; ///< Is FPS Monitor enabled
|
bool fps_enabled; ///< Is FPS Monitor enabled
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
GraphicsRulerItem::GraphicsRulerItem(bool _main)
|
GraphicsRulerItem::GraphicsRulerItem(bool _main)
|
||||||
: Parent()
|
: Parent()
|
||||||
, m_color(::profiler_gui::CHRONOMETER_COLOR)
|
, m_color(profiler_gui::RULER_COLOR)
|
||||||
, m_left(0)
|
, m_left(0)
|
||||||
, m_right(0)
|
, m_right(0)
|
||||||
, m_bMain(_main)
|
, m_bMain(_main)
|
||||||
@ -149,7 +149,7 @@ void GraphicsRulerItem::paint(QPainter* _painter, const QStyleOptionGraphicsItem
|
|||||||
QRectF rect((m_left - offset) * currentScale, visibleSceneRect.top(), ::std::max(selectedInterval * currentScale, 1.0), visibleSceneRect.height());
|
QRectF rect((m_left - offset) * currentScale, visibleSceneRect.top(), ::std::max(selectedInterval * currentScale, 1.0), visibleSceneRect.height());
|
||||||
selectedInterval = units2microseconds(selectedInterval);
|
selectedInterval = units2microseconds(selectedInterval);
|
||||||
|
|
||||||
const QString text = ::profiler_gui::timeStringReal(EASY_GLOBALS.time_units, selectedInterval); // Displayed text
|
const QString text = profiler_gui::timeStringReal(EASY_GLOBALS.time_units, selectedInterval); // Displayed text
|
||||||
const auto textRect = QFontMetricsF(EASY_GLOBALS.font.ruler, sceneView).boundingRect(text); // Calculate displayed text boundingRect
|
const auto textRect = QFontMetricsF(EASY_GLOBALS.font.ruler, sceneView).boundingRect(text); // Calculate displayed text boundingRect
|
||||||
const auto rgb = m_color.rgb() & 0x00ffffff;
|
const auto rgb = m_color.rgb() & 0x00ffffff;
|
||||||
|
|
||||||
@ -242,23 +242,23 @@ void GraphicsRulerItem::paint(QPainter* _painter, const QStyleOptionGraphicsItem
|
|||||||
int textFlags = 0;
|
int textFlags = 0;
|
||||||
switch (EASY_GLOBALS.chrono_text_position)
|
switch (EASY_GLOBALS.chrono_text_position)
|
||||||
{
|
{
|
||||||
case ::profiler_gui::ChronoTextPosition_Top:
|
case profiler_gui::RulerTextPosition_Top:
|
||||||
textFlags = Qt::AlignTop | Qt::AlignHCenter;
|
textFlags = Qt::AlignTop | Qt::AlignHCenter;
|
||||||
if (!m_bMain) rect.setTop(rect.top() + textRect.height() * 0.75);
|
if (!m_bMain) rect.setTop(rect.top() + textRect.height() * 0.75);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ::profiler_gui::ChronoTextPosition_Center:
|
case profiler_gui::RulerTextPosition_Center:
|
||||||
textFlags = Qt::AlignCenter;
|
textFlags = Qt::AlignCenter;
|
||||||
if (!m_bMain) rect.setTop(rect.top() + textRect.height() * 1.5);
|
if (!m_bMain) rect.setTop(rect.top() + textRect.height() * 1.5);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ::profiler_gui::ChronoTextPosition_Bottom:
|
case profiler_gui::RulerTextPosition_Bottom:
|
||||||
textFlags = Qt::AlignBottom | Qt::AlignHCenter;
|
textFlags = Qt::AlignBottom | Qt::AlignHCenter;
|
||||||
if (!m_bMain) rect.setHeight(rect.height() - textRect.height() * 0.75);
|
if (!m_bMain) rect.setHeight(rect.height() - textRect.height() * 0.75);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto textRect_width = textRect.width() * ::profiler_gui::FONT_METRICS_FACTOR;
|
const auto textRect_width = textRect.width() * profiler_gui::FONT_METRICS_FACTOR;
|
||||||
if (textRect_width < rect.width())
|
if (textRect_width < rect.width())
|
||||||
{
|
{
|
||||||
// Text will be drawed inside rectangle
|
// Text will be drawed inside rectangle
|
||||||
|
@ -204,7 +204,7 @@ GraphicsSliderArea::GraphicsSliderArea(QWidget* _parent)
|
|||||||
scene()->addItem(m_selectionIndicator);
|
scene()->addItem(m_selectionIndicator);
|
||||||
|
|
||||||
m_selectionIndicator->setPos(0, 0);
|
m_selectionIndicator->setPos(0, 0);
|
||||||
m_selectionIndicator->setColor(0x40000000 | profiler_gui::CHRONOMETER_COLOR.rgba());
|
m_selectionIndicator->setColor(0x40000000 | profiler_gui::RULER_COLOR.rgba());
|
||||||
m_selectionIndicator->hide();
|
m_selectionIndicator->hide();
|
||||||
|
|
||||||
m_slider = new GraphicsSliderItem(6, true);
|
m_slider = new GraphicsSliderItem(6, true);
|
||||||
|
@ -469,8 +469,8 @@ MainWindow::MainWindow() : Parent(), m_theme("default"), m_lastAddress("localhos
|
|||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
auto submenu = menu->addMenu("View");
|
auto submenu = menu->addMenu("View");
|
||||||
submenu->setToolTipsVisible(true);
|
submenu->setToolTipsVisible(true);
|
||||||
action = submenu->addAction("Draw items' borders");
|
action = submenu->addAction("Draw borders");
|
||||||
action->setToolTip("Draw borders for blocks on diagram.\nThis reduces performance.");
|
action->setToolTip("Draw borders for blocks on diagram.\nThis slightly reduces performance.");
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setChecked(EASY_GLOBALS.draw_graphics_items_borders);
|
action->setChecked(EASY_GLOBALS.draw_graphics_items_borders);
|
||||||
connect(action, &QAction::triggered, [this](bool _checked){ EASY_GLOBALS.draw_graphics_items_borders = _checked; refreshDiagram(); });
|
connect(action, &QAction::triggered, [this](bool _checked){ EASY_GLOBALS.draw_graphics_items_borders = _checked; refreshDiagram(); });
|
||||||
@ -593,32 +593,32 @@ MainWindow::MainWindow() : Parent(), m_theme("default"), m_lastAddress("localhos
|
|||||||
auto actionGroup = new QActionGroup(this);
|
auto actionGroup = new QActionGroup(this);
|
||||||
actionGroup->setExclusive(true);
|
actionGroup->setExclusive(true);
|
||||||
|
|
||||||
action = new QAction("Chrono text at top", actionGroup);
|
action = new QAction("Ruler text at top", actionGroup);
|
||||||
action->setToolTip("Draw duration of selected interval\nat the top of the screen.");
|
action->setToolTip("Draw duration of selected interval\nat the top of the diagram.");
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setData(static_cast<int>(profiler_gui::ChronoTextPosition_Top));
|
action->setData(static_cast<int>(profiler_gui::RulerTextPosition_Top));
|
||||||
if (EASY_GLOBALS.chrono_text_position == profiler_gui::ChronoTextPosition_Top)
|
if (EASY_GLOBALS.chrono_text_position == profiler_gui::RulerTextPosition_Top)
|
||||||
action->setChecked(true);
|
action->setChecked(true);
|
||||||
submenu->addAction(action);
|
submenu->addAction(action);
|
||||||
connect(action, &QAction::triggered, this, &This::onChronoTextPosChanged);
|
connect(action, &QAction::triggered, this, &This::onRulerTextPosChanged);
|
||||||
|
|
||||||
action = new QAction("Chrono text at center", actionGroup);
|
action = new QAction("Ruler text at center", actionGroup);
|
||||||
action->setToolTip("Draw duration of selected interval\nat the center of the screen.");
|
action->setToolTip("Draw duration of selected interval\nat the center of the diagram.");
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setData(static_cast<int>(profiler_gui::ChronoTextPosition_Center));
|
action->setData(static_cast<int>(profiler_gui::RulerTextPosition_Center));
|
||||||
if (EASY_GLOBALS.chrono_text_position == profiler_gui::ChronoTextPosition_Center)
|
if (EASY_GLOBALS.chrono_text_position == profiler_gui::RulerTextPosition_Center)
|
||||||
action->setChecked(true);
|
action->setChecked(true);
|
||||||
submenu->addAction(action);
|
submenu->addAction(action);
|
||||||
connect(action, &QAction::triggered, this, &This::onChronoTextPosChanged);
|
connect(action, &QAction::triggered, this, &This::onRulerTextPosChanged);
|
||||||
|
|
||||||
action = new QAction("Chrono text at bottom", actionGroup);
|
action = new QAction("Ruler text at bottom", actionGroup);
|
||||||
action->setToolTip("Draw duration of selected interval\nat the bottom of the screen.");
|
action->setToolTip("Draw duration of selected interval\nat the bottom of the diagram.");
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
action->setData(static_cast<int>(profiler_gui::ChronoTextPosition_Bottom));
|
action->setData(static_cast<int>(profiler_gui::RulerTextPosition_Bottom));
|
||||||
if (EASY_GLOBALS.chrono_text_position == profiler_gui::ChronoTextPosition_Bottom)
|
if (EASY_GLOBALS.chrono_text_position == profiler_gui::RulerTextPosition_Bottom)
|
||||||
action->setChecked(true);
|
action->setChecked(true);
|
||||||
submenu->addAction(action);
|
submenu->addAction(action);
|
||||||
connect(action, &QAction::triggered, this, &This::onChronoTextPosChanged);
|
connect(action, &QAction::triggered, this, &This::onRulerTextPosChanged);
|
||||||
|
|
||||||
submenu->addSeparator();
|
submenu->addSeparator();
|
||||||
auto w = new QWidget(submenu);
|
auto w = new QWidget(submenu);
|
||||||
@ -1233,10 +1233,10 @@ void MainWindow::onEncodingChanged(bool)
|
|||||||
QTextCodec::setCodecForLocale(codec);
|
QTextCodec::setCodecForLocale(codec);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::onChronoTextPosChanged(bool)
|
void MainWindow::onRulerTextPosChanged(bool)
|
||||||
{
|
{
|
||||||
auto _sender = qobject_cast<QAction*>(sender());
|
auto _sender = qobject_cast<QAction*>(sender());
|
||||||
EASY_GLOBALS.chrono_text_position = static_cast<profiler_gui::ChronometerTextPosition>(_sender->data().toInt());
|
EASY_GLOBALS.chrono_text_position = static_cast<profiler_gui::RulerTextPosition>(_sender->data().toInt());
|
||||||
refreshDiagram();
|
refreshDiagram();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1471,7 +1471,7 @@ void MainWindow::loadSettings()
|
|||||||
|
|
||||||
auto val = settings.value("chrono_text_position");
|
auto val = settings.value("chrono_text_position");
|
||||||
if (!val.isNull())
|
if (!val.isNull())
|
||||||
EASY_GLOBALS.chrono_text_position = static_cast<profiler_gui::ChronometerTextPosition>(val.toInt());
|
EASY_GLOBALS.chrono_text_position = static_cast<profiler_gui::RulerTextPosition>(val.toInt());
|
||||||
|
|
||||||
val = settings.value("time_units");
|
val = settings.value("time_units");
|
||||||
if (!val.isNull())
|
if (!val.isNull())
|
||||||
|
@ -318,7 +318,7 @@ protected slots:
|
|||||||
void onDeleteClicked(bool);
|
void onDeleteClicked(bool);
|
||||||
void onExitClicked(bool);
|
void onExitClicked(bool);
|
||||||
void onEncodingChanged(bool);
|
void onEncodingChanged(bool);
|
||||||
void onChronoTextPosChanged(bool);
|
void onRulerTextPosChanged(bool);
|
||||||
void onUnitsChanged(bool);
|
void onUnitsChanged(bool);
|
||||||
void onEnableDisableStatistics(bool);
|
void onEnableDisableStatistics(bool);
|
||||||
void onCollapseItemsAfterCloseChanged(bool);
|
void onCollapseItemsAfterCloseChanged(bool);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user