Index: src/audio_engine/Channel.cpp =================================================================== RCS file: /cvsroot/slag/slag/src/audio_engine/Channel.cpp,v retrieving revision 1.8 diff -u -r1.8 Channel.cpp --- src/audio_engine/Channel.cpp 8 Apr 2005 21:29:28 -0000 1.8 +++ src/audio_engine/Channel.cpp 17 Apr 2005 15:00:08 -0000 @@ -85,7 +85,10 @@ } QString Channel::getName() { - if (audiofile != NULL) { + if (name != NULL && name != "new channel") { + return name; + } + if (audiofile != NULL ) { QString filename = audiofile->name; QRegExp regex( "(.*/|.wav)" ); filename.replace(regex, ""); Index: src/gui/MainWidget.cpp =================================================================== RCS file: /cvsroot/slag/slag/src/gui/MainWidget.cpp,v retrieving revision 1.13 diff -u -r1.13 MainWidget.cpp --- src/gui/MainWidget.cpp 28 Mar 2005 12:37:36 -0000 1.13 +++ src/gui/MainWidget.cpp 17 Apr 2005 15:00:08 -0000 @@ -100,6 +100,11 @@ this, SIGNAL(channelMovedDown(Channel*))); connect(this, SIGNAL(channelMovedDown(Channel*)), stacked_widget, SLOT(moveDownChannel(Channel*))); + + connect(stacked_widget, SIGNAL(channelRename(Channel*)), + this, SIGNAL(channelRename(Channel*))); + connect(this, SIGNAL(channelRename(Channel*)), + stacked_widget, SLOT(renameChannel(Channel*))); } } Index: src/gui/MainWidget.h =================================================================== RCS file: /cvsroot/slag/slag/src/gui/MainWidget.h,v retrieving revision 1.13 diff -u -r1.13 MainWidget.h --- src/gui/MainWidget.h 28 Mar 2005 12:37:36 -0000 1.13 +++ src/gui/MainWidget.h 17 Apr 2005 15:00:08 -0000 @@ -56,6 +56,7 @@ signals: void channelMovedUp(Channel*); void channelMovedDown(Channel*); + void channelRename(Channel*); void partAdded(Part*); void save(); }; Index: src/gui/PatternWidget.h =================================================================== RCS file: /cvsroot/slag/slag/src/gui/PatternWidget.h,v retrieving revision 1.16 diff -u -r1.16 PatternWidget.h --- src/gui/PatternWidget.h 7 Apr 2005 19:26:33 -0000 1.16 +++ src/gui/PatternWidget.h 17 Apr 2005 15:00:08 -0000 @@ -62,9 +62,11 @@ void deleteChannel(Channel*); void moveUpChannel(Channel*); void moveDownChannel(Channel*); + void renameChannel(Channel*); signals: void channelMovedUp(Channel*); void channelMovedDown(Channel*); + void channelRename(Channel*); }; typedef QPair EditFeature; @@ -121,6 +123,7 @@ class ChannelMenu : public QPopupMenu { Q_OBJECT Channel* channel; + bool askForChannelName(QString&); public: ChannelMenu(QWidget*, Channel*); public slots: @@ -128,10 +131,12 @@ void deleteChannel(); void moveUpChannel(); void moveDownChannel(); + void renameChannel(); signals: void deleteChannel(Channel*); void moveUpChannel(Channel*); void moveDownChannel(Channel*); + void renameChannel(Channel*); }; class NamedButton : public QPushButton { Index: src/gui/PatternWidget.cpp =================================================================== RCS file: /cvsroot/slag/slag/src/gui/PatternWidget.cpp,v retrieving revision 1.23 diff -u -r1.23 PatternWidget.cpp --- src/gui/PatternWidget.cpp 8 Apr 2005 21:29:36 -0000 1.23 +++ src/gui/PatternWidget.cpp 17 Apr 2005 15:00:09 -0000 @@ -98,6 +98,11 @@ vertical_layout->insertWidget(++row->row_index, row); } +void PatternWidget::renameChannel(Channel* channel) { + GuiRow* row = chan_row_map[channel]; + row->channel_but->setText(channel->name); +} + NamedButton::NamedButton(QString name_param, QWidget* parent_param) : QPushButton(name_param, parent_param), name(name_param) {} @@ -150,6 +155,8 @@ connect(channel_menu, SIGNAL(moveDownChannel(Channel*)), parent, SIGNAL(channelMovedDown(Channel*))); + connect(channel_menu, SIGNAL(renameChannel(Channel*)), + parent, SIGNAL(channelRename(Channel*))); QSlider* vol_slider = new QSlider(0, 100, 1, 100, Qt::Horizontal, this); vol_slider->setFixedWidth(100); @@ -395,6 +402,7 @@ insertItem("Move up", this, SLOT(moveUpChannel())); insertItem("Move down", this, SLOT(moveDownChannel())); insertItem("Delete channel", this, SLOT(deleteChannel())); + insertItem("Rename Channel", this, SLOT(renameChannel())); } void ChannelMenu::deleteChannel() { @@ -419,6 +427,28 @@ "Choose a file" ); if (s != "") channel->setFile(s); + channel->name = channel->getName(); + emit renameChannel(channel); +} + +bool ChannelMenu::askForChannelName(QString& channel_name) { + bool ok; + channel_name = QInputDialog::getText("Give this channel a new name", + "Name of this channel :", QLineEdit::Normal, QString::null, + &ok, this ); + // Si le user a cliqué ok sans rien mettre, on renvoie le popup + if (ok && channel_name.isEmpty()) + ok = askForChannelName(channel_name); + return ok; +} + +void ChannelMenu::renameChannel() { + QString new_chan_name; + + if (askForChannelName(new_chan_name)) { + channel->name = new_chan_name; + emit renameChannel(channel); + } } //EOF