Working changes on editor.

This commit is contained in:
Martin Rotter 2015-05-06 08:25:07 +02:00
parent 9156bd73a7
commit 5245c74c69
3 changed files with 143 additions and 26 deletions

View File

@ -28,6 +28,17 @@ ToolBarEditor::ToolBarEditor(QWidget *parent)
// Create connections.
connect(m_ui->m_btnInsertSeparator, SIGNAL(clicked()), this, SLOT(insertSeparator()));
connect(m_ui->m_btnInsertSpacer, SIGNAL(clicked()), this, SLOT(insertSpacer()));
connect(m_ui->m_btnAddSelectedAction, SIGNAL(clicked()), this, SLOT(addSelectedAction()));
connect(m_ui->m_btnDeleteAllActions, SIGNAL(clicked()), this, SLOT(deleteAllActions()));
connect(m_ui->m_btnDeleteSelectedAction, SIGNAL(clicked()), this, SLOT(deleteSelectedAction()));
connect(m_ui->m_btnMoveActionUp, SIGNAL(clicked()), this, SLOT(moveActionUp()));
connect(m_ui->m_btnMoveActionDown, SIGNAL(clicked()), this, SLOT(moveActionDown()));
connect(m_ui->m_listAvailableActions, SIGNAL(itemSelectionChanged()),
this, SLOT(updateActionsAvailability()));
connect(m_ui->m_listActivatedActions, SIGNAL(itemSelectionChanged()),
this, SLOT(updateActionsAvailability()));
}
ToolBarEditor::~ToolBarEditor() {
@ -85,6 +96,8 @@ void ToolBarEditor::loadFromToolBar(BaseToolBar *tool_bar) {
}
}
}
updateActionsAvailability();
}
void ToolBarEditor::saveToolBar() {
@ -97,6 +110,16 @@ void ToolBarEditor::saveToolBar() {
m_toolBar->saveChangeableActions(action_names);
}
void ToolBarEditor::updateActionsAvailability() {
m_ui->m_btnDeleteAllActions->setEnabled(m_ui->m_listActivatedActions->count() > 0);
m_ui->m_btnDeleteSelectedAction->setEnabled(m_ui->m_listActivatedActions->selectedItems().size() == 1);
m_ui->m_btnMoveActionUp->setEnabled(m_ui->m_listActivatedActions->selectedItems().size() == 1 &&
m_ui->m_listActivatedActions->currentRow() > 0);
m_ui->m_btnMoveActionDown->setEnabled(m_ui->m_listActivatedActions->selectedItems().size() == 1 &&
m_ui->m_listActivatedActions->currentRow() < m_ui->m_listActivatedActions->count() - 1);
m_ui->m_btnAddSelectedAction->setEnabled(m_ui->m_listAvailableActions->selectedItems().size() > 0);
}
void ToolBarEditor::insertSpacer() {
int current_row = m_ui->m_listActivatedActions->currentRow();
@ -110,6 +133,8 @@ void ToolBarEditor::insertSpacer() {
else {
m_ui->m_listActivatedActions->addItem(item);
}
updateActionsAvailability();
}
void ToolBarEditor::insertSeparator() {
@ -126,4 +151,62 @@ void ToolBarEditor::insertSeparator() {
else {
m_ui->m_listActivatedActions->addItem(item);
}
updateActionsAvailability();
}
void ToolBarEditor::moveActionDown() {
QList<QListWidgetItem*> items = m_ui->m_listActivatedActions->selectedItems();
if (items.size() == 1 && m_ui->m_listActivatedActions->currentRow() < m_ui->m_listActivatedActions->count() - 1) {
QListWidgetItem *selected_item = items.at(0);
int row = m_ui->m_listActivatedActions->row(selected_item);
m_ui->m_listActivatedActions->takeItem(row++);
m_ui->m_listActivatedActions->insertItem(row, selected_item);
m_ui->m_listActivatedActions->setCurrentRow(row);
}
}
void ToolBarEditor::moveActionUp() {
QList<QListWidgetItem*> items = m_ui->m_listActivatedActions->selectedItems();
if (items.size() == 1 && m_ui->m_listActivatedActions->currentRow() > 0) {
QListWidgetItem *selected_item = items.at(0);
int row = m_ui->m_listActivatedActions->row(selected_item);
m_ui->m_listActivatedActions->takeItem(row--);
m_ui->m_listActivatedActions->insertItem(row, selected_item);
m_ui->m_listActivatedActions->setCurrentRow(row);
}
}
void ToolBarEditor::addSelectedAction() {
QList<QListWidgetItem*> items = m_ui->m_listAvailableActions->selectedItems();
if (items.size() == 1) {
QListWidgetItem *selected_item = items.at(0);
m_ui->m_listActivatedActions->insertItem(
m_ui->m_listActivatedActions->currentRow() + 1,
m_ui->m_listAvailableActions->takeItem(m_ui->m_listAvailableActions->row(selected_item)));
m_ui->m_listActivatedActions->setCurrentRow(m_ui->m_listActivatedActions->currentRow() + 1);
}
}
void ToolBarEditor::deleteSelectedAction() {
QList<QListWidgetItem*> items = m_ui->m_listActivatedActions->selectedItems();
if (items.size() == 1) {
QListWidgetItem *selected_item = items.at(0);
m_ui->m_listAvailableActions->insertItem(
m_ui->m_listAvailableActions->currentRow() + 1,
m_ui->m_listActivatedActions->takeItem(m_ui->m_listActivatedActions->row(selected_item)));
m_ui->m_listAvailableActions->setCurrentRow(m_ui->m_listAvailableActions->currentRow() + 1);
}
}
void ToolBarEditor::deleteAllActions() {
}

View File

@ -50,10 +50,19 @@ class ToolBarEditor : public QWidget {
}
private slots:
void updateActionsAvailability();
// Insert common controls.
void insertSpacer();
void insertSeparator();
void moveActionDown();
void moveActionUp();
void addSelectedAction();
void deleteSelectedAction();
void deleteAllActions();
private:
Ui::ToolBarEditor *m_ui;
BaseToolBar *m_toolBar;

View File

@ -27,14 +27,14 @@
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<widget class="QLabel" name="m_lblActivatedActions">
<property name="text">
<string>Activated actions</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<widget class="QLabel" name="m_lblAvailableActions">
<property name="text">
<string>Available actions</string>
</property>
@ -48,18 +48,6 @@
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragDrop</enum>
</property>
<property name="defaultDropAction">
<enum>Qt::MoveAction</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
@ -76,6 +64,27 @@
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="m_btnMoveActionUp">
<property name="text">
<string>Move action up</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnMoveActionDown">
<property name="text">
<string>Move action down</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnInsertSeparator">
<property name="text">
@ -90,6 +99,34 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnAddSelectedAction">
<property name="text">
<string>Add selected action</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnDeleteSelectedAction">
<property name="text">
<string>Delete selected action</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_btnDeleteAllActions">
<property name="text">
<string>Delete all actions</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
@ -113,18 +150,6 @@
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="showDropIndicator" stdset="0">
<bool>true</bool>
</property>
<property name="dragEnabled">
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragDrop</enum>
</property>
<property name="defaultDropAction">
<enum>Qt::MoveAction</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>