Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jbicha/sysprof
  • gnome-team/sysprof
  • wjt/sysprof
3 results
Show changes
Commits on Source (21)
Showing
with 4378 additions and 1593 deletions
Overview of changes in Sysprof 45.2
===================================
Changes since 45.1:
* Sample items in mark chart rows to reduce chances of overflowing
Open GL maximum VBO size.
* Fix parsing of /proc/$pid/maps by being more lenient in what is
accepted device numbers. This fixes some unwindable stack traces.
* Update categories that are highlighted.
* Be more defensive when cleaning up view models to reduce chances
of cuausing issues with GtkExpression.
* Translation updates
Overview of changes in Sysprof 45.1
===================================
......
project('sysprof', 'c', 'cpp',
license: 'GPL-3.0-or-later',
version: '45.1',
version: '45.2',
meson_version: '>=0.62.0',
default_options: [ 'c_std=gnu17',
'cpp_std=gnu++17',
......
......@@ -20,6 +20,7 @@ ka
ko
lt
nl
oc
pa
pl
pt
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: sysprof master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/sysprof/issues\n"
"POT-Creation-Date: 2023-08-31 22:05+0000\n"
"PO-Revision-Date: 2023-09-02 05:00+0200\n"
"POT-Creation-Date: 2023-11-12 07:56+0000\n"
"PO-Revision-Date: 2023-11-12 09:14+0100\n"
"Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
"Language-Team: Georgian <ka@li.org>\n"
"Language: ka\n"
......@@ -142,43 +142,43 @@ msgstr "გამოყოფა"
msgid "Unknown Process"
msgstr "უცნობი პროცესი"
#: src/libsysprof/sysprof-document.c:1239
#: src/libsysprof/sysprof-document.c:1275
#: src/libsysprof/sysprof-document.c:1251
#: src/libsysprof/sysprof-document.c:1287
msgid "Indexing capture data frames"
msgstr "ჩაწერილი მონაცემის კადრების ინდექსირება"
#: src/libsysprof/sysprof-document.c:1461
#: src/libsysprof/sysprof-document.c:1473
msgid "Discovering file system mounts"
msgstr "ფაილური სისტემის მიმაგრებების აღმოჩენა"
#: src/libsysprof/sysprof-document.c:1464
#: src/libsysprof/sysprof-document.c:1476
msgid "Discovering process mount namespaces"
msgstr "პროცესის მიმაგრების სახელის სივრცეების აღმოჩენა"
#: src/libsysprof/sysprof-document.c:1467
#: src/libsysprof/sysprof-document.c:1479
msgid "Analyzing process address layouts"
msgstr "პროცესის მისამართის განლაგებების ანალიზი"
#: src/libsysprof/sysprof-document.c:1470
#: src/libsysprof/sysprof-document.c:1482
msgid "Analyzing process command line"
msgstr "პროცესის ბრძანების სტრიქონის ანალიზი"
#: src/libsysprof/sysprof-document.c:1473
#: src/libsysprof/sysprof-document.c:1485
msgid "Analyzing file system overlays"
msgstr "ფაილური სისტემების განლაგების ანალიზი"
#: src/libsysprof/sysprof-document.c:1476
#: src/libsysprof/sysprof-document.c:1488
msgid "Processing counters"
msgstr "მთვლელების დამუშავება"
#: src/libsysprof/sysprof-document.c:2464
#: src/libsysprof/sysprof-document.c:2480
#: src/libsysprof/sysprof-document.c:2476
#: src/libsysprof/sysprof-document.c:2492
#, c-format
msgid "Recording at %X %x"
msgstr "ჩანაწერი %X %x"
#: src/libsysprof/sysprof-document.c:2466
#: src/libsysprof/sysprof-document.c:2482
#: src/libsysprof/sysprof-document.c:2478
#: src/libsysprof/sysprof-document.c:2494
#, c-format
msgid "Recording at %s"
msgstr "ჩაწერა მისამართზე %s"
......@@ -216,12 +216,12 @@ msgstr "ჟურნალი"
msgid "Mark"
msgstr "დანიშვნა"
#: src/libsysprof/sysprof-document-process.c:277
#: src/libsysprof/sysprof-document-process.c:293
#, c-format
msgid "%s [Process %d]"
msgstr "%s [პროცესი %d]"
#: src/libsysprof/sysprof-document-process.c:279
#: src/libsysprof/sysprof-document-process.c:295
#, c-format
msgid "Process %d"
msgstr "პროცესი %d"
......@@ -257,6 +257,8 @@ msgstr "--merge პარამეტრს არგუმენტად ს
#: src/sysprof-cli/sysprof-cli.c:306
msgid "Disable CPU throttling while profiling [Deprecated for --power-profile]"
msgstr ""
"CPU-ის რეგულირების გათიშვა პროფილირების დრო [მოძველებულია. გამოიყენეთ --"
"power-profile]"
#: src/sysprof-cli/sysprof-cli.c:307
msgid "Make sysprof specific to a task [Deprecated]"
......@@ -306,11 +308,11 @@ msgstr "დისკის სტატისტიკის ჩაწერი
#: src/sysprof-cli/sysprof-cli.c:314
msgid "Do not record stacktraces using Linux perf"
msgstr ""
msgstr "არ ჩაიწერო სტეკის ტრეისებ Linux Perf-ით"
#: src/sysprof-cli/sysprof-cli.c:315
msgid "Do not append symbol name information from local machine"
msgstr ""
msgstr "არ მიაწერო სიმბოლოს სახელის ინფორმაცია ლოკალური მანქანიდან"
#: src/sysprof-cli/sysprof-cli.c:316
msgid "Disable recording of memory statistics"
......@@ -354,15 +356,16 @@ msgstr "მეხსიერების გამოყოფებისა
#: src/sysprof-cli/sysprof-cli.c:326
msgid "Connect to org.gnome.Shell for profiler statistics"
msgstr ""
msgstr "პროფაილერის სტატისტიკისთვის დაუკავშირდით org.gnome.Sell"
#: src/sysprof-cli/sysprof-cli.c:327
msgid "Track performance of the applications main loop"
msgstr ""
msgstr "აპლიკაციის მთავარი მარყუჟის წარმადობის თვალყურის დევნება"
#: src/sysprof-cli/sysprof-cli.c:329
msgid "Merge all provided *.syscap files and write to stdout"
msgstr ""
"ყველა მითითებული *.syscap ფაილის შერწყმა და სტანდარტულ გამოტანაზე ჩაწერა"
#: src/sysprof-cli/sysprof-cli.c:330
msgid "Print the sysprof-cli version and exit"
......@@ -420,7 +423,7 @@ msgstr "დახმარების ჩვენება"
#: src/sysprof/gtk/help-overlay.ui:19
msgctxt "shortcut window"
msgid "Keyboard Shortcuts"
msgstr "კლავიატურის მალსახმობები"
msgstr "კლავიატურის მალსახსომები"
#: src/sysprof/gtk/help-overlay.ui:25
msgctxt "shortcut window"
......@@ -523,7 +526,7 @@ msgstr "დრო"
#: src/sysprof/sysprof-energy-section.ui:382
#: src/sysprof/sysprof-flame-graph.c:453
#: src/sysprof/sysprof-graphics-section.ui:293
#: src/sysprof/sysprof-marks-section.ui:242
#: src/sysprof/sysprof-marks-section.ui:247
#: src/sysprof/sysprof-network-section.ui:380
#: src/sysprof/sysprof-storage-section.ui:380
msgid "Category"
......@@ -532,7 +535,7 @@ msgstr "კატეგორია"
#: src/sysprof/sysprof-cpu-section.ui:450
#: src/sysprof/sysprof-energy-section.ui:420
#: src/sysprof/sysprof-graphics-section.ui:331
#: src/sysprof/sysprof-marks-section.ui:276
#: src/sysprof/sysprof-marks-section.ui:281
#: src/sysprof/sysprof-network-section.ui:418
#: src/sysprof/sysprof-storage-section.ui:418
msgid "Name"
......@@ -663,6 +666,7 @@ msgstr "გასაღებები, არ შეიძლება, რი
#: src/sysprof/sysprof-greeter.c:118
msgid "Keys may only contain alpha-numerics or underline."
msgstr ""
"გასაღებები, მხოლოდ, ალფარიცხვით და ქვედატირის სიმბოლოებს შეიძლება შეიცავეს."
#: src/sysprof/sysprof-greeter.c:265 src/sysprof/sysprof-window.c:155
msgid "Must Capture to Local File"
......@@ -670,7 +674,7 @@ msgstr "ლოკალურ ფაილში ჩაწერა აუცი
#: src/sysprof/sysprof-greeter.c:266 src/sysprof/sysprof-window.c:156
msgid "You must choose a local file to capture using Sysprof"
msgstr ""
msgstr "Sysprof-ით ჩაჭერისთვის ლოკალური ფაილი უნდა აირჩიოთ"
#: src/sysprof/sysprof-greeter.c:267 src/sysprof/sysprof-recording-pad.c:115
#: src/sysprof/sysprof-window.c:157 src/sysprof/sysprof-window.c:718
......@@ -680,7 +684,7 @@ msgstr "დახურვა"
#: src/sysprof/sysprof-greeter.c:288
#, c-format
msgid "System Capture from %s.syscap"
msgstr ""
msgstr "სისტემის ჩაჭერა %s.syscap-დან"
#: src/sysprof/sysprof-greeter.c:292
msgid "Record to File"
......@@ -712,7 +716,7 @@ msgstr "სემპლინგი"
#: src/sysprof/sysprof-greeter.ui:74
msgid "Sample Native Stacks"
msgstr ""
msgstr "მაგალითი ლოკალური სტეკები"
#: src/sysprof/sysprof-greeter.ui:75
msgid "Record native stack traces using a sampling profiler"
......@@ -720,7 +724,7 @@ msgstr ""
#: src/sysprof/sysprof-greeter.ui:91
msgid "Sample JavaScript Stacks"
msgstr ""
msgstr "მაგალითი Javascript-ის სტეკები"
#: src/sysprof/sysprof-greeter.ui:92
msgid "Record JavaScript stack traces using a sampling profiler"
......@@ -730,6 +734,8 @@ msgstr ""
msgid ""
"Sysprof must launch your application to record JavaScript stacks using GJS."
msgstr ""
"Sysprof-მა თქვენი აპლიკაცია უნდა გაუშვას და ჩაიწეროს Javascript-ის სტეკები "
"GJS-ით."
#: src/sysprof/sysprof-greeter.ui:119
msgid "Record Scheduler Details"
......@@ -737,7 +743,7 @@ msgstr "მგეგმავის დეტალების ჩაწერ
#: src/sysprof/sysprof-greeter.ui:120
msgid "Track when processes are scheduled per CPU"
msgstr ""
msgstr "ტრეკინგი, როცა პროცესი დაგეგმილია თითოეული პროცესორისთვის"
#: src/sysprof/sysprof-greeter.ui:133
msgid "Tracing"
......@@ -860,7 +866,7 @@ msgstr "სისტემური მატარებლის ჩაწე
#: src/sysprof/sysprof-greeter.ui:362
msgid "Record messages on the D-Bus system bus"
msgstr ""
msgstr "D-Bus-ის სისტემური მატარებლის შეტყობინებების ჩაწერა"
#: src/sysprof/sysprof-greeter.ui:378
msgid "Record Session Bus"
......@@ -868,7 +874,7 @@ msgstr "სესიის მატარებლის ჩაწერა"
#: src/sysprof/sysprof-greeter.ui:379
msgid "Record messages on the D-Bus user session bus"
msgstr ""
msgstr "D-Bus-ის სესიის მატარებლის შეტყობინებების ჩაწერა"
#: src/sysprof/sysprof-greeter.ui:390
msgid ""
......@@ -904,7 +910,7 @@ msgstr "GPU-ის ინფორმაციის ჩასმა"
#: src/sysprof/sysprof-greeter.ui:474
msgid "Records information about graphics hardware and drivers"
msgstr ""
msgstr "იწერს ინფორმაციას გრაფიკული აპარატურისა და დრაივერების შესახებ"
#: src/sysprof/sysprof-greeter.ui:492
msgid "System"
......@@ -920,7 +926,7 @@ msgstr "ჩაწერა კვების პროფილით"
#: src/sysprof/sysprof-greeter.ui:501
msgid "Switch to power profile while recording"
msgstr ""
msgstr "ჩაწერისას კვების პროფილზე გადართვა"
#: src/sysprof/sysprof-greeter.ui:511
msgid "Details"
......@@ -1024,23 +1030,23 @@ msgstr "ნიშნების ცხრილი"
msgid "Mark Waterfall"
msgstr "ნიშნების ჩანჩქერი"
#: src/sysprof/sysprof-marks-section.ui:206
#: src/sysprof/sysprof-marks-section.ui:211
msgid "Summary"
msgstr "ჯამში"
#: src/sysprof/sysprof-marks-section.ui:311
#: src/sysprof/sysprof-marks-section.ui:316
msgid "Minimum"
msgstr "მინიმუმი"
#: src/sysprof/sysprof-marks-section.ui:345
#: src/sysprof/sysprof-marks-section.ui:350
msgid "Maximum"
msgstr "მაქსიმუმი"
#: src/sysprof/sysprof-marks-section.ui:379
#: src/sysprof/sysprof-marks-section.ui:384
msgid "Average"
msgstr "საშუალო"
#: src/sysprof/sysprof-marks-section.ui:413
#: src/sysprof/sysprof-marks-section.ui:418
msgid "Median"
msgstr "საშუალო"
......@@ -1359,6 +1365,40 @@ msgstr "მსგავსი პროცესების შერწყმ
msgid "Left Heavy"
msgstr "მარცხენა მძიმე"
#~ msgctxt "shortcut window"
#~ msgid "Recording View"
#~ msgstr "ჩაწერის ხედი"
#~ msgctxt "shortcut window"
#~ msgid "Start New Recording"
#~ msgstr "ახალი ჩაწერის დაწყება"
#~ msgctxt "shortcut window"
#~ msgid "Save As"
#~ msgstr "შენახვა, როგორც"
#~ msgctxt "shortcut window"
#~ msgid "Toggle Visibility of Main Sidebar"
#~ msgstr "მთავარი გვერდითი ზოლის ხილვადობის გადართვ"
#~ msgctxt "shortcut window"
#~ msgid "Toggle Visibility of Stack Trace Sidebar"
#~ msgstr "სტეკის ტრეიკის გვერდითი პანელის ხილვადობის გადართვა"
#~ msgctxt "shortcut window"
#~ msgid "Open Recording"
#~ msgstr "ჩანაწერის გახსნა"
#~ msgctxt "shortcut window"
#~ msgid "Show keyboard shortcuts"
#~ msgstr "კლავიატურის მალსახმობების ჩვენება"
#~ msgid "Quit"
#~ msgstr "გასვლა"
#~ msgid "_Quit"
#~ msgstr "_გასვლა"
#~ msgid "Logging"
#~ msgstr "ჩაწერა"
......@@ -1461,9 +1501,6 @@ msgstr "მარცხენა მძიმე"
#~ msgid "Writes"
#~ msgstr "ჩაწერები"
#~ msgid "New Recording"
#~ msgstr "ახალი ჩანაწერი"
#~ msgid "Save Recording"
#~ msgstr "ჩანაწერის შენახვა"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -117,6 +117,7 @@ gdk_frame_clock_paint paint inherit
_gdk_frame_clock_emit_paint paint inherit
_gdk_frame_clock_emit_after_paint paint inherit
surface_render paint inherit
gtk_css_style_snapshot_* paint inherit
_gtk_css_* css inherit
gtk_css_* css inherit
......
......@@ -32,7 +32,7 @@ sysprof_maps_parser_init (SysprofMapsParser *self,
line_reader_init (&self->reader, (char *)str, len);
if (address_range_regex == NULL)
address_range_regex = g_regex_new ("^([0-9a-f]+)-([0-9a-f]+) [r\\-][w\\-][x\\-][ps\\-] ([0-9a-f]+) [0-9]{2}:[0-9]{2} ([0-9]+) +(.*)$",
address_range_regex = g_regex_new ("^([0-9a-f]+)-([0-9a-f]+) [r\\-][w\\-][x\\-][ps\\-] ([0-9a-f]+) [0-9a-f]{2}:[0-9a-f]{2} ([0-9]+) +(.*)$",
G_REGEX_OPTIMIZE,
G_REGEX_MATCH_DEFAULT,
NULL);
......
......@@ -339,6 +339,15 @@ sysprof_callgraph_view_dispose (GObject *object)
{
SysprofCallgraphView *self = (SysprofCallgraphView *)object;
if (self->functions_column_view)
gtk_column_view_set_model (self->functions_column_view, NULL);
if (self->callers_column_view)
gtk_column_view_set_model (self->callers_column_view, NULL);
if (self->descendants_column_view)
gtk_column_view_set_model (self->descendants_column_view, NULL);
if (self->traceables_signals)
{
g_signal_group_set_target (self->traceables_signals, NULL);
......
......@@ -36,6 +36,7 @@ struct _SysprofCpuSection
SysprofTimeScrubber *scrubber;
GtkColumnView *column_view;
GtkColumnView *cpu_column_view;
GtkColumnViewColumn *time_column;
};
......@@ -46,6 +47,12 @@ sysprof_cpu_section_dispose (GObject *object)
{
SysprofCpuSection *self = (SysprofCpuSection *)object;
if (self->column_view)
gtk_column_view_set_model (self->column_view, NULL);
if (self->cpu_column_view)
gtk_column_view_set_model (self->cpu_column_view, NULL);
gtk_widget_dispose_template (GTK_WIDGET (self), SYSPROF_TYPE_CPU_SECTION);
G_OBJECT_CLASS (sysprof_cpu_section_parent_class)->dispose (object);
......@@ -61,6 +68,7 @@ sysprof_cpu_section_class_init (SysprofCpuSectionClass *klass)
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/sysprof-cpu-section.ui");
gtk_widget_class_bind_template_child (widget_class, SysprofCpuSection, column_view);
gtk_widget_class_bind_template_child (widget_class, SysprofCpuSection, cpu_column_view);
gtk_widget_class_bind_template_child (widget_class, SysprofCpuSection, scrubber);
gtk_widget_class_bind_template_child (widget_class, SysprofCpuSection, time_column);
......
......@@ -365,7 +365,7 @@ sysprof_flame_graph_set_motion (SysprofFlameGraph *self,
{
self->under_pointer = rect;
gtk_widget_set_cursor_from_name (GTK_WIDGET (self), rect ? "hand" : NULL);
gtk_widget_set_cursor_from_name (GTK_WIDGET (self), rect ? "pointer" : NULL);
}
gtk_widget_queue_draw (GTK_WIDGET (self));
......
......@@ -21,6 +21,7 @@
#include "config.h"
#include "sysprof-mark-chart-item-private.h"
#include "sysprof-sampled-model.h"
#include "sysprof-time-filter-model.h"
struct _SysprofMarkChartItem
......@@ -29,11 +30,14 @@ struct _SysprofMarkChartItem
SysprofSession *session;
SysprofMarkCatalog *catalog;
SysprofTimeFilterModel *filtered;
SysprofSampledModel *sampled;
SysprofSeries *series;
guint max_items;
};
enum {
PROP_0,
PROP_MAX_ITEMS,
PROP_SESSION,
PROP_CATALOG,
PROP_SERIES,
......@@ -54,7 +58,7 @@ sysprof_mark_chart_item_constructed (GObject *object)
if (self->catalog == NULL || self->session == NULL)
g_return_if_reached ();
sysprof_time_filter_model_set_model (self->filtered, G_LIST_MODEL (self->catalog));
sysprof_sampled_model_set_model (self->sampled, G_LIST_MODEL (self->catalog));
g_object_bind_property (self->session, "selected-time",
self->filtered, "time-span",
......@@ -69,6 +73,7 @@ sysprof_mark_chart_item_dispose (GObject *object)
g_clear_object (&self->session);
g_clear_object (&self->catalog);
g_clear_object (&self->filtered);
g_clear_object (&self->sampled);
g_clear_object (&self->series);
G_OBJECT_CLASS (sysprof_mark_chart_item_parent_class)->dispose (object);
......@@ -88,6 +93,10 @@ sysprof_mark_chart_item_get_property (GObject *object,
g_value_set_object (value, sysprof_mark_chart_item_get_catalog (self));
break;
case PROP_MAX_ITEMS:
g_value_set_uint (value, self->max_items);
break;
case PROP_SESSION:
g_value_set_object (value, sysprof_mark_chart_item_get_session (self));
break;
......@@ -119,6 +128,11 @@ sysprof_mark_chart_item_set_property (GObject *object,
self->session = g_value_dup_object (value);
break;
case PROP_MAX_ITEMS:
self->max_items = g_value_get_uint (value);
sysprof_sampled_model_set_max_items (self->sampled, self->max_items);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
......@@ -139,6 +153,12 @@ sysprof_mark_chart_item_class_init (SysprofMarkChartItemClass *klass)
SYSPROF_TYPE_MARK_CATALOG,
(G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
properties[PROP_MAX_ITEMS] =
g_param_spec_uint ("max-items", NULL, NULL,
1, G_MAXUINT-1, 1000,
(G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
properties[PROP_SESSION] =
g_param_spec_object ("session", NULL, NULL,
SYSPROF_TYPE_SESSION,
......@@ -155,7 +175,13 @@ sysprof_mark_chart_item_class_init (SysprofMarkChartItemClass *klass)
static void
sysprof_mark_chart_item_init (SysprofMarkChartItem *self)
{
self->max_items = 1000;
self->filtered = sysprof_time_filter_model_new (NULL, NULL);
self->sampled = sysprof_sampled_model_new (NULL, self->max_items);
sysprof_time_filter_model_set_model (self->filtered,
G_LIST_MODEL (self->sampled));
self->series = sysprof_time_series_new (NULL,
g_object_ref (G_LIST_MODEL (self->filtered)),
......
......@@ -32,13 +32,17 @@ struct _SysprofMarkChart
GtkWidget parent_instance;
SysprofSession *session;
GtkMapListModel *map;
GtkWidget *box;
GtkListView *list_view;
guint max_items;
};
enum {
PROP_0,
PROP_MAX_ITEMS,
PROP_SESSION,
N_PROPS
};
......@@ -51,7 +55,9 @@ static gpointer
map_func (gpointer item,
gpointer user_data)
{
gpointer ret = sysprof_mark_chart_item_new (SYSPROF_SESSION (user_data), SYSPROF_MARK_CATALOG (item));
SysprofMarkChart *self = SYSPROF_MARK_CHART (user_data);
gpointer ret = sysprof_mark_chart_item_new (self->session, SYSPROF_MARK_CATALOG (item));
g_object_bind_property (self, "max-items", ret, "max-items", G_BINDING_SYNC_CREATE);
g_object_unref (item);
return ret;
}
......@@ -63,6 +69,12 @@ sysprof_mark_chart_disconnect (SysprofMarkChart *self)
g_assert (SYSPROF_IS_SESSION (self->session));
gtk_list_view_set_model (self->list_view, NULL);
if (self->map)
{
gtk_map_list_model_set_map_func (self->map, NULL, NULL, NULL);
g_clear_object (&self->map);
}
}
static void
......@@ -78,12 +90,11 @@ sysprof_mark_chart_connect (SysprofMarkChart *self)
document = sysprof_session_get_document (self->session);
flatten = gtk_flatten_list_model_new (sysprof_document_catalog_marks (document));
map = gtk_map_list_model_new (G_LIST_MODEL (flatten),
map_func,
g_object_ref (self->session),
g_object_unref);
no = gtk_no_selection_new (G_LIST_MODEL (map));
map = gtk_map_list_model_new (G_LIST_MODEL (flatten), map_func, self, NULL);
g_set_object (&self->map, map);
no = gtk_no_selection_new (G_LIST_MODEL (map));
gtk_list_view_set_model (self->list_view, GTK_SELECTION_MODEL (no));
}
......@@ -98,6 +109,12 @@ sysprof_mark_chart_dispose (GObject *object)
g_clear_object (&self->session);
}
if (self->map)
{
gtk_map_list_model_set_map_func (self->map, NULL, NULL, NULL);
g_clear_object (&self->map);
}
g_clear_pointer (&self->box, gtk_widget_unparent);
G_OBJECT_CLASS (sysprof_mark_chart_parent_class)->dispose (object);
......@@ -113,6 +130,10 @@ sysprof_mark_chart_get_property (GObject *object,
switch (prop_id)
{
case PROP_MAX_ITEMS:
g_value_set_uint (value, self->max_items);
break;
case PROP_SESSION:
g_value_set_object (value, sysprof_mark_chart_get_session (self));
break;
......@@ -132,6 +153,10 @@ sysprof_mark_chart_set_property (GObject *object,
switch (prop_id)
{
case PROP_MAX_ITEMS:
self->max_items = g_value_get_uint (value);
break;
case PROP_SESSION:
sysprof_mark_chart_set_session (self, g_value_get_object (value));
break;
......@@ -151,6 +176,11 @@ sysprof_mark_chart_class_init (SysprofMarkChartClass *klass)
object_class->get_property = sysprof_mark_chart_get_property;
object_class->set_property = sysprof_mark_chart_set_property;
properties [PROP_MAX_ITEMS] =
g_param_spec_uint ("max-items", NULL, NULL,
1, G_MAXUINT-1, 1000,
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
properties [PROP_SESSION] =
g_param_spec_object ("session", NULL, NULL,
SYSPROF_TYPE_SESSION,
......@@ -176,6 +206,8 @@ sysprof_mark_chart_init (SysprofMarkChart *self)
{
_sysprof_css_init ();
self->max_items = 1000;
gtk_widget_init_template (GTK_WIDGET (self));
}
......
......@@ -79,6 +79,7 @@
<property name="icon-name">mark-chart-symbolic</property>
<property name="child">
<object class="SysprofMarkChart" id="mark_chart">
<property name="max-items">5000</property>
<binding name="session">
<lookup name="session">SysprofMarksSection</lookup>
</binding>
......
......@@ -113,6 +113,9 @@ sysprof_network_section_dispose (GObject *object)
{
SysprofNetworkSection *self = (SysprofNetworkSection *)object;
if (self->column_view != NULL)
gtk_column_view_set_model (self->column_view, NULL);
gtk_widget_dispose_template (GTK_WIDGET (self), SYSPROF_TYPE_NETWORK_SECTION);
g_clear_object (&self->pairs);
......