1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
/*
SPDX-FileCopyrightText: 2010 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "kastentoolviewwidget.h"
// plugin
#include "oktetaview.h"
// Okteta Kasten
#include <Kasten/Okteta/ByteArrayView>
// Kasten
#include <Kasten/AbstractToolView>
#include <Kasten/AbstractTool>
// KDev
#include <interfaces/icore.h>
#include <interfaces/iuicontroller.h>
#include <sublime/mainwindow.h>
#include <sublime/controller.h>
// Qt
#include <QVBoxLayout>
namespace KDevelop
{
// TODO: find if hidden, than unset target model
KastenToolViewWidget::KastenToolViewWidget( Kasten::AbstractToolView* toolView, QWidget* parent )
: QWidget( parent ),
mToolView( toolView )
{
Sublime::Controller* controller = ICore::self()->uiController()->controller();
connect( controller, &Sublime::Controller::mainWindowAdded,
this, &KastenToolViewWidget::onMainWindowAdded );
const QList<Sublime::MainWindow*>& mainWindows = controller->mainWindows();
for (Sublime::MainWindow* mainWindow : mainWindows) {
onMainWindowAdded( mainWindow );
}
auto* layout = new QVBoxLayout( this );
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget( mToolView->widget() );
}
void KastenToolViewWidget::onMainWindowAdded( Sublime::MainWindow* mainWindow )
{
connect( mainWindow, &Sublime::MainWindow::activeViewChanged,
this, &KastenToolViewWidget::onActiveViewChanged );
onActiveViewChanged( mainWindow->activeView() );
}
void KastenToolViewWidget::onActiveViewChanged( Sublime::View* view )
{
// TODO: check if own mainWindow
auto* oktetaView = qobject_cast<OktetaView*>( view );
Kasten::ByteArrayView* byteArrayView = oktetaView ? oktetaView->byteArrayView() : nullptr;
mToolView->tool()->setTargetModel( byteArrayView );
}
KastenToolViewWidget::~KastenToolViewWidget()
{
Kasten::AbstractTool* tool = mToolView->tool();
delete mToolView;
delete tool;
}
}
#include "moc_kastentoolviewwidget.cpp"
|