mirror of https://gitee.com/openkylin/peony.git
修复多个预览插件切换目录时会相互影响的问题
This commit is contained in:
parent
1b76374844
commit
2da8319656
|
@ -175,7 +175,16 @@ TabWidget::TabWidget(QWidget *parent) : QMainWindow(parent)
|
|||
auto plugin = Peony::PreviewPageFactoryManager::getInstance()->getPlugin(id);
|
||||
setPreviewPage(plugin->createPreviewPage());
|
||||
} else {
|
||||
setPreviewPage(nullptr);
|
||||
bool isSetPreviewPageNull = true;
|
||||
for(auto action : m_preview_action_group->actions()){
|
||||
if(action->isChecked() && action->isVisible()){
|
||||
isSetPreviewPageNull = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(isSetPreviewPageNull){
|
||||
setPreviewPage(nullptr);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -259,6 +268,7 @@ TabWidget::TabWidget(QWidget *parent) : QMainWindow(parent)
|
|||
});
|
||||
}
|
||||
previewButtons->addActions(group->actions());
|
||||
m_preview_action_group = group;
|
||||
for (auto action : group->actions()) {
|
||||
auto button = qobject_cast<QToolButton *>(previewButtons->widgetForAction(action));
|
||||
button->setFixedSize(26, 26);
|
||||
|
@ -792,19 +802,23 @@ void TabWidget::updatePreviewPageVisible()
|
|||
{
|
||||
auto currentUri = getCurrentUri();
|
||||
if(currentUri.startsWith("computer://")){
|
||||
m_preview_action->setVisible(false);
|
||||
m_preview_action_group->setVisible(false);
|
||||
}else{
|
||||
m_preview_action->setVisible(true);
|
||||
m_preview_action_group->setVisible(true);
|
||||
}
|
||||
|
||||
auto manager = Peony::PreviewPageFactoryManager::getInstance();
|
||||
auto pluginNames = manager->getPluginNames();
|
||||
for (auto name : pluginNames) {
|
||||
auto factory = manager->getPlugin(name);
|
||||
if(m_preview_action->isChecked() && m_preview_action->isVisible()){
|
||||
Q_EMIT m_buttons->previewPageButtonTrigger(true, factory->name());
|
||||
}else{
|
||||
Q_EMIT m_buttons->previewPageButtonTrigger(false, factory->name());
|
||||
for (auto action : m_preview_action_group->actions()){
|
||||
if(!action->text().compare(name)){
|
||||
if(action->isChecked() && action->isVisible()){
|
||||
Q_EMIT m_buttons->previewPageButtonTrigger(true, factory->name());
|
||||
}else{
|
||||
Q_EMIT m_buttons->previewPageButtonTrigger(false, factory->name());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <QList>
|
||||
#include <QLineEdit>
|
||||
#include <QSignalMapper>
|
||||
#include <QActionGroup>
|
||||
#include "navigation-tab-bar.h"
|
||||
#include "file-info.h"
|
||||
#include "tab-status-bar.h"
|
||||
|
@ -225,6 +226,7 @@ private:
|
|||
|
||||
QAction *m_current_preview_action = nullptr;
|
||||
QAction *m_preview_action = nullptr;
|
||||
QActionGroup *m_preview_action_group = nullptr;
|
||||
|
||||
QToolBar *m_trash_bar;
|
||||
QToolBar *m_search_bar;
|
||||
|
|
Loading…
Reference in New Issue