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 $
|
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 $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/widgets/include/LiveSupport/Widgets/ZebraTreeView.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#include "configure.h"
|
#include "configure.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <gtkmm/treemodel.h>
|
#include <gtkmm/liststore.h>
|
||||||
#include <gtkmm/treeview.h>
|
#include <gtkmm/treeview.h>
|
||||||
#include <gtkmm/label.h>
|
#include <gtkmm/label.h>
|
||||||
#include <gtkmm/table.h>
|
#include <gtkmm/table.h>
|
||||||
|
@ -92,7 +92,7 @@ using namespace LiveSupport::Core;
|
||||||
* 3) connected with a TreeModelColumn using set_renderer().
|
* 3) connected with a TreeModelColumn using set_renderer().
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.12 $
|
* @version $Revision: 1.13 $
|
||||||
*/
|
*/
|
||||||
class ZebraTreeView : public Gtk::TreeView
|
class ZebraTreeView : public Gtk::TreeView
|
||||||
{
|
{
|
||||||
|
@ -209,6 +209,34 @@ class ZebraTreeView : public Gtk::TreeView
|
||||||
int minimumWidth = 0)
|
int minimumWidth = 0)
|
||||||
throw ();
|
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 $
|
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 $
|
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 $
|
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 $
|
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)));
|
&CuePlayer::onPlayItem)));
|
||||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||||
*getResourceUstring("upMenuItem"),
|
*getResourceUstring("upMenuItem"),
|
||||||
sigc::mem_fun(*this,
|
sigc::mem_fun(*treeView,
|
||||||
&LiveModeWindow::onUpMenuOption)));
|
&ZebraTreeView::onUpMenuOption)));
|
||||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||||
*getResourceUstring("downMenuItem"),
|
*getResourceUstring("downMenuItem"),
|
||||||
sigc::mem_fun(*this,
|
sigc::mem_fun(*treeView,
|
||||||
&LiveModeWindow::onDownMenuOption)));
|
&ZebraTreeView::onDownMenuOption)));
|
||||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||||
*getResourceUstring("removeMenuItem"),
|
*getResourceUstring("removeMenuItem"),
|
||||||
sigc::mem_fun(*this,
|
sigc::mem_fun(*treeView,
|
||||||
&LiveModeWindow::onRemoveMenuOption)));
|
&ZebraTreeView::onRemoveMenuOption)));
|
||||||
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
contextMenuList.push_back(Gtk::Menu_Helpers::MenuElem(
|
||||||
*getResourceUstring("playMenuItem"),
|
*getResourceUstring("playMenuItem"),
|
||||||
sigc::mem_fun(*this,
|
sigc::mem_fun(*this,
|
||||||
|
@ -255,7 +255,7 @@ LiveModeWindow :: onOutputPlay(void) throw ()
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
||||||
gLiveSupport->playOutputAudio(playable);
|
gLiveSupport->playOutputAudio(playable);
|
||||||
gLiveSupport->setNowPlaying(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 $
|
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 $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/LiveModeWindow.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -74,7 +74,7 @@ using namespace LiveSupport::Widgets;
|
||||||
* playlists.
|
* playlists.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.12 $
|
* @version $Revision: 1.13 $
|
||||||
*/
|
*/
|
||||||
class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
||||||
{
|
{
|
||||||
|
@ -87,7 +87,7 @@ class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
||||||
* Lists one clip per row.
|
* Lists one clip per row.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.12 $
|
* @version $Revision: 1.13 $
|
||||||
*/
|
*/
|
||||||
class ModelColumns : public PlayableTreeModelColumnRecord
|
class ModelColumns : public PlayableTreeModelColumnRecord
|
||||||
{
|
{
|
||||||
|
@ -165,35 +165,6 @@ class LiveModeWindow : public WhiteWindow, public LocalizedObject
|
||||||
void
|
void
|
||||||
onEntryClicked(GdkEventButton * event) throw ();
|
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.
|
* Signal handler for the "rows reordered" event.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue