]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainlistdialog.cpp
Use Widget::find_ancestor to reduce code duplication
[r2c2.git] / source / engineer / trainlistdialog.cpp
index 0a31d67808c7a72a275fd41136d01c4bc0c87d67..5d0c9fec9d85402f94dd16c068c8947ed3bab551 100644 (file)
@@ -48,12 +48,8 @@ TrainListDialog::TrainListDialog(Engineer &e):
 
 void TrainListDialog::new_clicked()
 {
-       GLtk::Container *root = parent;
-       while(root->get_parent())
-               root = root->get_parent();
-
        NewTrainDialog *dlg = new NewTrainDialog(engineer);
-       root->add(*dlg);
+       find_ancestor<GLtk::Root>()->add(*dlg);
        dlg->autosize();
 }
 
@@ -62,12 +58,8 @@ void TrainListDialog::show_clicked()
        int index = lst_trains->get_selected_index();
        if(index>=0)
        {
-               GLtk::Container *root = parent;
-               while(root->get_parent())
-                       root = root->get_parent();
-
                TrainDialog *dlg = new TrainDialog(engineer, *trains.get(index));
-               root->add(*dlg);
+               find_ancestor<GLtk::Root>()->add(*dlg);
                dlg->autosize();
        }
 }