Re: Spurious critical warnings in console



I'm very sorry but the attachment didn't pass through... here is the snippet:


#include <gtkmm.h>
#include <iostream>

class Columns : public Gtk::TreeModelColumnRecord {
public:
   Columns() {
       add(col);
   }
   Gtk::TreeModelColumn<Glib::ustring> col;
};

Gtk::TreeView *list_view;

bool on_list_key_press_event(GdkEventKey* event) {
   Glib::ustring ch(event->string);
   if (ch == "a") {
       // scroll up
Glib::RefPtr<Gtk::TreeSelection>selection = list_view->get_selection();
       Gtk::TreeModel::iterator it= selection->get_selected();
Gtk::TreeModel::Children children = list_view->get_model()->children();
       if (it && it!=children.begin()) {
           selection->select(--it);
       }
       return true;
   }
   if (ch == "z") {
       // scroll down
Glib::RefPtr<Gtk::TreeSelection>selection = list_view->get_selection();
       Gtk::TreeModel::iterator it= selection->get_selected();
Gtk::TreeModel::Children children = list_view->get_model()->children();
       if (it && it!=children.end()) {
           selection->select(++it);
       }
       return true;
   }
   return false;
}

int mainn(int argc, char *argv[]) {
   Gtk::Main kit(argc, argv);
   Gtk::Window window;

   Columns cols;
   Glib::RefPtr<Gtk::ListStore> model = Gtk::ListStore::create(cols);
   (*model->append())[cols.col]="foo bar row 1";
   (*model->append())[cols.col]="foo bar row 2";
   (*model->append())[cols.col]="foo bar row 3";

   list_view = manage(new Gtk::TreeView());
   list_view->set_model(model);
   list_view->append_column("a list", cols.col);
   list_view->set_enable_search(false);

list_view->signal_key_press_event().connect(sigc::ptr_fun(&on_list_key_press_event));

   window.add(*list_view);
   window.show_all_children(true);

   Gtk::Main::run(window);

   return 0;
}

// end


Michael Baranov wrote:
Hello!
I'm new to the list and new to gtkmm...

Here is a very simple standalone snippet that looks OK to me but produces warnings:

Gtk-CRITICAL **: gtk_list_store_get_path: assertion `iter->stamp == GTK_LIST_STORE (tree_model)->stamp' failed

In the snippet keys A/Z move selection up/down; Hit key Z several times to see the warnings.
Am I missing something?

Thanks for the help and a superb lib!


--
Michael Baranov




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]