42f4e64d5f
Fix a moderate memory leak
...
periodic calls ARDOUR_UI::update_clocks() -> AudioClock::set()
-> 2+ calls to UI::set_tip() can easily accumulate 50MB/hour
when rolling.
2021-05-22 22:11:42 +02:00
e4e94e77c9
Transmitter::Debug implementation 1/2
...
This also sorts switch() and listen_to() statements in order
of severity: debug, info, warning, error, fatal, throw.
2020-10-13 21:58:26 +02:00
b95cd280f1
use PROGRAM_NAME to name GUI thread
2020-04-30 11:03:49 -06:00
68cb914959
Set Arodur's main thread name to include "Ardour"
...
This is helpful when debugging by PID (adevices.sh most notably),
just "gui" is not usually helpful.
2020-04-30 18:24:22 +02:00
163a065543
Fix gcc-4.2/PPC builds
...
Old STL has an issue with ambiguity
reverse_iterator rend();
const_reverse_iterator rend() const;
2020-04-02 03:43:29 +02:00
5253c7eb8b
Tweak error-dump (when session load fails)
...
When limiting the message count (e.g. for display in a dialog),
use reverse order, and only print errors.
When loading a session fails, the most recent error is
more likely the real cause.
2020-03-31 18:58:12 +02:00
9e2b896516
Replace strftime() with Glib::DateTime()
...
This is mainly for windows compatibility "%F" is not supported.
An alternative would be to s/%F/%Y-%m-%d/ to produce the ISO date.
2020-03-08 23:31:51 +01:00
fa0a7d6739
Allow to limit error dump
...
This is in preparation of displaying verbose errors to the user.
2020-02-28 07:26:13 +01:00
61e53e303b
Fix ISO compliance
2020-01-18 19:09:36 +01:00
d7801ab7ee
Add timestamp to log -- #7877
...
This adds the time when a log message is displayed.
ARDOUR_UI::display_message() parses the prefix,
so the timestamp cannot be prefixed in the beforehand.
Still, UI::process_error_message() is called directly in
the same thread, so this makes no significant difference.
2020-01-18 18:18:05 +01:00
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log
2019-08-03 15:53:17 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3
2019-07-04 22:21:35 +02:00
df29e57cb4
ActionManager::get_all_actions() no longer includes <Actions> in the paths it returns, part 1
2019-03-20 11:15:22 -07:00
758d0ca263
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
2018-12-12 10:08:01 -05:00
d1d8fd197d
change ActionManager::find_action() back to ActionManager::get_action()
...
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
2018-12-10 08:34:01 -05:00
ad002d0de0
consolidate ActionMap and ActionManager APIs into a single namespace
2018-12-10 08:34:01 -05:00
4983eb565d
Only update tooltips if there is an actual change -- #7268
...
Changing a tooltip resets the timeout. In one particular case,
while rolling, AudioClock::set() is calling set_tooltip() at a rate
faster than the tooltip timeout and prevents tooltip from showing at all
(even if there is no actual change to the tooltip text).
Alas, there is no trivial fix for this UI side and there may be other
such cases. A central check is more than practical.
2018-04-12 02:54:55 +02:00
f9e5e4360e
Move more Gtkmm2ext widgets into libwidget
2017-07-17 21:06:04 +02:00
401eefec1c
remove cruft (unused UI::ui_scale)
2017-05-05 14:00:30 +02:00
41216d200a
Remove old modal get_color API.
2017-03-11 00:35:26 +01:00
3953879d4d
add a timeout to flush_pending()
...
In some circumstances UI::flush_pending never returns, and all UI
interactive ends up being driven by
while (gtk_events_pending()) { gtk_main_iteration(); }
This has various implications depending on the caller and usually results
in a crash at session-close or exit.
2016-07-25 14:13:52 +02:00
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
bc487bb4b0
replicate the remove-all-trailing whitespace commit(s) in master
2016-02-22 15:31:24 -05:00
949163f806
more changes to Bindings, Keyboard APIs
2016-02-22 15:31:24 -05:00
67e19c177f
radically change Keyboard/Binding API design to disconnect Gtk::Action lookup from binding definition
...
We need this because we need binding information/objects before all
Actions have been defined.
2016-02-22 15:31:24 -05:00
914af0f0c8
move ui_scale static member from ARDOUR_UI to GtkUI
2016-02-22 15:31:22 -05:00
ee541036b4
fix window-title (separate application name, thread name)
2015-12-29 11:03:09 +01:00
0d9efc1148
redesign cross-thread registration/signalling system
...
This new design will work even when threads that need to receive
messages from RT threads are created *after* the RT threads. The
existing design would fail because the RT thread(s) would never
be known the later created threads, and so signals emitted by the
RT thread and causing call_slot() in the receiver would end up
being enqueued using a lock-protected list. The new design ensures
that communication always uses a lock-free FIFO instead
2015-12-28 10:14:17 -05:00
3d1dcacfd8
use correct source for application name when labelling a window
2015-12-12 11:12:10 -05:00
be6a43d4d3
use EventLoop::event_loop_name()
2015-12-12 11:12:10 -05:00
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
0274aafdb0
store all error/info/etc messages in a list inside Gtkmm2ext::UI, and provide a method to dump them all to a std::ostream
2015-06-29 16:27:03 -04:00
83babb8a52
automatic error log window popup be gone.
2015-03-14 18:28:36 +01:00
7152634104
set name of GUI event loop thread
2015-02-05 16:31:59 -05:00
6b3a8915f3
add abort() to non-reached code
...
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
36be1a3a9b
plug some leaks
2014-06-15 13:24:41 +02:00
4347ceb173
fix for OSX 10.0/clang (missing symbol) by cth
2014-05-23 20:49:21 +02:00
b855e5f322
Merge remote-tracking branch 'remotes/origin/exportvis' into windows+cc
...
Conflicts (hopefully resolved):
gtk2_ardour/wscript
libs/ardour/ardour/audioregion.h
libs/ardour/ardour/debug.h
libs/ardour/ardour/directory_names.h
libs/ardour/ardour/filesystem_paths.h
libs/ardour/ardour/session_event.h
libs/gtkmm2ext/gtkmm2ext/utils.h
libs/panners/1in2out/wscript
libs/panners/2in2out/wscript
libs/panners/vbap/wscript
libs/pbd/pbd/debug.h
libs/pbd/pbd/file_utils.h
libs/pbd/pbd/pathexpand.h
libs/pbd/pbd/ringbuffer.h
libs/pbd/pbd/ringbufferNPT.h
libs/pbd/pbd/search_path.h
libs/pbd/pbd/stacktrace.h
libs/pbd/pbd/uuid.h
libs/pbd/pbd/uuid_boost.h
libs/surfaces/control_protocol/control_protocol/basic_ui.h
libs/surfaces/control_protocol/control_protocol/control_protocol.h
2013-10-18 10:03:22 +01:00
2fab8182cc
add -fvisibility=hidden to libgtkmm2ext, and make things work
2013-10-17 14:36:41 -04:00
2a6a16f980
merge with master, fixing conflicts in 3 wscript files
2013-10-09 14:00:42 -04:00
5265ceec51
change tortured GtkUI startup process into something just a little more sane, and remove "stopping" code since that belongs in a destructor
2013-10-07 20:27:04 -04:00
316b72eb0e
'libs/gtkmm2ext' - Main body of changes required for building with MSVC (mostly #includes and casting)
2013-08-26 17:45:18 +01:00
4adb2f97cc
Use timeout source to process ui requests on windows
...
Using a timeout source to process ui events/requests is suboptimal
but it works for the moment. Have to use g_source functions as glibmm
functions are not thread safe AFAIK.
Behaviour should be exactly the same on unix.
2013-07-11 12:56:35 -04:00
7626cd68ac
Hide UI request mechanism from inheriting classes
2013-07-11 12:52:46 -04:00
eacba74649
change presentation of shortcut in tooltips and fix include paths
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13612 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-07 13:43:45 +00:00
3cd8138a41
convert from Glib:: to Glib::Threads for all thread-related API
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
37969d837e
remove virtual inheritance of sigc::trackable by Receiver and AbstractUI<T>, done by changing Gtkmm2ext::UI to use composition (HAS-A) rather than inheritance (IS-A) for Receiver; use correct synchronization when starting up a BseUI event loop thread so that tests that start/stop quickly do not encounter a race condition
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12264 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14 17:07:53 +00:00
877c3f37c4
stop crash if an error message is generated before the style RC file is loaded
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-10 22:45:56 +00:00
44cd222eb2
i18n-ization
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12233 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 23:03:43 +00:00