From: Andrey Paskal Date: Fri, 27 Jun 2008 16:37:01 +0000 (+0400) Subject: New extention Calculator X-Git-Url: https://gitweb.ananas.su/?a=commitdiff_plain;h=d7a318845e90624eaf7798d72b0f35c968512025;p=projects%2Fananas-labs.git New extention Calculator --- diff --git a/src/ananas/ananas.pro b/src/ananas/ananas.pro index e9a7575..daebe37 100644 --- a/src/ananas/ananas.pro +++ b/src/ananas/ananas.pro @@ -3,10 +3,10 @@ TARGET = ananas include ( ../ananas.pri ) SOURCES += main.cpp \ - ananasmainform.cpp \ - aminicalc.cpp -HEADERS += ananasmainform.h \ - aminicalc.h + ananasmainform.cpp +HEADERS += ananasmainform.h + + #load(qsa) @@ -29,7 +29,6 @@ INSTALLS += ananas #FORMS = qadocjournal.ui IMAGES = images/a-system.png \ - images/calc.png \ images/msg_info.png \ images/msg_warning.png \ images/msg_error.png \ @@ -57,6 +56,9 @@ IMAGES = images/a-system.png \ images/lib_database.png \ images/lib_dbgroup.png \ images/ananas-32x32.png + +IMAGES += images/calc.png + TEMPLATE =app diff --git a/src/ananas/ananasmainform.cpp b/src/ananas/ananasmainform.cpp index 1fec864..4468f0b 100644 --- a/src/ananas/ananasmainform.cpp +++ b/src/ananas/ananasmainform.cpp @@ -40,7 +40,6 @@ #include "ananasmainform.h" #include "ananas.h" -#include "aminicalc.h" MainForm *mainform=NULL; QWorkspace *mainformws=NULL; @@ -124,17 +123,14 @@ void MainForm::initMenuBar() { QPopupMenu *m; - QPopupMenu *s; m = new QPopupMenu(); - s = new QPopupMenu(); windowsMenu = new QPopupMenu(); connect( windowsMenu, SIGNAL( aboutToShow() ), this, SLOT( windowsMenuAboutToShow() ) ); m->insertItem(rcIcon("ananas-32x32.png"), tr( "About" ), this, SLOT( helpAbout() ), Key_F11); - s->insertItem(rcIcon("calc.png"), tr( "Calculator" ), this, SLOT( miniCalc() ), Key_F10); + m->insertItem(rcIcon("calc.png"), tr( "Calculator" ), this, SLOT( miniCalc() ), Key_F10); //windowsMenu->insertItem(rcIcon("ananas-32x32.png"), tr( "Windows" ), this, SLOT( windowsMenuAboutToShow() )); menubar = new AMenuBar( md, this, "menubar"); - InsertMainMenu( tr("&Tools"), s ); InsertMainMenu( tr("&Help"), m ); InsertMainMenu( tr("&Windows"), windowsMenu ); menuBar()->show(); @@ -319,6 +315,6 @@ void MainForm::windowsMenuActivated( int id ) void MainForm::miniCalc() { - MiniCalc *calc = new MiniCalc(ws, "MiniCalc", false, 0); - calc->show(); + const QString code = "var calc= new Calc(); calc.Show();"; + engine->project.interpreter()->evaluate(code); } diff --git a/src/extensions/extensions.pro b/src/extensions/extensions.pro index 61c6fe9..9133c61 100644 --- a/src/extensions/extensions.pro +++ b/src/extensions/extensions.pro @@ -7,3 +7,4 @@ SUBDIRS += meta SUBDIRS +=aextsql SUBDIRS +=service SUBDIRS +=dateservice +SUBDIRS +=minicalc diff --git a/src/extensions/minicalc/acalc.cpp b/src/extensions/minicalc/acalc.cpp new file mode 100644 index 0000000..5944a31 --- /dev/null +++ b/src/extensions/minicalc/acalc.cpp @@ -0,0 +1,55 @@ +#include "acalc.h" + +/** + *\en + * \brief + * + *\_en + *\ru + * \brief + * + *\_ru + */ +aCalc::aCalc(): AExtension("Calc") +{ + calcInstance = new MiniCalc(); +} + +/** + *\en + * \brief Destructor + *\_en + *\ru + * \brief Деструктор + *\_ru + */ +aCalc::~aCalc() +{ + if (calcInstance) { + delete calcInstance; + calcInstance = 0; + } +} + + +/** + *\en + * \brief Destructor + *\_en + *\ru + * \brief Деструктор + *\_ru + */ +void +aCalc::Show() +{ + if ( calcInstance ) + { + calcInstance->show(); + } +} + + +#include +typedef AExtensionPlugin aCalcPlugin; +A_EXPORT_PLUGIN( aCalcPlugin ) diff --git a/src/extensions/minicalc/acalc.h b/src/extensions/minicalc/acalc.h new file mode 100644 index 0000000..b949ec5 --- /dev/null +++ b/src/extensions/minicalc/acalc.h @@ -0,0 +1,21 @@ +#ifndef ACALC_H +#define ACALC_H + +#include "aextension.h" +#include "aminicalc.h" + +class ANANAS_EXPORT aCalc : public AExtension +{ + Q_OBJECT + public: + aCalc(); + ~aCalc(); + + public slots: + void Show(); + + protected: + MiniCalc* calcInstance; +} + +#endif // ACALC_H diff --git a/src/ananas/aminicalc.cpp b/src/extensions/minicalc/aminicalc.cpp similarity index 99% rename from src/ananas/aminicalc.cpp rename to src/extensions/minicalc/aminicalc.cpp index 769f294..cb8d7ec 100644 --- a/src/ananas/aminicalc.cpp +++ b/src/extensions/minicalc/aminicalc.cpp @@ -20,6 +20,8 @@ #include #include + + /* * Constructs a MiniCalc as a child of 'parent', with the * name 'name' and widget flags set to 'f'. diff --git a/src/ananas/aminicalc.h b/src/extensions/minicalc/aminicalc.h similarity index 99% rename from src/ananas/aminicalc.h rename to src/extensions/minicalc/aminicalc.h index f5c8840..09064b6 100644 --- a/src/ananas/aminicalc.h +++ b/src/extensions/minicalc/aminicalc.h @@ -21,6 +21,7 @@ class QPushButton; class QLineEdit; class QLabel; + class MiniCalc : public QDialog { Q_OBJECT diff --git a/src/extensions/minicalc/calc.cpp b/src/extensions/minicalc/calc.cpp new file mode 100644 index 0000000..61e18e0 --- /dev/null +++ b/src/extensions/minicalc/calc.cpp @@ -0,0 +1,20 @@ +#include "calc.h" + +/** + *\en + * \brief Constructor that create object aDateService for use in ananas script. + * + * Constructs current date object. + *\_en + *\ru + * \brief Конструктор, который создает aDateService для работы в ананас скрипте. + * + * Создается объект с текущей датой. + *\_ru + */ +aCalc::aCalc(): AExtension("Calc") +{ + QDate date = QDate::currentDate(); + calcInstance = new MiniCalc(); +} + diff --git a/src/extensions/minicalc/calc.h b/src/extensions/minicalc/calc.h new file mode 100644 index 0000000..9485189 --- /dev/null +++ b/src/extensions/minicalc/calc.h @@ -0,0 +1,22 @@ +#ifndef ACALC_H +#define ACALC_H + +#include +#include "aextension.h" +#include "aminicalc.h" + +class ANANAS_EXPORT aCalc : public AExtension +{ + Q_OBJECT + public: + aCalc(); + ~aCalc(); + + public slots: + void Show(); + + protected: + MiniCalc* calcInstance; +} + +#endif // ACALC_H diff --git a/src/extensions/minicalc/minicalc.pro b/src/extensions/minicalc/minicalc.pro new file mode 100644 index 0000000..1bb1d08 --- /dev/null +++ b/src/extensions/minicalc/minicalc.pro @@ -0,0 +1,29 @@ +TARGET = aextminicalc + +SOURCES += acalc.cpp aminicalc.cpp +HEADERS += acalc.h aminicalc.h + + +include ( ../../ananas.pri ) + +shared { +win32:DEFINES+= ANANAS_DLL +} else { +win32:DEFINES += ANANAS_NO_DLL +} + +TEMPLATE =lib +CONFIG += plugin + +INCLUDEPATH += ../../lib +LIBS += -L../../lib -lananas + +LANGUAGE = C++ +win32:DESTDIR = .. + +unix{ + libext.path = $(LIBDIR)/ananas + libext.files = libaextminicalc.so + INSTALLS += libext +} +