View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001436 | ardour | bugs | public | 2007-01-27 10:44 | 2008-11-21 00:00 |
| Reporter | robbie | Assigned To | timbyr | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | x86 | OS | Linux | OS Version | Gentoo |
| Summary | 0001436: Problems with middle-button paste in dialogs | ||||
| Description | The 'Create Folder' dialog (from 'new session') won't take middle-button paste at all. Right-click context 'paste' is greyed out, but there is something on the clipboard. Paste does work when naming a new session, but it is necessary to move the cursor back over the pasted text to make the 'New' button available. Same problem when attempting to save snapshots. This is part of my workflow under 0.99.3. | ||||
| Steps To Reproduce | $ date +%Y-%m-%d-%H%M%S | tr -d [:cntrl:] | xclip [have also tried the 'other' clipboards xclip man-page suggests] Now try the above. | ||||
| Additional Information | Ardour/GTK 2.0beta11.1 (built using 1345 and GCC version 4.1.1 (Gentoo 4.1.1)) | ||||
| Tags | No tags attached. | ||||
|
|
Issue persists with Ardour/GTK 2.0.2 (built using 1810 and GCC version 4.1.1 (Gentoo 4.1.1)) |
|
|
"The 'Create Folder' dialog (from 'new session') won't take middle-button paste at all. Right-click context 'paste' is greyed out, but there is something on the clipboard." The mechanism for specifying the folder in which to create a session has changed since 0.99. The widget you are trying to paste into is used for selecting a folder and does not accept pasting text into. To paste a path you need to click on the folder selector and choose 'Other...' which will open a standard file chooser dialog and you can paste into the Location text field. If you choose "Other..." to bring up the file chooser dialog, select a folder and then click the Add button it will add that folder as a bookmark in the list of places. The folder selector on the new session page contains the list of "places" and each time you create a new session the bookmarked folders will be available for selection. "Paste does work when naming a new session, but it is necessary to move the cursor back over the pasted text to make the 'New' button available." That is a bug. "Same problem when attempting to save snapshots." That is too. "This is part of my workflow under 0.99.3." Perhaps you could describe your workflow, it may help if that dialog is redesigned in the future. |
|
|
I have a loud internal critic - the only way to get anything done is to record ideas quickly. See also bug 1676. Using 0.99.x, sections of the following are automated using a little python, bash, and Xdialog; New session: N1) automatic session name derived from formatted date/time N2) a session container is created as a home for other metadata, sequences, and a journal. N3) Ardour session instantiated: new session (within the container) created from template. Ardour opened. N4) open journal with text editor (journal already contains the project 'name') Reopen Session: R1) Xdialog prompts with list of 'containers' R2) Ardour session within container reopened R3) journal reopened WM rules ensure sane placement. A WM key binding is used to push formatted date/time to clipboard for naming of snapshots, exports, etc. - hence the heavy use of middle-button paste. It's not much of a workflow really, but it helps me to actually _produce_: no need to think about any of the details, just hit a key and hit record! HTH |
|
2007-05-15 09:57
|
fix_paste_in_new_session_name_entry.patch (1,964 bytes)
Index: gtk2_ardour/new_session_dialog.cc
===================================================================
--- gtk2_ardour/new_session_dialog.cc (revision 1843)
+++ gtk2_ardour/new_session_dialog.cc (working copy)
@@ -427,7 +427,7 @@
m_limit_output_ports->signal_clicked().connect (mem_fun (*this, &NewSessionDialog::limit_outputs_clicked));
m_create_master_bus->signal_clicked().connect (mem_fun (*this, &NewSessionDialog::master_bus_button_clicked));
m_create_control_bus->signal_clicked().connect (mem_fun (*this, &NewSessionDialog::monitor_bus_button_clicked));
- m_name->signal_key_release_event().connect(mem_fun (*this, &NewSessionDialog::entry_key_release));
+ m_name->signal_changed().connect(mem_fun (*this, &NewSessionDialog::on_new_session_name_entry_changed));
m_notebook->signal_switch_page().connect (mem_fun (*this, &NewSessionDialog::notebook_page_changed));
m_treeview->get_selection()->signal_changed().connect (mem_fun (*this, &NewSessionDialog::treeview_selection_changed));
m_treeview->signal_row_activated().connect (mem_fun (*this, &NewSessionDialog::recent_row_activated));
@@ -591,8 +591,8 @@
}
-bool
-NewSessionDialog::entry_key_release (GdkEventKey* ev)
+void
+NewSessionDialog::on_new_session_name_entry_changed ()
{
if (m_name->get_text() != "") {
set_response_sensitive (Gtk::RESPONSE_OK, true);
@@ -600,7 +600,6 @@
} else {
set_response_sensitive (Gtk::RESPONSE_OK, false);
}
- return true;
}
void
Index: gtk2_ardour/new_session_dialog.h
===================================================================
--- gtk2_ardour/new_session_dialog.h (revision 1843)
+++ gtk2_ardour/new_session_dialog.h (working copy)
@@ -179,7 +179,7 @@
return cmp_nocase(a.first, b.first) == -1;
}
};
- bool entry_key_release (GdkEventKey*);
+ void on_new_session_name_entry_changed();
void notebook_page_changed (GtkNotebookPage*, uint);
void treeview_selection_changed ();
void file_chosen ();
|
|
2007-05-15 09:57
|
fix_paste_in_save_snapshot_dialog.patch (1,742 bytes)
Index: libs/gtkmm2ext/gtkmm2ext/prompter.h
===================================================================
--- libs/gtkmm2ext/gtkmm2ext/prompter.h (revision 1843)
+++ libs/gtkmm2ext/gtkmm2ext/prompter.h (working copy)
@@ -53,11 +53,12 @@
void change_labels (std::string ok, std::string cancel);
void get_result (std::string &str, bool strip=true);
- bool maybe_allow_response (GdkEventKey* );
protected:
Gtk::Entry& the_entry() { return entry; }
+ void on_entry_changed ();
+
private:
Gtk::Entry entry;
Gtk::HBox entryBox;
Index: libs/gtkmm2ext/prompter.cc
===================================================================
--- libs/gtkmm2ext/prompter.cc (revision 1843)
+++ libs/gtkmm2ext/prompter.cc (working copy)
@@ -70,7 +70,7 @@
get_vbox()->pack_start (entryBox);
show_all_children();
- entry.signal_key_release_event().connect (mem_fun (*this, &Prompter::maybe_allow_response));
+ entry.signal_changed().connect (mem_fun (*this, &Prompter::on_entry_changed));
entry.signal_activate().connect (bind (mem_fun (*this, &Prompter::response), Gtk::RESPONSE_ACCEPT));
}
@@ -90,22 +90,20 @@
}
}
-bool
-Prompter::maybe_allow_response (GdkEventKey* ev)
+void
+Prompter::on_entry_changed ()
{
- /*
+ /*
This is set up so that entering text in the entry
field makes the RESPONSE_ACCEPT button active.
Of course if you haven't added a RESPONSE_ACCEPT
button, nothing will happen at all.
*/
- if (entry.get_text() != "") {
+ if (entry.get_text() != "") {
set_response_sensitive (Gtk::RESPONSE_ACCEPT, true);
set_default_response (Gtk::RESPONSE_ACCEPT);
} else {
set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
}
- return true;
}
-
|
|
|
I've attached two patches to fix the issues with pasting into the new session name field and the save snapshot dialog. |
|
|
tim's patches have been applied to 2.0-ongoing and trunk. please confirm that these fix the issue. |
|
|
Created a new session (no template). Middle-button paste works for the session name - yay! Middle-button paste works for the snapshot name - yay! Close session, quit Ardour Reopen session... Ardour/GTK 2.1pre (built using 1801 and GCC version 4.1.1 (Gentoo 4.1.1)) Copyright (C) 1999-2007 Paul Davis Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker Ardour comes with ABSOLUTELY NO WARRANTY not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This is free software, and you are welcome to redistribute it under certain conditions; see the source for copying conditions. Loading ui configuration file /etc/ardour2/ardour2_ui.rc theme_init() called from internal clearlooks engine Loading color definition file /etc/ardour2/ardour.colors loading system configuration file /etc/ardour2/ardour_system.rc loading user configuration file /home/rob/.ardour2/ardour.rc ardour: [INFO]: Using SSE optimized routines ardour: [INFO]: looking for control protocols in /home/rob/.ardour2/surfaces/:/usr/lib/ardour2/surfaces/ ardour: [INFO]: Control surface protocol discovered: "Generic MIDI" ardour: [INFO]: Control protocol Tranzport not usable ardour: [INFO]: Control protocol Mackie not usable jackd: wait for startup process exit failed JACK tmpdir identified as [/dev/shm] SSE2 detected loading bindings from /etc/ardour2/ardour.bindings Loading session /session/jams/ardour2/2007-05-16-195423 using snapshot 2007-05-16-195423 (1) ardour-2.1pre: libs/midi++2/jack_midiport.cc:65: virtual int MIDI::JACK_MidiPort::write(MIDI::byte*, size_t, MIDI::timestamp_t): Assertion `_currently_in_cycle' failed. Aborted (core dumped) |
|
|
maybe its not obvious that this is the wrong place to report that crash, but this is the wrong place to report that crash. this is a bug report about middle-button pasting in dialogs. the trunk of SVN is known to be unstable. we appreciate new bug reports on issues that you discover there. if you don't want to debug new issues with us, please stick to 2.0-ongoing. |
|
|
it's obvious when thought is applied :) |
|
|
patches commited to trunk as r1850 and r1851 and on the 2.0-ongoing branch as r1852 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2007-01-27 10:44 | robbie | New Issue | |
| 2007-05-14 18:51 | robbie | Note Added: 0003971 | |
| 2007-05-15 04:47 | timbyr | Note Added: 0003972 | |
| 2007-05-15 08:08 | robbie | Note Added: 0003973 | |
| 2007-05-15 09:57 | timbyr | File Added: fix_paste_in_new_session_name_entry.patch | |
| 2007-05-15 09:57 | timbyr | File Added: fix_paste_in_save_snapshot_dialog.patch | |
| 2007-05-15 09:58 | timbyr | Status | new => assigned |
| 2007-05-15 09:58 | timbyr | Assigned To | => timbyr |
| 2007-05-15 10:00 | timbyr | Note Added: 0003974 | |
| 2007-05-15 10:00 | timbyr | Status | assigned => feedback |
| 2007-05-16 02:43 | paul | Note Added: 0003976 | |
| 2007-05-16 19:00 | robbie | Note Added: 0003980 | |
| 2007-05-16 19:45 | paul | Note Added: 0003981 | |
| 2007-05-16 19:54 | robbie | Note Added: 0003982 | |
| 2007-05-17 00:23 | timbyr | Status | feedback => resolved |
| 2007-05-17 00:23 | timbyr | Resolution | open => fixed |
| 2007-05-17 00:23 | timbyr | Note Added: 0003984 | |
| 2008-11-21 00:00 | seablade | Status | resolved => closed |