diff --git a/saoriview.cpp b/saoriview.cpp index 525a79c..e0c6fe8 100644 --- a/saoriview.cpp +++ b/saoriview.cpp @@ -372,9 +372,11 @@ if ((timeline.left(9) == "accounts:") && (m_viewname.left(9) == "accounts:")) { QStringList t = timeline.split(':'); if (t.count() == 2) { - QJsonObject json = QJsonDocument::fromJson(data).object(); - ui->header->setContent(headerParser(json)); - ui->header->show(); + if (t[1] == m_viewname.split(':')[1]) { + QJsonObject json = QJsonDocument::fromJson(data).object(); + ui->header->setContent(headerParser(json)); + ui->header->show(); + } } } if (timeline != m_viewname) return; @@ -412,7 +414,7 @@ } if (url.toString().left(9) == "accounts:") { QStringList v; - v << m_account << url.toString().mid(9); + v << m_account << url.toString(); emit openAccountView(v); } } diff --git a/saoriwindow.cpp b/saoriwindow.cpp index fe4dd99..b1e8d0b 100644 --- a/saoriwindow.cpp +++ b/saoriwindow.cpp @@ -54,10 +54,11 @@ QPair SaoriWindow::getTimelineTitle(const QString timeline) { // trick for translation. + auto t = timeline.split(':'); QStringList trtl; QString tlText,icon; trtl << "home" << "local" << "public" << "notifications" << "instance" << "accounts"; - switch (trtl.indexOf(timeline)) { + switch (trtl.indexOf(t[0])) { case 0: tlText = tr("home"); icon = ":/icons/ionicons/chatbubbles.svg"; @@ -86,7 +87,8 @@ tlText = timeline; break; } - + if (t.count() > 1) + for(int i = 1;i < t.count();i ++) tlText += ":" + t[i]; return QPair(tlText,icon); } @@ -101,7 +103,7 @@ auto view = new SaoriView(viewName.at(1),viewName.at(0)); auto sub = ui->mdiArea->addSubWindow(view); connect(view,&SaoriView::openMediaView,this,&SaoriWindow::openMediaView); - connect(view,&SaoriView::openAccountView,this,&SaoriWindow::openAccountView); + connect(view,&SaoriView::openAccountView,this,&SaoriWindow::openView); sub->setWindowTitle(title); sub->setWindowIcon(QIcon(getTimelineTitle(viewName.at(1)).second)); @@ -140,35 +142,6 @@ sub->resize(view->pixmap()->size()); } -void SaoriWindow::openAccountView(const QStringList viewName) -{ - if (auto view = SaoriView::findView("accounts:" + viewName.at(1),viewName.at(0))) { - ui->mdiArea->setActiveSubWindow(qobject_cast(view->parent())); - return; - } - QString title = getTimelineTitle("accounts").first + " " + viewName.at(1) + ":" + viewName.at(0); - auto view = new SaoriView("accounts:" + viewName.at(1),viewName.at(0)); - auto sub = ui->mdiArea->addSubWindow(view); - connect(view,&SaoriView::openMediaView,this,&SaoriWindow::openMediaView); - connect(view,&SaoriView::openAccountView,this,&SaoriWindow::openAccountView); - sub->setWindowTitle(title); - sub->setWindowIcon(QIcon(getTimelineTitle("accounts").second)); - - auto setting = SaoriApplication::saori()->setting(); - QString c = SAORI_SETTING_VIEW; - c += "/" + viewName.at(0) + "/" + "accounts:" + viewName.at(1); - QRect defRect((ui->mdiArea->subWindowList().count() - 1) * 24, - (ui->mdiArea->subWindowList().count() - 1) * 24, - 450, - 600); - if (setting->value(c + SAORI_SETTING_VIEW_PINED,false).toBool()) { - sub->setGeometry(setting->value(c + SAORI_SETTING_VIEW_GEOMETRY,defRect).toRect()); - } else { - sub->setGeometry(defRect); - } - sub->show(); -} - void SaoriWindow::updateTimelineList() { ui->timelineTree->clear(); diff --git a/saoriwindow.h b/saoriwindow.h index bdfdda4..ba98c9d 100644 --- a/saoriwindow.h +++ b/saoriwindow.h @@ -49,7 +49,6 @@ public slots: void openView(const QStringList viewName); void openMediaView(const QUrl url); - void openAccountView(const QStringList viewName); protected slots: void updateTimelineList();