diff --git a/libSplitView/AcceptPanel.cpp b/libSplitView/AcceptPanel.cpp index ab0d73b..f6c1b87 100644 --- a/libSplitView/AcceptPanel.cpp +++ b/libSplitView/AcceptPanel.cpp @@ -130,11 +130,17 @@ void accept_panel::AcceptPanel::dropEvent(QDropEvent *ev) view_manager->doRetrieve(view); view_manager->siblingAttach(view, anchor_view, SplitType::SPLIT_V_BFIRST); break; - case HoverType::CUBE_CENTER: + case HoverType::CUBE_CENTER: { view_manager->doRetrieve(view); - anchor_view->parentRes()->replaceView(view, anchor_view); - view_manager->doRetrieve(anchor_view); - break; + auto pinst = anchor_view->parentRes(); + if(pinst){ + pinst->replaceView(view, anchor_view); + view_manager->doRetrieve(anchor_view); + }else{ + view_manager->doRetrieve(anchor_view); + dynamic_cast(view_manager)->setPresentTarget(view); + } + } break; default: break; } diff --git a/libSplitView/DockPanel.cpp b/libSplitView/DockPanel.cpp index d56c8c8..114c730 100644 --- a/libSplitView/DockPanel.cpp +++ b/libSplitView/DockPanel.cpp @@ -13,6 +13,7 @@ using namespace dock_panel; DragHeader::DragHeader(const QString &title, DockableView *bind_core) : QFrame(bind_core), bind_core(bind_core), + icon_holder(new QLabel(this)), title_holder(new QLabel(this)), close_btn(new QPushButton("x",this)), minimal_btn(new QPushButton("-",this)) { @@ -22,6 +23,9 @@ DragHeader::DragHeader(const QString &title, DockableView *bind_core) layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); + icon_holder->setPixmap(QIcon(":/icons/headertop/story.png").pixmap(22,22)); + layout->addWidget(icon_holder, 0, Qt::AlignLeft); + title_holder->setText(title); title_holder->setContentsMargins(2,0, 0, 0); layout->addWidget(title_holder, 1, Qt::AlignLeft); @@ -51,7 +55,7 @@ void DragHeader::setTitle(const QString &title) void DragHeader::setTitle(const QString &title, const QIcon &icon) { this->setTitle(title); - this->title_holder->setPixmap(icon.pixmap(22, 22)); + this->icon_holder->setPixmap(icon.pixmap(22, 22)); } void DragHeader::optConfig(bool retrieve, bool close) diff --git a/libSplitView/DockPanel.h b/libSplitView/DockPanel.h index 00f842f..7901b68 100644 --- a/libSplitView/DockPanel.h +++ b/libSplitView/DockPanel.h @@ -18,6 +18,7 @@ namespace dock_panel { Q_OBJECT private: DockableView *const bind_core; + QLabel *const icon_holder; QLabel *const title_holder; QPushButton *const close_btn, *const minimal_btn; std::tuple press_flag = std::make_tuple(false, QPointF()); diff --git a/libSplitView/SplitWindow.cpp b/libSplitView/SplitWindow.cpp index 19d0dc3..3fbc0c4 100644 --- a/libSplitView/SplitWindow.cpp +++ b/libSplitView/SplitWindow.cpp @@ -44,6 +44,7 @@ void SplitWindow::setPresentTarget(split_frame::ViewRes *inst) inst->setParentRes(nullptr); inst->widget()->setParent(this); this->setCentralWidget(inst->widget()); + inst->setVisible(true); } else if (!inst) { this->takeCentralWidget(); } diff --git a/libSplitView/defaulticon.qrc b/libSplitView/defaulticon.qrc new file mode 100644 index 0000000..7579920 --- /dev/null +++ b/libSplitView/defaulticon.qrc @@ -0,0 +1,5 @@ + + + story.png + + diff --git a/libSplitView/libSplitView.pro b/libSplitView/libSplitView.pro index aac7ea0..356744e 100644 --- a/libSplitView/libSplitView.pro +++ b/libSplitView/libSplitView.pro @@ -40,3 +40,6 @@ else:unix: LIBS += -L$$OUT_PWD/../libConfig/ -llibConfig INCLUDEPATH += $$PWD/../libConfig DEPENDPATH += $$PWD/../libConfig + +RESOURCES += \ + defaulticon.qrc diff --git a/libSplitView/story.png b/libSplitView/story.png new file mode 100644 index 0000000..4805247 Binary files /dev/null and b/libSplitView/story.png differ