#include <QVBoxLayout>
#include <QPushButton>
#include <QtPlugin>
#include <string>
#include <iostream>
#include "cubelib-version.h"
#include "ClientPlugin.h"
#include "Globals.h"
using namespace clientserver;
ClientPlugin::ClientPlugin()
{
}
bool
{
this->service = service;
widget_ = new QWidget();
qlabel_ = new QLabel( "" );
QVBoxLayout* layout = new QVBoxLayout();
widget_->setLayout( layout );
layout->addWidget( qlabel_ );
QPushButton* button = new QPushButton( "Send text to server" );
layout->addWidget( button );
connect( button, &QPushButton::clicked, this, &ClientPlugin::communicateWithServerPlugin );
return true;
}
void
ClientPlugin::cubeClosed()
{
delete widget_;
}
void
ClientPlugin::version( int& major, int& minor, int& bugfix ) const
{
major = 1;
minor = 0;
bugfix = 0;
}
QString
ClientPlugin::name() const
{
return "ClientServerDemoPlugin";
}
QString
ClientPlugin::getHelpText() const
{
return "Demo to show communication between client and server plugins";
}
QWidget*
ClientPlugin::widget()
{
return widget_;
}
QString
ClientPlugin::label() const
{
return "client-server";
}
void
ClientPlugin::communicateWithServerPlugin()
{
std::string fn( "message from client plugin" );
std::vector<unsigned char> messageToServer( fn.begin(), fn.end() );
if ( cubegui::Globals::cubelibVersion() < CUBELIB_VERSION_CHECK( 4, 8, 0 ) )
{
qlabel_->setText( "remote cubelib version doesn't support plugins" );
return;
}
std::vector<unsigned char> answer = service->
getCube()->sendToPlugin( name().toStdString(), messageToServer );
std::string sourcef { answer.begin(), answer.end() };
QString message = sourcef.size() > 0 ? sourcef.c_str() : "ServerPlugin doesn't answer";
qlabel_->setText( message );
}