|
3 | 3 | #include <QApplication> |
4 | 4 | #include <QDialog> |
5 | 5 | #include <QDir> |
| 6 | +#include <QDoubleSpinBox> |
6 | 7 | #include <QHBoxLayout> |
| 8 | +#include <QInputDialog> |
7 | 9 | #include <QLabel> |
8 | 10 | #include <QList> |
9 | 11 | #include <QMenu> |
@@ -36,8 +38,6 @@ PicFlowView::PicFlowView(QObject* const parent) |
36 | 38 |
|
37 | 39 | scrollWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
38 | 40 | scrollWidget->setWidget(box); |
39 | | - // 设置图片的理想宽度 |
40 | | - content_->setWidgetWidth(300); |
41 | 41 | } |
42 | 42 |
|
43 | 43 | PicFlowView::~PicFlowView() noexcept { |
@@ -89,21 +89,29 @@ void PicFlowView::setup(QObject* const parent) { |
89 | 89 | ac->setObjectName(QLatin1String("PiclLowView")); |
90 | 90 | ac->setActionCategory(DPluginAction::ActionCategory::GenericView); |
91 | 91 | ac->setText("PicFlowView"); |
| 92 | + // 添加菜单项 |
| 93 | + auto setting = new QMenu; |
| 94 | + auto widthAction = setting->addAction(tr("设置参考宽度")); |
| 95 | + widthAction->setWhatsThis(tr("设置图片的参考宽度,图片的宽度会在更<b>倾向于</b>选择此宽度")); |
| 96 | + // 添加设置 |
| 97 | + connect(widthAction, &QAction::triggered, [this]() { |
| 98 | + bool ok = false; |
| 99 | + auto result = QInputDialog::getDouble(nullptr, tr("输入参考宽度"), tr("参考宽度"), 300, 10, 9999, 1, &ok); |
| 100 | + if(ok) this->width_ = result; |
| 101 | + }); |
| 102 | + ac->setMenu(setting); |
92 | 103 | connect(ac, &DPluginAction::triggered, this, &PicFlowView::flowView); |
93 | 104 | addAction(ac); |
94 | | - |
95 | 105 | } |
96 | 106 |
|
97 | 107 | void PicFlowView::flowView() { |
98 | 108 | auto* const iface = infoIface(sender()); |
99 | | - // 首先清空容器内 |
100 | | - if(content_){ |
101 | | - auto parent = content_->parentWidget(); |
102 | | - parent->setLayout(nullptr); |
103 | | - delete content_; |
104 | | - content_ = new Z::FlowLayout; |
105 | | - content_->setWidgetWidth(300); |
106 | | - parent->setLayout(content_); |
| 109 | + // 设置图片的参考宽度 |
| 110 | + content_->setWidgetWidth(width_); |
| 111 | + // 首先清空容器内的元素 |
| 112 | + while(content_->list().length()) { |
| 113 | + // 若容器内的元素不为零 |
| 114 | + content_->takeAt(0); |
107 | 115 | } |
108 | 116 | for(auto& item: iface->currentAlbumItems()) { |
109 | 117 | QString imgPath = item.toString().replace("file://", ""); |
|
0 commit comments