gui: Compress some of the model functions
This is to have a single function to set the user pointer value. Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
parent
6706a998ca
commit
782bcf0143
|
@ -8,10 +8,12 @@
|
|||
#include <ocarina.h>
|
||||
#include <sstream>
|
||||
|
||||
static unsigned int global_stamp = 1;
|
||||
|
||||
PlayqueueModel::PlayqueueModel(Playqueue *q)
|
||||
: Glib::ObjectBase( typeid(PlayqueueModel) ),
|
||||
Glib::Object(),
|
||||
stamp(1), queue(q)
|
||||
stamp(global_stamp++), queue(q)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -182,15 +184,8 @@ bool PlayqueueModel::iter_next_vfunc(const Gtk::TreeIter &iter,
|
|||
if (!check_iter_validity(iter))
|
||||
return false;
|
||||
|
||||
iter_next.set_stamp(stamp);
|
||||
index = GPOINTER_TO_UINT(iter.gobj()->user_data);
|
||||
index++;
|
||||
if (index < queue->size()) {
|
||||
iter_next.gobj()->user_data = GUINT_TO_POINTER(index);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return iter_nth_root_child_vfunc(index + 1, iter_next);
|
||||
}
|
||||
|
||||
bool PlayqueueModel::iter_children_vfunc(const Gtk::TreeIter &parent,
|
||||
|
@ -206,27 +201,27 @@ bool PlayqueueModel::iter_has_child_vfunc(const Gtk::TreeIter &iter) const
|
|||
|
||||
int PlayqueueModel::iter_n_children_vfunc(const Gtk::TreeIter &iter) const
|
||||
{
|
||||
if (!check_iter_validity(iter))
|
||||
return 0;
|
||||
return 0;
|
||||
return iter_n_root_children_vfunc(iter);
|
||||
}
|
||||
|
||||
int PlayqueueModel::iter_n_root_children_vfunc(const Gtk::TreeIter &iter) const
|
||||
{
|
||||
if (!check_iter_validity(iter))
|
||||
return 0;
|
||||
return queue->size();
|
||||
}
|
||||
|
||||
bool PlayqueueModel::iter_nth_child_vfunc(const Gtk::TreeIter &parent,
|
||||
int n, Gtk::TreeIter &iter) const
|
||||
{
|
||||
iter = Gtk::TreeIter();
|
||||
return false;
|
||||
return iter_nth_root_child_vfunc(n, iter);
|
||||
}
|
||||
|
||||
bool PlayqueueModel::iter_nth_root_child_vfunc(int n, Gtk::TreeIter &iter) const
|
||||
{
|
||||
iter = Gtk::TreeIter();
|
||||
if ((unsigned int)n < queue->size()) {
|
||||
iter.set_stamp(stamp);
|
||||
iter.gobj()->user_data = GUINT_TO_POINTER(n);
|
||||
return true;
|
||||
}
|
||||
|
@ -256,12 +251,7 @@ bool PlayqueueModel::get_iter_vfunc(const Gtk::TreePath &path,
|
|||
|
||||
if (path.size() != 1)
|
||||
return false;
|
||||
if ((unsigned int)path[0] >= queue->size())
|
||||
return false;
|
||||
|
||||
iter_next.set_stamp(stamp);
|
||||
iter_next.gobj()->user_data = GUINT_TO_POINTER(path[0]);
|
||||
return true;
|
||||
return iter_nth_root_child_vfunc(path[0], iter_next);
|
||||
}
|
||||
|
||||
bool PlayqueueModel::check_iter_validity(const Gtk::TreeIter &iter) const
|
||||
|
|
Loading…
Reference in New Issue