Ability to reset toolbars.

This commit is contained in:
Martin Rotter 2017-06-16 12:54:37 +02:00
parent 972dd86d4c
commit a159d8cf62
5 changed files with 55 additions and 25 deletions

View File

@ -2,6 +2,7 @@
—————
Added:
▪ Toolbar editor can reset toolbars.
▪ Toolbar editor now uses iconified tool buttons.
▪ Double mouse click on feed or recycle bin items in feeds list now opens all messages of the item in newspaper mode.
▪ Columns in message list can be hidden/shown/reordered with context menu. (issue #115)

View File

@ -200,6 +200,10 @@ void StatusBar::loadSpecificActions(const QList<QAction*> &actions) {
}
}
removeWidget(m_barProgressDownload);
removeWidget(m_barProgressFeeds);
removeWidget(m_lblProgressDownload);
removeWidget(m_lblProgressFeeds);
clear();
foreach (QAction *act, actions) {

View File

@ -28,14 +28,15 @@ ToolBarEditor::ToolBarEditor(QWidget *parent)
m_ui->setupUi(this);
// Create connections.
connect(m_ui->m_btnInsertSeparator, &QPushButton::clicked, this, &ToolBarEditor::insertSeparator);
connect(m_ui->m_btnInsertSpacer, &QPushButton::clicked, this, &ToolBarEditor::insertSpacer);
connect(m_ui->m_btnInsertSeparator, &QToolButton::clicked, this, &ToolBarEditor::insertSeparator);
connect(m_ui->m_btnInsertSpacer, &QToolButton::clicked, this, &ToolBarEditor::insertSpacer);
connect(m_ui->m_btnAddSelectedAction, &QPushButton::clicked, this, &ToolBarEditor::addSelectedAction);
connect(m_ui->m_btnDeleteAllActions, &QPushButton::clicked, this, &ToolBarEditor::deleteAllActions);
connect(m_ui->m_btnDeleteSelectedAction, &QPushButton::clicked, this, &ToolBarEditor::deleteSelectedAction);
connect(m_ui->m_btnMoveActionUp, &QPushButton::clicked, this, &ToolBarEditor::moveActionUp);
connect(m_ui->m_btnMoveActionDown, &QPushButton::clicked, this, &ToolBarEditor::moveActionDown);
connect(m_ui->m_btnAddSelectedAction, &QToolButton::clicked, this, &ToolBarEditor::addSelectedAction);
connect(m_ui->m_btnDeleteAllActions, &QToolButton::clicked, this, &ToolBarEditor::deleteAllActions);
connect(m_ui->m_btnDeleteSelectedAction, &QToolButton::clicked, this, &ToolBarEditor::deleteSelectedAction);
connect(m_ui->m_btnMoveActionUp, &QToolButton::clicked, this, &ToolBarEditor::moveActionUp);
connect(m_ui->m_btnMoveActionDown, &QToolButton::clicked, this, &ToolBarEditor::moveActionDown);
connect(m_ui->m_btnReset, &QToolButton::clicked, this, &ToolBarEditor::resetToolBar);
connect(m_ui->m_listAvailableActions, &QListWidget::itemSelectionChanged, this, &ToolBarEditor::updateActionsAvailability);
connect(m_ui->m_listActivatedActions, &QListWidget::itemSelectionChanged, this, &ToolBarEditor::updateActionsAvailability);
@ -51,6 +52,7 @@ ToolBarEditor::ToolBarEditor(QWidget *parent)
m_ui->m_btnDeleteSelectedAction->setIcon(qApp->icons()->fromTheme(QSL("forward")));
m_ui->m_btnMoveActionDown->setIcon(qApp->icons()->fromTheme(QSL("down")));
m_ui->m_btnMoveActionUp->setIcon(qApp->icons()->fromTheme(QSL("up")));
m_ui->m_btnReset->setIcon(qApp->icons()->fromTheme(QSL("reload")));
}
ToolBarEditor::~ToolBarEditor() {
@ -63,6 +65,29 @@ void ToolBarEditor::loadFromToolBar(BaseBar *tool_bar) {
QList<QAction*> activated_actions = m_toolBar->changeableActions();
QList<QAction*> available_actions = m_toolBar->availableActions();
loadEditor(activated_actions, available_actions);
}
void ToolBarEditor::saveToolBar() {
QStringList action_names;
for (int i = 0; i < m_ui->m_listActivatedActions->count(); i++) {
action_names.append(m_ui->m_listActivatedActions->item(i)->data(Qt::UserRole).toString());
}
m_toolBar->saveChangeableActions(action_names);
}
void ToolBarEditor::resetToolBar() {
if (m_toolBar != nullptr) {
loadEditor(m_toolBar->getSpecificActions(m_toolBar->defaultActions()), m_toolBar->availableActions());
}
}
void ToolBarEditor::loadEditor(const QList<QAction *> activated_actions, const QList<QAction *> available_actions) {
m_ui->m_listActivatedActions->clear();
m_ui->m_listAvailableActions->clear();
foreach (const QAction *action, activated_actions) {
QListWidgetItem *action_item = new QListWidgetItem(action->icon(), action->text().replace('&', ""), m_ui->m_listActivatedActions);
@ -106,26 +131,10 @@ void ToolBarEditor::loadFromToolBar(BaseBar *tool_bar) {
}
m_ui->m_listAvailableActions->sortItems(Qt::AscendingOrder);
m_ui->m_listAvailableActions->setCurrentRow(0);
m_ui->m_listAvailableActions->setCurrentRow(m_ui->m_listAvailableActions->count() >= 0 ? 0 : -1);
m_ui->m_listActivatedActions->setCurrentRow(m_ui->m_listActivatedActions->count() >= 0 ? 0 : -1);
}
void ToolBarEditor::saveToolBar() {
QStringList action_names;
for (int i = 0; i < m_ui->m_listActivatedActions->count(); i++) {
action_names.append(m_ui->m_listActivatedActions->item(i)->data(Qt::UserRole).toString());
}
m_toolBar->saveChangeableActions(action_names);
}
void ToolBarEditor::resetToolBar() {
if (m_toolBar != nullptr) {
}
}
bool ToolBarEditor::eventFilter(QObject *object, QEvent *event) {
if (object == m_ui->m_listActivatedActions) {
if (event->type() == QEvent::KeyPress) {

View File

@ -40,7 +40,6 @@ class ToolBarEditor : public QWidget {
// Toolbar operations.
void loadFromToolBar(BaseBar *tool_bar);
void saveToolBar();
void resetToolBar();
inline QListWidget *activeItemsWidget() const {
return m_ui->m_listActivatedActions;
@ -67,10 +66,14 @@ class ToolBarEditor : public QWidget {
void deleteSelectedAction();
void deleteAllActions();
void resetToolBar();
signals:
void setupChanged();
private:
void loadEditor(const QList<QAction*> activated_actions, const QList<QAction*> available_actions);
QScopedPointer<Ui::ToolBarEditor> m_ui;
BaseBar *m_toolBar;
};

View File

@ -172,6 +172,19 @@
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="m_btnReset">
<property name="toolTip">
<string>Reset toolbar</string>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">