@@ -35,6 +35,7 @@ ArrowHeaderLine::ArrowHeaderLine(QWidget *parent)
3535 titleLabel = new DLabel (this );
3636 titleLabel->installEventFilter (this );
3737 titleLabel->setCursor (Qt::PointingHandCursor);
38+ titleLabel->setTextFormat (Qt::PlainText);
3839 DFontSizeManager::instance ()->bind (titleLabel, DFontSizeManager::T5 , QFont::Medium);
3940
4041 connect (arrowButton, &DToolButton::clicked, this , &ArrowHeaderLine::expandChanged);
@@ -75,7 +76,7 @@ void ArrowHeaderLine::setTitleTip(const QString &tooltip)
7576void ArrowHeaderLine::resizeEvent (QResizeEvent *e)
7677{
7778 updateTitle ();
78-
79+
7980 return QWidget::resizeEvent (e);
8081}
8182
@@ -126,7 +127,7 @@ void ArrowHeaderLine::reverseArrowDirection()
126127void ArrowHeaderLine::updateTitle ()
127128{
128129 QFontMetrics fm = titleLabel->fontMetrics ();
129- auto displayText = fm.elidedText (titleText, Qt::ElideRight , titleLabel->width ());
130+ auto displayText = fm.elidedText (titleText, Qt::ElideMiddle , titleLabel->width ());
130131 titleLabel->setText (displayText);
131132}
132133
@@ -321,7 +322,10 @@ void SessionItemWidgetPrivate::runInputDialog(const QString &title, const QStrin
321322 dlg.setTitle (title);
322323 dlg.setIcon (QIcon::fromTheme (" ide" ));
323324 DLineEdit *lineEdit = new DLineEdit (&dlg);
325+ QRegExpValidator *validator = new QRegExpValidator (QRegExp (" [^/\? :\\\\ *]*" ), lineEdit);
326+ lineEdit->lineEdit ()->setValidator (validator);
324327 lineEdit->setPlaceholderText (SessionItemWidget::tr (" Please input session name" ));
328+ lineEdit->setText (editText);
325329 connect (lineEdit, &DLineEdit::textChanged, &dlg, [&dlg](const QString &text) {
326330 dlg.getButton (1 )->setEnabled (!text.isEmpty ());
327331 dlg.getButton (2 )->setEnabled (!text.isEmpty ());
@@ -332,21 +336,26 @@ void SessionItemWidgetPrivate::runInputDialog(const QString &title, const QStrin
332336 dlg.addButton (SessionItemWidget::tr (" Cancel" , " button" ));
333337 dlg.addButton (actList[0 ]);
334338 dlg.addButton (actList[1 ], true , DDialog::ButtonRecommend);
335- dlg.getButton (1 )->setEnabled (false );
336- dlg.getButton (2 )->setEnabled (false );
337- lineEdit->setText (editText);
339+ dlg.setOnButtonClickedClose (false );
340+ connect (&dlg, &DDialog::buttonClicked, this , [&](int index) {
341+ if (index == 0 )
342+ return dlg.reject ();
343+
344+ const auto name = lineEdit->text ();
345+ if (sessionSrv->sessionList ().contains (name)) {
346+ QString msg = tr (" The session already exists, please re-enter." );
347+ lineEdit->showAlertMessage (msg);
348+ return ;
349+ }
338350
339- int ret = dlg. exec ( );
340- if (ret < 1 )
341- return ;
351+ handler (name );
352+ if (index == 2 )
353+ sessionSrv-> loadSession (name) ;
342354
343- const auto name = lineEdit->text ();
344- if (name.isEmpty () || sessionSrv->sessionList ().contains (name))
345- return ;
355+ dlg.accept ();
356+ });
346357
347- handler (name);
348- if (ret == 2 )
349- sessionSrv->loadSession (name);
358+ dlg.exec ();
350359}
351360
352361SessionItemWidget::SessionItemWidget (QWidget *parent)
0 commit comments