From 2541701f0db4f11ce92271d67b4d8890606de041 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Tue, 23 Sep 2014 20:49:49 +0200 Subject: [PATCH] Add a Clone button to create the 'same' Event just after the selected one --- rdlogmanager/edit_clock.cpp | 48 ++++++++++++++++++++++++++++++++++--- rdlogmanager/edit_clock.h | 1 + 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/rdlogmanager/edit_clock.cpp b/rdlogmanager/edit_clock.cpp index 4d4baf9d..14421ba6 100644 --- a/rdlogmanager/edit_clock.cpp +++ b/rdlogmanager/edit_clock.cpp @@ -123,16 +123,25 @@ EditClock::EditClock(QString clockname,bool new_clock, // Add Button // QPushButton *button=new QPushButton(this,"add_button"); - button->setGeometry(70,sizeHint().height()-210,80,50); + button->setGeometry(10,sizeHint().height()-210,80,50); button->setFont(bold_font); button->setText(tr("&Add")); connect(button,SIGNAL(clicked()),this,SLOT(addData())); + // + // Clone Button + // + button=new QPushButton(this,"clone_button"); + button->setGeometry(110,sizeHint().height()-210,80,50); + button->setFont(bold_font); + button->setText(tr("&Clone")); + connect(button,SIGNAL(clicked()),this,SLOT(cloneData())); + // // Edit Button // button=new QPushButton(this,"edit_button"); - button->setGeometry(160,sizeHint().height()-210,80,50); + button->setGeometry(210,sizeHint().height()-210,80,50); button->setFont(bold_font); button->setText(tr("&Edit")); connect(button,SIGNAL(clicked()),this,SLOT(editData())); @@ -141,7 +150,7 @@ EditClock::EditClock(QString clockname,bool new_clock, // Delete Button // button=new QPushButton(this,"delete_button"); - button->setGeometry(250,sizeHint().height()-210,80,50); + button->setGeometry(310,sizeHint().height()-210,80,50); button->setFont(bold_font); button->setText(tr("&Delete")); connect(button,SIGNAL(clicked()),this,SLOT(deleteData())); @@ -330,6 +339,39 @@ void EditClock::editData() RefreshList(); } +void EditClock::cloneData() +{ + RDListViewItem *item=(RDListViewItem *)edit_clocks_list->selectedItem(); + if(item==NULL) { + return; + } + if(item->text(4).isEmpty()) { + return; + } + int line=item->text(4).toInt(); + line=item->text(4).toInt(); + + RDEventLine *selectedEventLine = edit_clock->eventLine(line); + + RDEventLine eventline; + eventline.setName(selectedEventLine->name()); + eventline.setStartTime(selectedEventLine->startTime().addMSecs(selectedEventLine->length())); + eventline.setLength(selectedEventLine->length()); + + EditEventLine *edit_eventline=new EditEventLine(&eventline,edit_clock,-1, + this,"edit_eventline"); + if(edit_eventline->exec()<0) { + delete edit_eventline; + return; + } + delete edit_eventline; + edit_clock->insert(eventline.name(),line); + edit_clock->eventLine(line)->setStartTime(eventline.startTime()); + edit_clock->eventLine(line)->setLength(eventline.length()); + edit_clock->eventLine(line)->load(); + edit_modified=true; + RefreshList(line); +} void EditClock::deleteData() { diff --git a/rdlogmanager/edit_clock.h b/rdlogmanager/edit_clock.h index 96baf8c8..c88d4b8b 100644 --- a/rdlogmanager/edit_clock.h +++ b/rdlogmanager/edit_clock.h @@ -57,6 +57,7 @@ class EditClock : public QDialog private slots: void selectionChangedData(QListViewItem *); void addData(); + void cloneData(); void editData(); void deleteData(); void svcData();