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. // Create connections.
connect(m_ui->m_btnInsertSeparator, SIGNAL(clicked()), this, SLOT(insertSeparator())); connect(m_ui->m_btnInsertSeparator, SIGNAL(clicked()), this, SLOT(insertSeparator()));
connect(m_ui->m_btnInsertSpacer, SIGNAL(clicked()), this, SLOT(insertSpacer())); 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() { ToolBarEditor::~ToolBarEditor() {
@ -85,6 +96,8 @@ void ToolBarEditor::loadFromToolBar(BaseToolBar *tool_bar) {
} }
} }
} }
updateActionsAvailability();
} }
void ToolBarEditor::saveToolBar() { void ToolBarEditor::saveToolBar() {
@ -97,6 +110,16 @@ void ToolBarEditor::saveToolBar() {
m_toolBar->saveChangeableActions(action_names); 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() { void ToolBarEditor::insertSpacer() {
int current_row = m_ui->m_listActivatedActions->currentRow(); int current_row = m_ui->m_listActivatedActions->currentRow();
@ -110,6 +133,8 @@ void ToolBarEditor::insertSpacer() {
else { else {
m_ui->m_listActivatedActions->addItem(item); m_ui->m_listActivatedActions->addItem(item);
} }
updateActionsAvailability();
} }
void ToolBarEditor::insertSeparator() { void ToolBarEditor::insertSeparator() {
@ -126,4 +151,62 @@ void ToolBarEditor::insertSeparator() {
else { else {
m_ui->m_listActivatedActions->addItem(item); 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: private slots:
void updateActionsAvailability();
// Insert common controls. // Insert common controls.
void insertSpacer(); void insertSpacer();
void insertSeparator(); void insertSeparator();
void moveActionDown();
void moveActionUp();
void addSelectedAction();
void deleteSelectedAction();
void deleteAllActions();
private: private:
Ui::ToolBarEditor *m_ui; Ui::ToolBarEditor *m_ui;
BaseToolBar *m_toolBar; BaseToolBar *m_toolBar;

View file

@ -27,14 +27,14 @@
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label"> <widget class="QLabel" name="m_lblActivatedActions">
<property name="text"> <property name="text">
<string>Activated actions</string> <string>Activated actions</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="0" column="2">
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="m_lblAvailableActions">
<property name="text"> <property name="text">
<string>Available actions</string> <string>Available actions</string>
</property> </property>
@ -48,18 +48,6 @@
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::NoEditTriggers</set>
</property> </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"> <property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum> <enum>QAbstractItemView::SelectRows</enum>
</property> </property>
@ -76,6 +64,27 @@
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout"> <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> <item>
<widget class="QPushButton" name="m_btnInsertSeparator"> <widget class="QPushButton" name="m_btnInsertSeparator">
<property name="text"> <property name="text">
@ -90,6 +99,34 @@
</property> </property>
</widget> </widget>
</item> </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> <item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
@ -113,18 +150,6 @@
<property name="editTriggers"> <property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set> <set>QAbstractItemView::NoEditTriggers</set>
</property> </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"> <property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum> <enum>QAbstractItemView::SelectRows</enum>
</property> </property>