refactored: moved Up, Down and Remove functions from LiveModeWindow class to ZebraTreeView class
This commit is contained in:
parent
78b687f715
commit
0cd795889a
4 changed files with 130 additions and 126 deletions
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.12 $
|
||||
Version : $Revision: 1.13 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeView.h,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -40,7 +40,7 @@
|
|||
#include "configure.h"
|
||||
#endif
|
||||
|
||||
#include <gtkmm/treemodel.h>
|
||||
#include <gtkmm/liststore.h>
|
||||
#include <gtkmm/treeview.h>
|
||||
#include <gtkmm/label.h>
|
||||
#include <gtkmm/table.h>
|
||||
|
@ -92,7 +92,7 @@ using namespace LiveSupport::Core;
|
|||
* 3) connected with a TreeModelColumn using set_renderer().
|
||||
*
|
||||
* @author $Author: fgerlits $
|
||||
* @version $Revision: 1.12 $
|
||||
* @version $Revision: 1.13 $
|
||||
*/
|
||||
class ZebraTreeView : public Gtk::TreeView
|
||||
{
|
||||
|
@ -209,6 +209,34 @@ class ZebraTreeView : public Gtk::TreeView
|
|||
int minimumWidth = 0)
|
||||
throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "up" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
void
|
||||
onUpMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "down" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
void
|
||||
onDownMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "remove" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
void
|
||||
onRemoveMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Remove an item from the window.
|
||||
*
|
||||
* @param iter points to the row to be removed
|
||||
*/
|
||||
void
|
||||
removeItem(const Gtk::TreeModel::iterator & iter) throw ();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.13 $
|
||||
Version : $Revision: 1.14 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/src/ZebraTreeView.cxx,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -267,3 +267,90 @@ ZebraTreeView :: lineNumberCellDataFunction(
|
|||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Up menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
ZebraTreeView :: onUpMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> selection = get_selection();
|
||||
Gtk::TreeModel::iterator iter = selection->get_selected();
|
||||
Glib::RefPtr<Gtk::ListStore> treeModel
|
||||
= Glib::RefPtr<Gtk::ListStore>::cast_dynamic(get_model());
|
||||
ZebraTreeModelColumnRecord modelColumns;
|
||||
|
||||
if (iter && iter != treeModel->children().begin()) {
|
||||
Gtk::TreeModel::iterator previous = iter;
|
||||
--previous;
|
||||
|
||||
int rowNumber = (*previous)[modelColumns.rowNumberColumn];
|
||||
(*iter) [modelColumns.rowNumberColumn] = rowNumber;
|
||||
(*previous)[modelColumns.rowNumberColumn] = ++rowNumber;
|
||||
|
||||
treeModel->iter_swap(previous, iter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Down menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
ZebraTreeView :: onDownMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> selection = get_selection();
|
||||
Gtk::TreeModel::iterator iter = selection->get_selected();
|
||||
Glib::RefPtr<Gtk::ListStore> treeModel
|
||||
= Glib::RefPtr<Gtk::ListStore>::cast_dynamic(get_model());
|
||||
ZebraTreeModelColumnRecord modelColumns;
|
||||
|
||||
if (iter) {
|
||||
Gtk::TreeModel::iterator next = iter;
|
||||
++next;
|
||||
if (next != treeModel->children().end()) {
|
||||
|
||||
int rowNumber = (*iter)[modelColumns.rowNumberColumn];
|
||||
(*next)[modelColumns.rowNumberColumn] = rowNumber;
|
||||
(*iter)[modelColumns.rowNumberColumn] = ++rowNumber;
|
||||
|
||||
treeModel->iter_swap(iter, next);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Remove menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
ZebraTreeView :: onRemoveMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> selection = get_selection();
|
||||
Gtk::TreeModel::iterator iter = selection->get_selected();
|
||||
|
||||
if (iter) {
|
||||
removeItem(iter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Remove an item from the window.
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
ZebraTreeView :: removeItem(const Gtk::TreeModel::iterator & iter)
|
||||
throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::ListStore> treeModel
|
||||
= Glib::RefPtr<Gtk::ListStore>::cast_dynamic(get_model());
|
||||
ZebraTreeModelColumnRecord modelColumns;
|
||||
|
||||
Gtk::TreeModel::iterator later = iter;
|
||||
|
||||
int rowNumber = (*iter)[modelColumns.rowNumberColumn];
|
||||
for (++later; later != treeModel->children().end(); ++later) {
|
||||
(*later)[modelColumns.rowNumberColumn] = rowNumber++;
|
||||
}
|
||||
|
||||
treeModel->erase(iter);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.13 $
|
||||
Version : $Revision: 1.14 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/LiveModeWindow.cxx,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -148,16 +148,16 @@ LiveModeWindow :: LiveModeWindow (Ptr<GLiveSupport>::Ref gLiveSupport,
|
|||
&CuePlayer::onPlayItem)));
|
||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||
*getResourceUstring("upMenuItem"),
|
||||
sigc::mem_fun(*this,
|
||||
&LiveModeWindow::onUpMenuOption)));
|
||||
sigc::mem_fun(*treeView,
|
||||
&ZebraTreeView::onUpMenuOption)));
|
||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||
*getResourceUstring("downMenuItem"),
|
||||
sigc::mem_fun(*this,
|
||||
&LiveModeWindow::onDownMenuOption)));
|
||||
sigc::mem_fun(*treeView,
|
||||
&ZebraTreeView::onDownMenuOption)));
|
||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||
*getResourceUstring("removeMenuItem"),
|
||||
sigc::mem_fun(*this,
|
||||
&LiveModeWindow::onRemoveMenuOption)));
|
||||
sigc::mem_fun(*treeView,
|
||||
&ZebraTreeView::onRemoveMenuOption)));
|
||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||
*getResourceUstring("playMenuItem"),
|
||||
sigc::mem_fun(*this,
|
||||
|
@ -255,7 +255,7 @@ LiveModeWindow :: onOutputPlay(void) throw ()
|
|||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
||||
gLiveSupport->playOutputAudio(playable);
|
||||
gLiveSupport->setNowPlaying(playable);
|
||||
removeItem(iter);
|
||||
treeView->removeItem(iter);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -291,85 +291,3 @@ LiveModeWindow :: onEntryClicked (GdkEventButton * event) throw ()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Up menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
LiveModeWindow :: onUpMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
||||
treeView->get_selection();
|
||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
||||
|
||||
if (iter && iter != treeModel->children().begin()) {
|
||||
Gtk::TreeModel::iterator previous = iter;
|
||||
--previous;
|
||||
|
||||
int rowNumber = (*previous)[modelColumns.rowNumberColumn];
|
||||
(*iter) [modelColumns.rowNumberColumn] = rowNumber;
|
||||
(*previous)[modelColumns.rowNumberColumn] = ++rowNumber;
|
||||
|
||||
treeModel->iter_swap(previous, iter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Down menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
LiveModeWindow :: onDownMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
||||
treeView->get_selection();
|
||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
||||
|
||||
if (iter) {
|
||||
Gtk::TreeModel::iterator next = iter;
|
||||
++next;
|
||||
if (next != treeModel->children().end()) {
|
||||
|
||||
int rowNumber = (*iter)[modelColumns.rowNumberColumn];
|
||||
(*next)[modelColumns.rowNumberColumn] = rowNumber;
|
||||
(*iter)[modelColumns.rowNumberColumn] = ++rowNumber;
|
||||
|
||||
treeModel->iter_swap(iter, next);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Event handler for the Remove menu item selected from the entry conext menu
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
LiveModeWindow :: onRemoveMenuOption(void) throw ()
|
||||
{
|
||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
||||
treeView->get_selection();
|
||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
||||
|
||||
if (iter) {
|
||||
removeItem(iter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Remove an item from the window.
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
LiveModeWindow :: removeItem(const Gtk::TreeModel::iterator & iter)
|
||||
throw ()
|
||||
{
|
||||
Gtk::TreeModel::iterator later = iter;
|
||||
|
||||
int rowNumber = (*iter)[modelColumns.rowNumberColumn];
|
||||
for (++later; later != treeModel->children().end(); ++later) {
|
||||
(*later)[modelColumns.rowNumberColumn] = rowNumber++;
|
||||
}
|
||||
|
||||
treeModel->erase(iter);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
Author : $Author: fgerlits $
|
||||
Version : $Revision: 1.12 $
|
||||
Version : $Revision: 1.13 $
|
||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/LiveModeWindow.h,v $
|
||||
|
||||
------------------------------------------------------------------------------*/
|
||||
|
@ -74,7 +74,7 @@ using namespace LiveSupport::Widgets;
|
|||
* playlists.
|
||||
*
|
||||
* @author $Author: fgerlits $
|
||||
* @version $Revision: 1.12 $
|
||||
* @version $Revision: 1.13 $
|
||||
*/
|
||||
class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
|||
* Lists one clip per row.
|
||||
*
|
||||
* @author $Author: fgerlits $
|
||||
* @version $Revision: 1.12 $
|
||||
* @version $Revision: 1.13 $
|
||||
*/
|
||||
class ModelColumns : public PlayableTreeModelColumnRecord
|
||||
{
|
||||
|
@ -165,35 +165,6 @@ class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
|||
void
|
||||
onEntryClicked(GdkEventButton * event) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "up" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
void
|
||||
onUpMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "down" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
void
|
||||
onDownMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "remove" menu option selected from
|
||||
* the context menu.
|
||||
*/
|
||||
virtual void
|
||||
onRemoveMenuOption(void) throw ();
|
||||
|
||||
/**
|
||||
* Remove an item from the window.
|
||||
*
|
||||
* @param iter points to the row to be removed
|
||||
*/
|
||||
void
|
||||
removeItem(const Gtk::TreeModel::iterator & iter) throw ();
|
||||
|
||||
/**
|
||||
* Signal handler for the "rows reordered" event.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue