123void VP1Controller::initDialog(std::unique_ptr<QWidget> dialogPtr, QPushButton* launchButton, QPushButton* closeButton,QAbstractButton* enabledButton)
125 QString txt(enabledButton?enabledButton->text():launchButton->text());
126 txt.replace(
"&&",
"&");
127 dialogPtr->setWindowTitle(txt+
" ["+
systemBase()->name()+
"]");
128 dialogPtr->setWindowIcon(QIcon(QString(
":/vp1/icons/icons/3d_32x32.png")));
129 launchButton->setMaximumHeight(
static_cast<int>(0.5+QFontMetricsF(launchButton->font()).height()*1.05+2));
130 launchButton->setMinimumHeight(launchButton->maximumHeight());
131 launchButton->setCheckable(
true);
133 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
134 sizePolicy.setHorizontalStretch(0);
135 sizePolicy.setVerticalStretch(0);
136 sizePolicy.setHeightForWidth(launchButton->sizePolicy().hasHeightForWidth());
137 launchButton->setSizePolicy(sizePolicy);
138 launchButton->setFocusPolicy(Qt::NoFocus);
141 launchButton->setEnabled(enabledButton->isChecked());
143 auto di = std::make_unique<Imp::DialogInfo>(launchButton,std::move(dialogPtr),enabledButton);
144 QWidget* dialog = di->dialogWidget.get();
145 m_d->dialogs << di.release();
151 dialog->installEventFilter(closeEventEater);
154 closeButton->setText(
"&Close");
155 closeButton->setToolTip(
"Close this dialog [Esc]");
156 connect(closeButton,SIGNAL(clicked()),dialog,SLOT(close()));
158 connect(
new QShortcut(QKeySequence(Qt::Key_Escape), dialog),SIGNAL(activated()),dialog,SLOT(close()));
163 maxwidth = std::max(maxwidth,di->
launchButton->sizeHint().width());
236 if (sender()!=
m_d->collWidget||!
m_d->collWidget) {
237 message(
"ERROR: Unexpected signal in collWidgetContentChanged slot!!");
240 QScrollArea* scrollarea =
dynamic_cast<QScrollArea*
>(
m_d->collWidget->parent());
241 if (!scrollarea&&
m_d->collWidget->parent())
242 scrollarea =
dynamic_cast<QScrollArea*
>(
m_d->collWidget->parent()->parent());
244 message(
"ERROR: m_d->collWidget not child or grandchild of a scroll area!!");
247 int width =
m_d->collWidget->appropriateFixedWidth();
248 m_d->collWidget->setMinimumWidth(
width);
249 m_d->collWidget->setMaximumWidth(
width);
250 QScrollBar * sb = scrollarea->verticalScrollBar();
252 width+=sb->sizeHint().width();
253 scrollarea->setMinimumWidth(
width+2);
259 if (!scrollarea || !collWidget) {
260 message(
"ERROR: NULL scrollarea or collWidget");
263 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
264 sizePolicy.setHorizontalStretch(0);
265 sizePolicy.setVerticalStretch(scrollarea->sizePolicy().verticalStretch());
266 sizePolicy.setHeightForWidth(scrollarea->sizePolicy().hasHeightForWidth());
267 scrollarea->setSizePolicy(sizePolicy);
269 collWidget->setContentsMargins(0,0,0,0);
270 if (!collWidget->children().isEmpty()&&collWidget->children().at(0)->isWidgetType()) {
271 static_cast<QWidget*
>(collWidget->children().at(0))->setContentsMargins(0,0,0,0);
273 scrollarea->setContentsMargins(0,0,0,0);
275 scrollarea->setWidgetResizable(
true);
276 scrollarea->setFrameShape(QFrame::NoFrame);
277 scrollarea->setFrameShadow(QFrame::Plain);
278 collWidget->setParent(scrollarea);
279 scrollarea->setWidget(collWidget);
280 scrollarea->viewport()->setContentsMargins(0,0,0,0);
281 scrollarea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
282 collWidget->setObjectName(objectName()+
"_CollWidget");
283 scrollarea->setObjectName(objectName()+
"_CollWidgetScrollArea");
284 m_d->collWidget = collWidget;
291 QRadioButton * rb3,QRadioButton * rb4,QRadioButton * rb5,
292 QRadioButton * rb6,QRadioButton * rb7,QRadioButton * rb8,
295 QList<QRadioButton *> l;
296 l << rb0 << rb1 << rb2 << rb3 << rb4 << rb5 << rb6 << rb7 << rb8 << rb9;
QButtonGroup * defineRadioButtonGroup(QRadioButton *rb0, QRadioButton *rb1, QRadioButton *rb2=0, QRadioButton *rb3=0, QRadioButton *rb4=0, QRadioButton *rb5=0, QRadioButton *rb6=0, QRadioButton *rb7=0, QRadioButton *rb8=0, QRadioButton *rb9=0)