enabled multiple selection in Scratchpad window;
added "add to playlist" button
This commit is contained in:
parent
9ceb48d0d1
commit
2b9f41aa43
4 changed files with 249 additions and 229 deletions
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.20 $
|
Version : $Revision: 1.21 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -74,28 +74,35 @@ ScratchpadWindow :: ScratchpadWindow (Ptr<GLiveSupport>::Ref gLiveSupport,
|
||||||
Ptr<WidgetFactory>::Ref widgetFactory = WidgetFactory::getInstance();
|
Ptr<WidgetFactory>::Ref widgetFactory = WidgetFactory::getInstance();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
addToPlaylistButton = Gtk::manage(widgetFactory->createButton(
|
||||||
|
*getResourceUstring("addToPlaylistButtonLabel")));
|
||||||
clearListButton = Gtk::manage(widgetFactory->createButton(
|
clearListButton = Gtk::manage(widgetFactory->createButton(
|
||||||
*getResourceUstring("clearListButtonLabel")));
|
*getResourceUstring("clearListButtonLabel")));
|
||||||
removeButton = Gtk::manage(widgetFactory->createButton(
|
removeButton = Gtk::manage(widgetFactory->createButton(
|
||||||
*getResourceUstring("removeButtonLabel")));
|
*getResourceUstring("removeButtonLabel")));
|
||||||
} catch (std::invalid_argument &e) {
|
} catch (std::invalid_argument &e) {
|
||||||
std::cerr << e.what() << std::endl;
|
std::cerr << e.what() << std::endl;
|
||||||
std::exit(1);
|
std::exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addToPlaylistButton->set_name("addToPlaylistButton");
|
||||||
|
addToPlaylistButton->signal_clicked().connect(sigc::mem_fun(*this,
|
||||||
|
&ScratchpadWindow::onAddToPlaylistButtonClicked));
|
||||||
|
|
||||||
clearListButton->set_name("clearListButton");
|
clearListButton->set_name("clearListButton");
|
||||||
clearListButton->signal_clicked().connect(sigc::mem_fun(*this,
|
clearListButton->signal_clicked().connect(sigc::mem_fun(*this,
|
||||||
&ScratchpadWindow::onClearListButtonClicked));
|
&ScratchpadWindow::onClearListButtonClicked));
|
||||||
|
|
||||||
removeButton->set_name("removeButton");
|
removeButton->set_name("removeButton");
|
||||||
removeButton->signal_clicked().connect(sigc::mem_fun(*this,
|
removeButton->signal_clicked().connect(sigc::mem_fun(*this,
|
||||||
&ScratchpadWindow::onRemoveItem));
|
&ScratchpadWindow::onRemoveItemButtonClicked));
|
||||||
|
|
||||||
add(vBox);
|
add(vBox);
|
||||||
|
|
||||||
// Create the Tree model:
|
// Create the Tree model:
|
||||||
treeModel = Gtk::ListStore::create(modelColumns);
|
treeModel = Gtk::ListStore::create(modelColumns);
|
||||||
treeView = Gtk::manage(widgetFactory->createTreeView(treeModel));
|
treeView = Gtk::manage(widgetFactory->createTreeView(treeModel));
|
||||||
|
treeView->get_selection()->set_mode(Gtk::SELECTION_MULTIPLE);
|
||||||
|
|
||||||
// Add the TreeView's view columns:
|
// Add the TreeView's view columns:
|
||||||
try {
|
try {
|
||||||
|
@ -118,19 +125,25 @@ ScratchpadWindow :: ScratchpadWindow (Ptr<GLiveSupport>::Ref gLiveSupport,
|
||||||
// Only show the scrollbars when they are necessary:
|
// Only show the scrollbars when they are necessary:
|
||||||
scrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
scrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
||||||
|
|
||||||
vBox.pack_start(topButtonBox, Gtk::PACK_SHRINK, 5);
|
|
||||||
vBox.pack_start(scrolledWindow, Gtk::PACK_EXPAND_WIDGET, 5);
|
|
||||||
vBox.pack_start(bottomButtonBox, Gtk::PACK_SHRINK, 5);
|
|
||||||
|
|
||||||
audioButtonBox = Gtk::manage(new CuePlayer(
|
audioButtonBox = Gtk::manage(new CuePlayer(
|
||||||
gLiveSupport, treeView, modelColumns ));
|
gLiveSupport, treeView, modelColumns ));
|
||||||
topButtonBox.pack_start(*audioButtonBox, Gtk::PACK_EXPAND_PADDING);
|
topButtonBox.pack_start(*audioButtonBox, Gtk::PACK_EXPAND_PADDING);
|
||||||
|
|
||||||
|
middleButtonBox.set_layout(Gtk::BUTTONBOX_END);
|
||||||
|
middleButtonBox.set_spacing(5);
|
||||||
|
middleButtonBox.pack_start(*addToPlaylistButton);
|
||||||
|
|
||||||
bottomButtonBox.set_layout(Gtk::BUTTONBOX_END);
|
bottomButtonBox.set_layout(Gtk::BUTTONBOX_END);
|
||||||
bottomButtonBox.set_spacing(5);
|
bottomButtonBox.set_spacing(5);
|
||||||
bottomButtonBox.pack_start(*clearListButton);
|
bottomButtonBox.pack_start(*clearListButton);
|
||||||
bottomButtonBox.pack_start(*removeButton);
|
bottomButtonBox.pack_start(*removeButton);
|
||||||
|
|
||||||
|
// pack everything in the main box
|
||||||
|
vBox.pack_start(topButtonBox, Gtk::PACK_SHRINK, 5);
|
||||||
|
vBox.pack_start(scrolledWindow, Gtk::PACK_EXPAND_WIDGET, 5);
|
||||||
|
vBox.pack_start(middleButtonBox, Gtk::PACK_SHRINK, 5);
|
||||||
|
vBox.pack_start(bottomButtonBox, Gtk::PACK_SHRINK, 5);
|
||||||
|
|
||||||
// create the right-click entry context menu for audio clips
|
// create the right-click entry context menu for audio clips
|
||||||
audioClipMenu = Gtk::manage(new Gtk::Menu());
|
audioClipMenu = Gtk::manage(new Gtk::Menu());
|
||||||
Gtk::Menu::MenuList& audioClipMenuList = audioClipMenu->items();
|
Gtk::Menu::MenuList& audioClipMenuList = audioClipMenu->items();
|
||||||
|
@ -218,7 +231,7 @@ ScratchpadWindow :: ScratchpadWindow (Ptr<GLiveSupport>::Ref gLiveSupport,
|
||||||
|
|
||||||
// show
|
// show
|
||||||
set_name("scratchpadWindow");
|
set_name("scratchpadWindow");
|
||||||
set_default_size(300, 300);
|
set_default_size(300, 330);
|
||||||
set_modal(false);
|
set_modal(false);
|
||||||
property_window_position().set_value(Gtk::WIN_POS_NONE);
|
property_window_position().set_value(Gtk::WIN_POS_NONE);
|
||||||
|
|
||||||
|
@ -271,6 +284,28 @@ ScratchpadWindow :: showContents(void) throw ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
* Event handler for the create playlist button getting clicked.
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void
|
||||||
|
ScratchpadWindow :: onAddToPlaylistButtonClicked (void) throw ()
|
||||||
|
{
|
||||||
|
Glib::RefPtr<Gtk::TreeView::Selection>
|
||||||
|
selection = treeView->get_selection();
|
||||||
|
std::vector<Gtk::TreePath>
|
||||||
|
selectedRows = selection->get_selected_rows();
|
||||||
|
|
||||||
|
std::vector<Gtk::TreePath>::iterator iter;
|
||||||
|
for (iter = selectedRows.begin(); iter != selectedRows.end(); ++iter) {
|
||||||
|
Gtk::TreeIter ti = treeModel->get_iter(*iter);
|
||||||
|
if (ti) {
|
||||||
|
Ptr<Playable>::Ref playable = (*ti)[modelColumns.playableColumn];
|
||||||
|
gLiveSupport->addToPlaylist(playable->getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------
|
||||||
* Event handler for the clear list button getting clicked.
|
* Event handler for the clear list button getting clicked.
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
@ -284,6 +319,29 @@ ScratchpadWindow :: onClearListButtonClicked (void) throw ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
* Event handler for the Remove menu button getting clicked.
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void
|
||||||
|
ScratchpadWindow :: onRemoveItemButtonClicked(void) throw ()
|
||||||
|
{
|
||||||
|
Glib::RefPtr<Gtk::TreeView::Selection>
|
||||||
|
selection = treeView->get_selection();
|
||||||
|
std::vector<Gtk::TreePath>
|
||||||
|
selectedRows = selection->get_selected_rows();
|
||||||
|
|
||||||
|
std::vector<Gtk::TreePath>::iterator iter;
|
||||||
|
for (iter = selectedRows.begin(); iter != selectedRows.end(); ++iter) {
|
||||||
|
Gtk::TreeIter ti = treeModel->get_iter(*iter);
|
||||||
|
if (ti) {
|
||||||
|
Ptr<Playable>::Ref playable = (*ti)[modelColumns.playableColumn];
|
||||||
|
removeItem(playable->getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showContents();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------
|
||||||
* Event handler for an entry being clicked in the list
|
* Event handler for an entry being clicked in the list
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
@ -291,29 +349,23 @@ void
|
||||||
ScratchpadWindow :: onEntryClicked (GdkEventButton * event) throw ()
|
ScratchpadWindow :: onEntryClicked (GdkEventButton * event) throw ()
|
||||||
{
|
{
|
||||||
if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
|
if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Gtk::TreePath currentPath;
|
||||||
treeView->get_selection();
|
Gtk::TreeViewColumn * column;
|
||||||
if (refSelection) {
|
int cell_x,
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
cell_y;
|
||||||
|
bool foundValidRow = treeView->get_path_at_pos(
|
||||||
// if nothing is currently selected, select row at mouse pointer
|
int(event->x), int(event->y),
|
||||||
if (!iter) {
|
currentPath, column,
|
||||||
Gtk::TreeModel::Path path;
|
cell_x, cell_y);
|
||||||
Gtk::TreeViewColumn * column;
|
|
||||||
int cell_x,
|
|
||||||
cell_y;
|
|
||||||
if (treeView->get_path_at_pos(int(event->x), int(event->y),
|
|
||||||
path, column,
|
|
||||||
cell_x, cell_y)) {
|
|
||||||
refSelection->select(path);
|
|
||||||
iter = refSelection->get_selected();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (foundValidRow) {
|
||||||
|
Gtk::TreeIter iter = treeModel->get_iter(currentPath);
|
||||||
if (iter) {
|
if (iter) {
|
||||||
Ptr<Playable>::Ref playable =
|
currentRow = *iter;
|
||||||
(*iter)[modelColumns.playableColumn];
|
|
||||||
|
Ptr<Playable>::Ref
|
||||||
|
playable = currentRow[modelColumns.playableColumn];
|
||||||
|
|
||||||
switch (playable->getType()) {
|
switch (playable->getType()) {
|
||||||
case Playable::AudioClipType:
|
case Playable::AudioClipType:
|
||||||
audioClipMenu->popup(event->button, event->time);
|
audioClipMenu->popup(event->button, event->time);
|
||||||
|
@ -322,7 +374,7 @@ ScratchpadWindow :: onEntryClicked (GdkEventButton * event) throw ()
|
||||||
case Playable::PlaylistType:
|
case Playable::PlaylistType:
|
||||||
playlistMenu->popup(event->button, event->time);
|
playlistMenu->popup(event->button, event->time);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -338,18 +390,9 @@ ScratchpadWindow :: onEntryClicked (GdkEventButton * event) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onRemoveItem(void) throw ()
|
ScratchpadWindow :: onRemoveItem(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
removeItem(playable->getId());
|
||||||
|
showContents();
|
||||||
if (refSelection) {
|
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
|
||||||
if (iter) {
|
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
|
||||||
|
|
||||||
removeItem(playable->getId());
|
|
||||||
showContents();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,42 +402,33 @@ ScratchpadWindow :: onRemoveItem(void) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onUpItem(void) throw ()
|
ScratchpadWindow :: onUpItem(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
|
||||||
|
|
||||||
if (refSelection) {
|
Ptr<GLiveSupport::PlayableList>::Ref scratchpadContents;
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
GLiveSupport::PlayableList::iterator it;
|
||||||
if (iter) {
|
GLiveSupport::PlayableList::iterator end;
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
|
||||||
|
|
||||||
Ptr<GLiveSupport::PlayableList>::Ref scratchpadContents;
|
scratchpadContents = gLiveSupport->getScratchpadContents();
|
||||||
GLiveSupport::PlayableList::iterator it;
|
it = scratchpadContents->begin();
|
||||||
GLiveSupport::PlayableList::iterator end;
|
end = scratchpadContents->end();
|
||||||
|
while (it != end) {
|
||||||
|
Ptr<Playable>::Ref p= *it;
|
||||||
|
|
||||||
scratchpadContents = gLiveSupport->getScratchpadContents();
|
if (*p->getId() == *playable->getId()) {
|
||||||
it = scratchpadContents->begin();
|
// move one up, and insert the same before that
|
||||||
end = scratchpadContents->end();
|
if (it == scratchpadContents->begin()) {
|
||||||
while (it != end) {
|
break;
|
||||||
Ptr<Playable>::Ref p= *it;
|
|
||||||
|
|
||||||
if (*p->getId() == *playable->getId()) {
|
|
||||||
// move one up, and insert the same before that
|
|
||||||
if (it == scratchpadContents->begin()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
scratchpadContents->insert(--it, playable);
|
|
||||||
// move back to what we've found, and erase it
|
|
||||||
scratchpadContents->erase(++it);
|
|
||||||
|
|
||||||
showContents();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
it++;
|
|
||||||
}
|
}
|
||||||
}
|
scratchpadContents->insert(--it, playable);
|
||||||
}
|
// move back to what we've found, and erase it
|
||||||
|
scratchpadContents->erase(++it);
|
||||||
|
|
||||||
|
showContents();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
it++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -404,45 +438,36 @@ ScratchpadWindow :: onUpItem(void) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onDownItem(void) throw ()
|
ScratchpadWindow :: onDownItem(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
|
||||||
|
|
||||||
if (refSelection) {
|
Ptr<GLiveSupport::PlayableList>::Ref scratchpadContents;
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
GLiveSupport::PlayableList::iterator it;
|
||||||
if (iter) {
|
GLiveSupport::PlayableList::iterator end;
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
|
||||||
|
|
||||||
Ptr<GLiveSupport::PlayableList>::Ref scratchpadContents;
|
scratchpadContents = gLiveSupport->getScratchpadContents();
|
||||||
GLiveSupport::PlayableList::iterator it;
|
it = scratchpadContents->begin();
|
||||||
GLiveSupport::PlayableList::iterator end;
|
end = scratchpadContents->end();
|
||||||
|
while (it != end) {
|
||||||
|
Ptr<Playable>::Ref p= *it;
|
||||||
|
|
||||||
scratchpadContents = gLiveSupport->getScratchpadContents();
|
if (*p->getId() == *playable->getId()) {
|
||||||
it = scratchpadContents->begin();
|
// move two down, and insert the same before that
|
||||||
end = scratchpadContents->end();
|
++it;
|
||||||
while (it != end) {
|
if (it == end) {
|
||||||
Ptr<Playable>::Ref p= *it;
|
break;
|
||||||
|
|
||||||
if (*p->getId() == *playable->getId()) {
|
|
||||||
// move two down, and insert the same before that
|
|
||||||
++it;
|
|
||||||
if (it == end) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
scratchpadContents->insert(++it, playable);
|
|
||||||
// move back to what we've found, and erase it
|
|
||||||
--it;
|
|
||||||
--it;
|
|
||||||
scratchpadContents->erase(--it);
|
|
||||||
|
|
||||||
showContents();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
it++;
|
|
||||||
}
|
}
|
||||||
}
|
scratchpadContents->insert(++it, playable);
|
||||||
}
|
// move back to what we've found, and erase it
|
||||||
|
--it;
|
||||||
|
--it;
|
||||||
|
scratchpadContents->erase(--it);
|
||||||
|
|
||||||
|
showContents();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
it++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -452,22 +477,14 @@ ScratchpadWindow :: onDownItem(void) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onDeleteItem(void) throw ()
|
ScratchpadWindow :: onDeleteItem(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
|
||||||
|
|
||||||
if (refSelection) {
|
try {
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
deleteItem(playable);
|
||||||
if (iter) {
|
} catch (XmlRpcException &e) {
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
// TODO: signal error here
|
||||||
|
|
||||||
try {
|
|
||||||
deleteItem(playable);
|
|
||||||
} catch (XmlRpcException &e) {
|
|
||||||
// TODO: signal error here
|
|
||||||
}
|
|
||||||
showContents();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
showContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -516,17 +533,8 @@ ScratchpadWindow :: deleteItem(Ptr<Playable>::Ref playable)
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onAddToPlaylist(void) throw ()
|
ScratchpadWindow :: onAddToPlaylist(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
gLiveSupport->addToPlaylist(playable->getId());
|
||||||
|
|
||||||
if (refSelection) {
|
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
|
||||||
if (iter) {
|
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
|
||||||
|
|
||||||
gLiveSupport->addToPlaylist(playable->getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -537,42 +545,34 @@ ScratchpadWindow :: onAddToPlaylist(void) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onSchedulePlaylist(void) throw ()
|
ScratchpadWindow :: onSchedulePlaylist(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
Ptr<UniqueId>::Ref uid = playable->getId();
|
||||||
|
|
||||||
if (refSelection) {
|
Ptr<SessionId>::Ref sessionId =
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
gLiveSupport->getSessionId();
|
||||||
if (iter) {
|
Ptr<StorageClientInterface>::Ref storage =
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
gLiveSupport->getStorage();
|
||||||
Ptr<UniqueId>::Ref uid = playable->getId();
|
|
||||||
|
|
||||||
Ptr<SessionId>::Ref sessionId =
|
if (!storage->existsPlaylist(sessionId, uid)) {
|
||||||
gLiveSupport->getSessionId();
|
return;
|
||||||
Ptr<StorageClientInterface>::Ref storage =
|
|
||||||
gLiveSupport->getStorage();
|
|
||||||
|
|
||||||
if (!storage->existsPlaylist(sessionId, uid)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ptr<Playlist>::Ref playlist = storage->getPlaylist(sessionId, uid);
|
|
||||||
|
|
||||||
Ptr<ResourceBundle>::Ref bundle;
|
|
||||||
try {
|
|
||||||
bundle = gLiveSupport->getBundle("schedulePlaylistWindow");
|
|
||||||
} catch (std::invalid_argument &e) {
|
|
||||||
std::cerr << e.what() << std::endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ptr<SchedulePlaylistWindow>::Ref scheduleWindow;
|
|
||||||
scheduleWindow.reset(new SchedulePlaylistWindow(gLiveSupport,
|
|
||||||
bundle,
|
|
||||||
playlist));
|
|
||||||
|
|
||||||
Gtk::Main::run(*scheduleWindow);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ptr<Playlist>::Ref playlist = storage->getPlaylist(sessionId, uid);
|
||||||
|
|
||||||
|
Ptr<ResourceBundle>::Ref bundle;
|
||||||
|
try {
|
||||||
|
bundle = gLiveSupport->getBundle("schedulePlaylistWindow");
|
||||||
|
} catch (std::invalid_argument &e) {
|
||||||
|
std::cerr << e.what() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ptr<SchedulePlaylistWindow>::Ref scheduleWindow;
|
||||||
|
scheduleWindow.reset(new SchedulePlaylistWindow(gLiveSupport,
|
||||||
|
bundle,
|
||||||
|
playlist));
|
||||||
|
|
||||||
|
Gtk::Main::run(*scheduleWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -583,16 +583,7 @@ ScratchpadWindow :: onSchedulePlaylist(void) throw ()
|
||||||
void
|
void
|
||||||
ScratchpadWindow :: onAddToLiveMode(void) throw ()
|
ScratchpadWindow :: onAddToLiveMode(void) throw ()
|
||||||
{
|
{
|
||||||
Glib::RefPtr<Gtk::TreeView::Selection> refSelection =
|
Ptr<Playable>::Ref playable = currentRow[modelColumns.playableColumn];
|
||||||
treeView->get_selection();
|
gLiveSupport->addToLiveMode(playable);
|
||||||
|
|
||||||
if (refSelection) {
|
|
||||||
Gtk::TreeModel::iterator iter = refSelection->get_selected();
|
|
||||||
if (iter) {
|
|
||||||
Ptr<Playable>::Ref playable = (*iter)[modelColumns.playableColumn];
|
|
||||||
|
|
||||||
gLiveSupport->addToLiveMode(playable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.6 $
|
Version : $Revision: 1.7 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/ScratchpadWindow.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -73,7 +73,7 @@ using namespace LiveSupport::Widgets;
|
||||||
* playlists.
|
* playlists.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.6 $
|
* @version $Revision: 1.7 $
|
||||||
*/
|
*/
|
||||||
class ScratchpadWindow : public WhiteWindow,
|
class ScratchpadWindow : public WhiteWindow,
|
||||||
public LocalizedObject
|
public LocalizedObject
|
||||||
|
@ -87,7 +87,7 @@ class ScratchpadWindow : public WhiteWindow,
|
||||||
* Lists one clip per row.
|
* Lists one clip per row.
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.6 $
|
* @version $Revision: 1.7 $
|
||||||
*/
|
*/
|
||||||
class ModelColumns : public PlayableTreeModelColumnRecord
|
class ModelColumns : public PlayableTreeModelColumnRecord
|
||||||
{
|
{
|
||||||
|
@ -113,16 +113,31 @@ class ScratchpadWindow : public WhiteWindow,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The GLiveSupport object, holding the state of the application.
|
|
||||||
*/
|
|
||||||
Ptr<GLiveSupport>::Ref gLiveSupport;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The column model.
|
* The column model.
|
||||||
*/
|
*/
|
||||||
ModelColumns modelColumns;
|
ModelColumns modelColumns;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The tree model, as a GTK reference.
|
||||||
|
*/
|
||||||
|
Glib::RefPtr<Gtk::ListStore> treeModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The tree view, now only showing rows.
|
||||||
|
*/
|
||||||
|
ZebraTreeView * treeView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The model row at the mouse pointer, set by onEntryClicked()
|
||||||
|
*/
|
||||||
|
Gtk::TreeRow currentRow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The GLiveSupport object, holding the state of the application.
|
||||||
|
*/
|
||||||
|
Ptr<GLiveSupport>::Ref gLiveSupport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main container in the window.
|
* The main container in the window.
|
||||||
*/
|
*/
|
||||||
|
@ -133,16 +148,6 @@ class ScratchpadWindow : public WhiteWindow,
|
||||||
*/
|
*/
|
||||||
Gtk::ScrolledWindow scrolledWindow;
|
Gtk::ScrolledWindow scrolledWindow;
|
||||||
|
|
||||||
/**
|
|
||||||
* The tree view, now only showing rows.
|
|
||||||
*/
|
|
||||||
ZebraTreeView * treeView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The tree model, as a GTK reference.
|
|
||||||
*/
|
|
||||||
Glib::RefPtr<Gtk::ListStore> treeModel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The box containing the box containing the audio buttons.
|
* The box containing the box containing the audio buttons.
|
||||||
*/
|
*/
|
||||||
|
@ -153,11 +158,21 @@ class ScratchpadWindow : public WhiteWindow,
|
||||||
*/
|
*/
|
||||||
CuePlayer * audioButtonBox;
|
CuePlayer * audioButtonBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The box containing the close button.
|
||||||
|
*/
|
||||||
|
Gtk::HButtonBox middleButtonBox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The box containing the close button.
|
* The box containing the close button.
|
||||||
*/
|
*/
|
||||||
Gtk::HButtonBox bottomButtonBox;
|
Gtk::HButtonBox bottomButtonBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The "add to playlist" button.
|
||||||
|
*/
|
||||||
|
Button * addToPlaylistButton;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "clear list" button.
|
* The "clear list" button.
|
||||||
*/
|
*/
|
||||||
|
@ -180,12 +195,24 @@ class ScratchpadWindow : public WhiteWindow,
|
||||||
*/
|
*/
|
||||||
Gtk::Menu * playlistMenu;
|
Gtk::Menu * playlistMenu;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signal handler for the add to playlist button clicked.
|
||||||
|
*/
|
||||||
|
virtual void
|
||||||
|
onAddToPlaylistButtonClicked(void) throw ();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal handler for the clear list button clicked.
|
* Signal handler for the clear list button clicked.
|
||||||
*/
|
*/
|
||||||
virtual void
|
virtual void
|
||||||
onClearListButtonClicked(void) throw ();
|
onClearListButtonClicked(void) throw ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signal handler for the remove item button clicked.
|
||||||
|
*/
|
||||||
|
virtual void
|
||||||
|
onRemoveItemButtonClicked(void) throw ();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal handler for the mouse clicked on one of the entries.
|
* Signal handler for the mouse clicked on one of the entries.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8,7 +8,7 @@ hu:table
|
||||||
liveModeButtonLabel:string { "élő adás" }
|
liveModeButtonLabel:string { "élő adás" }
|
||||||
uploadFileButtonLabel:string { "filefeltöltés" }
|
uploadFileButtonLabel:string { "filefeltöltés" }
|
||||||
scratchpadButtonLabel:string { "praktikus csupor" }
|
scratchpadButtonLabel:string { "praktikus csupor" }
|
||||||
simplePlaylistMgmtButtonLabel:string { "playlistkezelés" }
|
simplePlaylistMgmtButtonLabel:string { "műsorkezelés" }
|
||||||
schedulerButtonLabel:string { "időzítő" }
|
schedulerButtonLabel:string { "időzítő" }
|
||||||
searchButtonLabel:string { "keresés" }
|
searchButtonLabel:string { "keresés" }
|
||||||
|
|
||||||
|
@ -42,29 +42,30 @@ hu:table
|
||||||
|
|
||||||
scratchpadWindow:table
|
scratchpadWindow:table
|
||||||
{
|
{
|
||||||
windowTitle:string { "LiveSupport Praktikus csupor" }
|
windowTitle:string { "LiveSupport Praktikus csupor" }
|
||||||
|
|
||||||
typeColumnLabel:string { "típus" }
|
typeColumnLabel:string { "típus" }
|
||||||
titleColumnLabel:string { "cím" }
|
titleColumnLabel:string { "cím" }
|
||||||
clearListButtonLabel:string { "Lista törlése" }
|
createPlaylistButtonLabel:string { "Műsorhoz hozzáadni" }
|
||||||
removeButtonLabel:string { "Kiválasztott törlése" }
|
clearListButtonLabel:string { "Lista törlése" }
|
||||||
|
removeButtonLabel:string { "Kiválasztottak törlése" }
|
||||||
|
|
||||||
upMenuItem:string { "_Fel" }
|
upMenuItem:string { "_Fel" }
|
||||||
downMenuItem:string { "_Le" }
|
downMenuItem:string { "_Le" }
|
||||||
removeMenuItem:string { "_Eltávolítani" }
|
removeMenuItem:string { "_Eltávolítani" }
|
||||||
addToPlaylistMenuItem:string { "Playlisthez _hozzáadni" }
|
addToPlaylistMenuItem:string { "Műsorhoz _hozzáadni" }
|
||||||
schedulePlaylistMenuItem:string { "_Playlist időzítése" }
|
schedulePlaylistMenuItem:string { "_Műsor időzítése" }
|
||||||
deleteMenuItem:string { "_Törölni" }
|
deleteMenuItem:string { "_Törölni" }
|
||||||
cueMenuItem:string { "_Belehallgatni" }
|
cueMenuItem:string { "_Belehallgatni" }
|
||||||
addToLiveModeMenuItem:string { "Élő _adásba" }
|
addToLiveModeMenuItem:string { "Élő _adásba" }
|
||||||
}
|
}
|
||||||
|
|
||||||
playlistListWindow:table
|
playlistListWindow:table
|
||||||
{
|
{
|
||||||
windowTitle:string { "LiveSupport Playlist ablak" }
|
windowTitle:string { "LiveSupport Műsorszerkesztő ablak" }
|
||||||
|
|
||||||
listBoxLabel { "Playlistek" }
|
listBoxLabel { "Műsorok" }
|
||||||
detailBoxLabel { "Playlist részletek" }
|
detailBoxLabel { "Műsor adatai" }
|
||||||
|
|
||||||
idColumnLabel:string { "azonosító" }
|
idColumnLabel:string { "azonosító" }
|
||||||
lengthColumnLabel:string { "hossz" }
|
lengthColumnLabel:string { "hossz" }
|
||||||
|
@ -98,7 +99,7 @@ hu:table
|
||||||
|
|
||||||
simplePlaylistManagementWindow:table
|
simplePlaylistManagementWindow:table
|
||||||
{
|
{
|
||||||
windowTitle:string { "LiveSupport Egyszerű playlistszerkesztő ablak" }
|
windowTitle:string { "LiveSupport Egyszerű műsorszerkesztő ablak" }
|
||||||
|
|
||||||
startColumnLabel:string { "kezdet" }
|
startColumnLabel:string { "kezdet" }
|
||||||
titleColumnLabel:string { "cím" }
|
titleColumnLabel:string { "cím" }
|
||||||
|
@ -107,7 +108,7 @@ hu:table
|
||||||
saveButtonLabel:string { "elment" }
|
saveButtonLabel:string { "elment" }
|
||||||
closeButtonLabel:string { "bezár" }
|
closeButtonLabel:string { "bezár" }
|
||||||
statusBar:string { "állapotsor" }
|
statusBar:string { "állapotsor" }
|
||||||
playlistSavedMessage:string { "playlist {0} elmentve" }
|
playlistSavedMessage:string { "a {0} műsor elmentve" }
|
||||||
}
|
}
|
||||||
|
|
||||||
schedulerWindow:table
|
schedulerWindow:table
|
||||||
|
@ -124,7 +125,7 @@ hu:table
|
||||||
|
|
||||||
schedulePlaylistWindow:table
|
schedulePlaylistWindow:table
|
||||||
{
|
{
|
||||||
windowTitle:string { "LiveSupport Playlist Időzítő Ablak" }
|
windowTitle:string { "LiveSupport Műsoridőzítő ablak" }
|
||||||
|
|
||||||
hourLabel:string { "óra: " }
|
hourLabel:string { "óra: " }
|
||||||
minuteLabel:string { "perc: " }
|
minuteLabel:string { "perc: " }
|
||||||
|
|
|
@ -43,21 +43,22 @@ root:table
|
||||||
|
|
||||||
scratchpadWindow:table
|
scratchpadWindow:table
|
||||||
{
|
{
|
||||||
windowTitle:string { "LiveSupport Scratchpad" }
|
windowTitle:string { "LiveSupport Scratchpad" }
|
||||||
|
|
||||||
typeColumnLabel:string { "type" }
|
typeColumnLabel:string { "type" }
|
||||||
titleColumnLabel:string { "title" }
|
titleColumnLabel:string { "title" }
|
||||||
clearListButtonLabel:string { "Clear List" }
|
addToPlaylistButtonLabel:string { "Add to playlist" }
|
||||||
removeButtonLabel:string { "Remove Item" }
|
clearListButtonLabel:string { "Clear list" }
|
||||||
|
removeButtonLabel:string { "Remove item(s)" }
|
||||||
|
|
||||||
upMenuItem:string { "Move _Up" }
|
upMenuItem:string { "Move _Up" }
|
||||||
downMenuItem:string { "Move D_own" }
|
downMenuItem:string { "Move D_own" }
|
||||||
removeMenuItem:string { "_Remove" }
|
removeMenuItem:string { "_Remove" }
|
||||||
addToPlaylistMenuItem:string { "_Add To Playlist" }
|
addToPlaylistMenuItem:string { "_Add To Playlist" }
|
||||||
schedulePlaylistMenuItem:string { "_Schedule Playlist" }
|
schedulePlaylistMenuItem:string { "_Schedule Playlist" }
|
||||||
deleteMenuItem:string { "_Delete" }
|
deleteMenuItem:string { "_Delete" }
|
||||||
cueMenuItem:string { "Pre_view" }
|
cueMenuItem:string { "Pre_view" }
|
||||||
addToLiveModeMenuItem:string { "Add To _Live Mode" }
|
addToLiveModeMenuItem:string { "Add To _Live Mode" }
|
||||||
}
|
}
|
||||||
|
|
||||||
playlistListWindow:table
|
playlistListWindow:table
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue