Application that install browser plugin



  • Hi All,
    Some of you was able to use trivial example to create a browser plugin?
    I'm trying to compile it but I'm not able to do.

    These are the steps done untill now:

    #1 Create a new project (Qt GUI Application);
    #2 Create a file trivial.cpp:

    @
    #include <QtGui>

    class Trivial : public QWidget
    {
    Q_OBJECT
    Q_PROPERTY(QString text READ text WRITE setText)

     Q_CLASSINFO("ClassID", "{5a22176d-118f-4185-9653-9f98958a6df8}")
     Q_CLASSINFO("InterfaceID", "{2df735ba-da4f-4fb7-8f35-b8dfbf8cfd9a}")
     Q_CLASSINFO("EventsID", "{449de213-f8bd-4d2e-a2cf-eab407c03245}")
    
     Q_CLASSINFO("MIME", "trivial/very:xxx:Trivial and useless")
     Q_CLASSINFO("ToSuperClass", "Trivial")
     Q_CLASSINFO("DefaultProperty", "text")
    

    public:
    Trivial(QWidget *parent = 0)
    : QWidget(parent)
    {
    m_text = QString::fromLatin1("Empty");
    }

     void mousePressEvent(QMouseEvent *)
     {
         mouseDown();
     }
     void mouseMoveEvent(QMouseEvent *e)
     {
         mouseMove(e->x(), e->y());
     }
     void mouseReleaseEvent(QMouseEvent*)
     {
         mouseUp();
     }
     QString text() const
     {
         return m_text;
     }
    

    public slots:
    void about()
    {
    QMessageBox::aboutQt(this);
    }
    void setText(const QString &text)
    {
    m_text = text;
    update();
    }

    signals:
    void mouseDown();
    void mouseMove(int x, int y);
    void mouseUp();

    protected:
    void paintEvent(QPaintEvent*)
    {
    QPainter p(this);
    QRect r(rect());
    r.adjust(0, 0, -1, -1);

         p.drawRect(r);
         p.drawText(r, Qt::AlignCenter, m_text);
     }
    

    private:
    QString m_text;
    };

    #include "trivial.moc"

    QTNPFACTORY_BEGIN("Trivial Qt-based Plugin", "A Qt-based LiveConnected plug-in that does nothing")
    QTNPCLASS(Trivial)
    QTNPFACTORY_END()

    #ifdef QAXSERVER
    #include <ActiveQt/QAxFactory>
    QAXFACTORY_BEGIN("{aa3216bf-7e20-482c-84c6-06167bacb616}", "{08538ca5-eb7a-4f24-a3c4-a120c6e04dc4}")
    QAXCLASS(Trivial)
    QAXFACTORY_END()
    #endif
    @

    #3 create a .pri file called trivial.pri:

    @
    SOURCES += trivial.cpp
    @

    #4 Add trivial.pri to my Main project:

    @
    include(trivial.pri)
    @

    When i compile main application it returns an error:
    trivial.cpp: error: 73: expected constructor, destructor, or type conversion before '(' token

    Can you help me?

    Thanks


  • Moderators

    For which browser is this? Looks like IE to me, but I am not sure.



  • I'd like to create for all browser but for now I'll be very happy if it runs with firefox.
    But for now my project doesn't compile.



  • From "here":http://doc.qt.nokia.com/solutions/4/qtbrowserplugin/developingplugins.html
    Did you

    1. "Download":ftp://ftp.qt.nokia.com/pub/qt/solutions/ the necessary files?

    [quote]
    Include the qtbrowserplugin.pri in your .pro file, and regenerate the makefile with qmake. The resulting makefile will generate a shared library that the browsers will be able to load as a plugin.
    [/quote]



  • I compiled trivial example, it generates a .dll
    Now how can i install into firefox.
    Thanks.





  • I've solved my Problem, we must simply put the dll created into a specific folder.
    Thanks to all



  • Hi, About my last post: it's true that plugin is installed putting .dll file into specific folder but this doesn't run on windows.
    What should i do to install my trivial plugin on internet explorer?
    I've added line:
    @CONFIG += qaxserver@
    Necessary for Internet Explorer
    Thanks.



  • thanks all its helpful information for me



  • On Internet Exploerer it should be automatic:
    [quote]
    Windows, Internet Explorer: The Makefile generated by qmake by default runs the necessary commands to register the plugin as an ActiveX server (if CONFIG includes qaxserver).
    [/quote]
    Otherwise you can register it manually using 'regsvr32 "C:\PATH\TO\PLUGIN.dll" '.



  • I apologize for my experience lack, but what does it mean: " you can register it manually using ‘regsvr32 “C:\PATH\TO\PLUGIN.dll” ‘. "

    Sorry



  • you should run this command in console with path to your plugin.



  • Ok thanks for you quick feedback, but i should do it from Qt application or from Installer.



  • Hi all, I'm working with the Bouncer example from the "C++ GUI Programming with Qt 4, Second Edition
    by Jasmin Blanchette; Mark Summerfield" book.
    I can't receive the signal in javascript, which was sent from plugin (function AxBouncer::bouncing(), demo.html)
    I used qtbrowserplugin, but did't work too.
    Everything works Firefox.



  • Sorry, does not work in Internet explorer


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.