mirror of
https://github.com/YACReader/yacreader
synced 2025-07-20 22:14:41 -04:00
en macosx se usa el folder del sistema en la sidebar
This commit is contained in:
90
YACReader/translator.cpp
Normal file
90
YACReader/translator.cpp
Normal file
@ -0,0 +1,90 @@
|
||||
#include <QUrl>
|
||||
#include <Phonon/MediaObject>
|
||||
#include <Phonon/MediaSource>
|
||||
#include <QPushButton>
|
||||
#include <QPalette>
|
||||
#include <QMouseEvent>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QWebView>
|
||||
#include <QFile>
|
||||
#include <QPoint>
|
||||
#include <QWidget>
|
||||
#include <QTextCodec>
|
||||
|
||||
#include "translator.h"
|
||||
|
||||
YACReaderTranslator::YACReaderTranslator(QWidget * parent)
|
||||
:QWidget(parent)
|
||||
{
|
||||
this->setCursor(QCursor(Qt::ArrowCursor));
|
||||
this->setAutoFillBackground(true);
|
||||
this->setBackgroundRole(QPalette::Window);
|
||||
QPalette p(this->palette());
|
||||
p.setColor(QPalette::Window, QColor(96,96,96));
|
||||
this->setPalette(p);
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||
QWebView * view = new QWebView();
|
||||
QFile f(":/files/translator.html");
|
||||
f.open(QIODevice::ReadOnly);
|
||||
QTextStream txtS(&f);
|
||||
txtS.setCodec(QTextCodec::codecForName("UTF-8"));
|
||||
QString contentHTML = txtS.readAll();
|
||||
view->setHtml(contentHTML);
|
||||
view->page()->setLinkDelegationPolicy(QWebPage::DelegateExternalLinks);
|
||||
connect(view->page(),SIGNAL(linkClicked(QUrl)),this,SLOT(play(QUrl)));
|
||||
|
||||
QHBoxLayout * buttonBar = new QHBoxLayout();
|
||||
QPushButton * close = new QPushButton(QIcon(QPixmap(":/images/close.png")),"");
|
||||
close->setFlat(true);
|
||||
buttonBar->addStretch();
|
||||
close->resize(18,18);
|
||||
buttonBar->addWidget(close);
|
||||
buttonBar->setMargin(0);
|
||||
connect(close,SIGNAL(clicked()),this->parent(),SLOT(animateHideTranslator()));
|
||||
|
||||
layout->setMargin(0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
layout->addLayout(buttonBar);
|
||||
layout->addWidget(view);
|
||||
|
||||
resize(view->size().width()/1.60,view->size().height());
|
||||
|
||||
music = createPlayer(MusicCategory);
|
||||
|
||||
show();
|
||||
}
|
||||
|
||||
void YACReaderTranslator::play(const QUrl & url)
|
||||
{
|
||||
MediaSource src(url);
|
||||
src.setAutoDelete(true);
|
||||
music->setCurrentSource(src);
|
||||
music->play();
|
||||
}
|
||||
|
||||
YACReaderTranslator::~YACReaderTranslator()
|
||||
{
|
||||
delete music;
|
||||
}
|
||||
|
||||
void YACReaderTranslator::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
drag = true;
|
||||
click = event->pos();
|
||||
}
|
||||
|
||||
void YACReaderTranslator::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
drag = false;
|
||||
}
|
||||
|
||||
void YACReaderTranslator::mouseMoveEvent(QMouseEvent * event)
|
||||
{
|
||||
if(drag)
|
||||
this->move(QPoint(mapToParent(event->pos())-click));
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user