فهرست منبع

Fixed blur effect (needs testing!), added news tooltip

Ivan Arkhipov 5 سال پیش
والد
کامیت
de179f68b6

+ 5 - 8
src/Legacy/widgets/mainwindow.cpp

@@ -50,10 +50,8 @@ MainWindow::MainWindow(QWidget *parent) :
     help_widget = new HelpWidget(settings, patch_updater, lotro_manager, this);
 
     choose_locale_dialog = new ChooseVersionDialog(settings, patch_updater, lotro_manager, this);
-//    choose_locale_dialog->move(this->rect().center() - choose_locale_dialog->rect().center());
     choose_locale_dialog->resize(size());
     choose_locale_dialog->hide();
-    choose_locale_blur_effect = new QGraphicsBlurEffect(this);
     connect(choose_locale_dialog, &ChooseVersionDialog::cancelled, this, &MainWindow::hideChooseVersionDialog);
 
     ui->content_layout->addWidget(status_widget);
@@ -308,17 +306,16 @@ void MainWindow::changeFontSizeRecursive(size_t percent, QWidget *widget)
 
 void MainWindow::showChooseVersionDialog()
 {
-    choose_locale_blur_effect->setBlurRadius(10);
-    choose_locale_blur_effect->setBlurHints(QGraphicsBlurEffect::QualityHint);
-    ui->content_area->setGraphicsEffect(choose_locale_blur_effect);
+    QGraphicsBlurEffect *effect = new QGraphicsBlurEffect();
+    effect->setBlurRadius(10);
+    effect->setBlurHints(QGraphicsBlurEffect::QualityHint);
+    ui->content_area->setGraphicsEffect(effect);
     choose_locale_dialog->show();
 }
 
 void MainWindow::hideChooseVersionDialog()
 {
-    choose_locale_blur_effect->setBlurRadius(0);
-    choose_locale_blur_effect->setBlurHints(QGraphicsBlurEffect::QualityHint);
-    ui->content_area->setGraphicsEffect(choose_locale_blur_effect);
+    ui->content_area->setGraphicsEffect(nullptr);
     choose_locale_dialog->hide();
 }
 

+ 0 - 1
src/Legacy/widgets/mainwindow.h

@@ -87,7 +87,6 @@ private:
     SettingsWidget *settings_widget;
     HelpWidget *help_widget;
     ChooseVersionDialog *choose_locale_dialog;
-    QGraphicsBlurEffect *choose_locale_blur_effect;
 
     QWidget* menuHoverWidget;
     QPropertyAnimation* menuHoverWidgetAnimation;

+ 12 - 0
src/Legacy/widgets/newslistwidget.cpp

@@ -20,6 +20,8 @@ NewsListWidget::NewsListWidget(QWidget *parent) : QWidget(parent)
     emit news_downloader.start();
     news_update_timer.setInterval(1000 * 60); // 60 seconds;
     news_update_timer.start();
+
+    setMouseTracking(true);
 }
 
 NewsListWidget::~NewsListWidget()
@@ -27,6 +29,16 @@ NewsListWidget::~NewsListWidget()
     news_update_timer.stop();
 }
 
+void NewsListWidget::leaveEvent(QEvent *event)
+{
+    emit mouseLeaved();
+}
+
+void NewsListWidget::enterEvent(QEvent *event)
+{
+    emit mouseEntered("<p><i>Новости.</i></p>Нажмите на заголовок новости, чтобы открыть её на сайте проекта.");
+}
+
 void NewsListWidget::updateNews()
 {
     if (!qApp)

+ 6 - 0
src/Legacy/widgets/newslistwidget.h

@@ -14,7 +14,13 @@ public:
     explicit NewsListWidget(QWidget *parent = nullptr);
     ~NewsListWidget();
 
+protected:
+    virtual void leaveEvent(QEvent * event) override;
+    virtual void enterEvent(QEvent * event) override;
+
 signals:
+    void mouseEntered(QString tooltip);
+    void mouseLeaved();
     void newsUpdated();
 
 public slots:

+ 2 - 0
src/Legacy/widgets/statuswidget.cpp

@@ -30,6 +30,8 @@ StatusWidget::StatusWidget(QSettings* settings, PatchDownloader* patch_downloade
     connect(ui->weekly_code, &WeeklyCodeWidget::mouseLeaved, this, &StatusWidget::hideTooltip);
     connect(ui->server_status_flag, &StatusFlagWidget::mouseEntered, this, &StatusWidget::showTooltip);
     connect(ui->server_status_flag, &StatusFlagWidget::mouseLeaved, this, &StatusWidget::hideTooltip);
+    connect(ui->announcements_list, &NewsListWidget::mouseEntered, this, &StatusWidget::showTooltip);
+    connect(ui->announcements_list, &NewsListWidget::mouseLeaved, this, &StatusWidget::hideTooltip);
 }
 
 StatusWidget::~StatusWidget()