Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions src/gtkui/ui_gtk.cc
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ static GtkWidget * window, * vbox_outer, * menu_box, * menu, * toolbar, * vbox,
* infoarea, * statusbar;
static GtkToolItem * menu_button, * search_button, * button_open, * button_add,
* button_prev, * button_play, * button_stop, * button_next, * button_record,
* button_repeat, * button_shuffle;
* button_repeat, * button_shuffle, * button_no_playlist_advance;
static GtkWidget * slider, * label_time;
static GtkWidget * menu_main, * menu_rclick, * menu_tab;

Expand Down Expand Up @@ -473,6 +473,9 @@ static void set_menu_button_icon (GtkToolButton * button)

static void set_button_icon (GtkToolButton * button, const char * icon)
{
if (! icon)
return;

if (aud_get_bool ("gtkui", "symbolic_icons"))
gtk_tool_button_set_icon_name (button, str_concat ({icon, "-symbolic"}));
else
Expand Down Expand Up @@ -698,6 +701,8 @@ static void update_toggles (void * = nullptr, void * = nullptr)
aud_get_bool ("repeat"));
gtk_toggle_tool_button_set_active ((GtkToggleToolButton *) button_shuffle,
aud_get_bool ("shuffle"));
gtk_toggle_tool_button_set_active ((GtkToggleToolButton *) button_no_playlist_advance,
aud_get_bool ("no_playlist_advance"));
}

static void toggle_repeat (GtkToggleToolButton * button)
Expand All @@ -710,6 +715,11 @@ static void toggle_shuffle (GtkToggleToolButton * button)
aud_set_bool ("shuffle", gtk_toggle_tool_button_get_active (button));
}

static void toggle_no_playlist_advance (GtkToggleToolButton * button)
{
aud_set_bool ("no_playlist_advance", gtk_toggle_tool_button_get_active (button));
}

static void toggle_record (GtkToggleToolButton * button)
{
aud_set_bool ("record", gtk_toggle_tool_button_get_active (button));
Expand Down Expand Up @@ -754,8 +764,9 @@ static void ui_hooks_associate ()
hook_associate ("playlist position", pl_notebook_set_position, nullptr);
hook_associate ("enable record", update_toggles, nullptr);
hook_associate ("set record", update_toggles, nullptr);
hook_associate ("set shuffle", update_toggles, nullptr);
hook_associate ("set repeat", update_toggles, nullptr);
hook_associate ("set shuffle", update_toggles, nullptr);
hook_associate ("set no_playlist_advance", update_toggles, nullptr);
hook_associate ("set step_size", (HookFunction) update_step_size, nullptr);
hook_associate ("set volume_delta", (HookFunction) update_volume_delta, nullptr);
hook_associate ("config save", (HookFunction) config_save, nullptr);
Expand All @@ -775,8 +786,9 @@ static void ui_hooks_disassociate ()
hook_dissociate ("playlist position", pl_notebook_set_position);
hook_dissociate ("enable record", update_toggles);
hook_dissociate ("set record", update_toggles);
hook_dissociate ("set shuffle", update_toggles);
hook_dissociate ("set repeat", update_toggles);
hook_dissociate ("set shuffle", update_toggles);
hook_dissociate ("set no_playlist_advance", update_toggles);
hook_dissociate ("set step_size", (HookFunction) update_step_size);
hook_dissociate ("set volume_delta", (HookFunction) update_volume_delta);
hook_dissociate ("config save", (HookFunction) config_save);
Expand Down Expand Up @@ -923,6 +935,11 @@ bool GtkUI::init ()
toggle_shuffle, aud_get_bool ("shuffle"));
gtk_toolbar_insert ((GtkToolbar *) toolbar, button_shuffle, -1);

button_no_playlist_advance = toggle_button_new (nullptr, _("No Playlist Advance"),
toggle_no_playlist_advance, aud_get_bool ("no_playlist_advance"));
gtk_tool_button_set_label ((GtkToolButton *) button_no_playlist_advance, "①");
gtk_toolbar_insert ((GtkToolbar *) toolbar, button_no_playlist_advance, -1);

/* volume button */
GtkToolItem * boxitem2 = gtk_tool_item_new ();
gtk_toolbar_insert ((GtkToolbar *) toolbar, boxitem2, -1);
Expand Down
6 changes: 6 additions & 0 deletions src/qtui/main_window.cc
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,10 @@ MainWindow::MainWindow()
ToolBarAction(
"media-playlist-shuffle", N_("Shuffle"), N_("Shuffle"),
[](bool on) { aud_set_bool("shuffle", on); }, &m_shuffle_action),
ToolBarAction(
nullptr, "①", N_("No Playlist Advance"),
[](bool on) { aud_set_bool("no_playlist_advance", on); },
&m_no_playlist_advance_action),
ToolBarCustom(audqt::volume_button_new(this))};

auto toolbar = new ToolBar(this, items);
Expand Down Expand Up @@ -328,6 +332,8 @@ void MainWindow::update_toggles()

m_repeat_action->setChecked(aud_get_bool("repeat"));
m_shuffle_action->setChecked(aud_get_bool("shuffle"));
m_no_playlist_advance_action->setChecked(
aud_get_bool("no_playlist_advance"));
}

void MainWindow::update_visibility()
Expand Down
15 changes: 8 additions & 7 deletions src/qtui/main_window.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class MainWindow : public QMainWindow, audqt::DockHost
QAction *m_menu_action, *m_search_action;
QAction *m_play_pause_action, *m_stop_action, *m_stop_after_action;
QAction * m_record_action;
QAction *m_repeat_action, *m_shuffle_action;
QAction *m_repeat_action, *m_shuffle_action, *m_no_playlist_advance_action;

QueuedFunc m_buffering_timer;
Playlist m_last_playing;
Expand Down Expand Up @@ -116,13 +116,14 @@ class MainWindow : public QMainWindow, audqt::DockHost
hook9{"set record", this, &MainWindow::update_toggles},
hook10{"set repeat", this, &MainWindow::update_toggles},
hook11{"set shuffle", this, &MainWindow::update_toggles},
hook12{"qtui toggle menubar", this, &MainWindow::update_visibility},
hook13{"qtui toggle infoarea", this, &MainWindow::update_visibility},
hook14{"qtui toggle statusbar", this, &MainWindow::update_visibility},
hook15{"qtui show search tool", this, &MainWindow::show_search_tool},
hook16{"qtui show playback history", this,
hook12{"set no_playlist_advance", this, &MainWindow::update_toggles},
hook13{"qtui toggle menubar", this, &MainWindow::update_visibility},
hook14{"qtui toggle infoarea", this, &MainWindow::update_visibility},
hook15{"qtui toggle statusbar", this, &MainWindow::update_visibility},
hook16{"qtui show search tool", this, &MainWindow::show_search_tool},
hook17{"qtui show playback history", this,
&MainWindow::show_playback_history},
hook17{"qtui show playlist manager", this,
hook18{"qtui show playlist manager", this,
&MainWindow::show_playlist_manager};
};

Expand Down
5 changes: 3 additions & 2 deletions src/qtui/tool_bar.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,10 @@ ToolBar::ToolBar(QWidget * parent, ArrayRef<ToolBarItem> items)
a = addWidget(item.widget);
else if (item.sep)
a = addSeparator();
else if (item.icon_name)
else if (item.icon_name || item.name)
{
a = new QAction(QIcon::fromTheme(item.icon_name),
a = new QAction(item.icon_name ? QIcon::fromTheme(item.icon_name)
: QIcon(),
audqt::translate_str(item.name), this);

if (item.tooltip_text)
Expand Down