New extention Calculator
authorAndrey Paskal <apaskal@gmail.com>
Fri, 27 Jun 2008 16:37:01 +0000 (20:37 +0400)
committerAndrey Paskal <apaskal@gmail.com>
Fri, 27 Jun 2008 16:37:01 +0000 (20:37 +0400)
src/ananas/ananas.pro
src/ananas/ananasmainform.cpp
src/extensions/extensions.pro
src/extensions/minicalc/acalc.cpp [new file with mode: 0644]
src/extensions/minicalc/acalc.h [new file with mode: 0644]
src/extensions/minicalc/aminicalc.cpp [moved from src/ananas/aminicalc.cpp with 99% similarity]
src/extensions/minicalc/aminicalc.h [moved from src/ananas/aminicalc.h with 99% similarity]
src/extensions/minicalc/calc.cpp [new file with mode: 0644]
src/extensions/minicalc/calc.h [new file with mode: 0644]
src/extensions/minicalc/minicalc.pro [new file with mode: 0644]

index e9a7575..daebe37 100644 (file)
@@ -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
 
index 1fec864..4468f0b 100644 (file)
@@ -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);
 }
index 61c6fe9..9133c61 100644 (file)
@@ -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 (file)
index 0000000..5944a31
--- /dev/null
@@ -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 <aextensionplugin.h>
+typedef AExtensionPlugin<aCalc> aCalcPlugin;
+A_EXPORT_PLUGIN( aCalcPlugin )
diff --git a/src/extensions/minicalc/acalc.h b/src/extensions/minicalc/acalc.h
new file mode 100644 (file)
index 0000000..b949ec5
--- /dev/null
@@ -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
similarity index 99%
rename from src/ananas/aminicalc.cpp
rename to src/extensions/minicalc/aminicalc.cpp
index 769f294..cb8d7ec 100644 (file)
@@ -20,6 +20,8 @@
 #include <qpalette.h>
 #include <math.h>
 
+
+
 /*
  *  Constructs a MiniCalc as a child of 'parent', with the
  *  name 'name' and widget flags set to 'f'.
similarity index 99%
rename from src/ananas/aminicalc.h
rename to src/extensions/minicalc/aminicalc.h
index f5c8840..09064b6 100644 (file)
@@ -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 (file)
index 0000000..61e18e0
--- /dev/null
@@ -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 (file)
index 0000000..9485189
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef ACALC_H
+#define ACALC_H
+
+#include       <qdatetime.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/extensions/minicalc/minicalc.pro b/src/extensions/minicalc/minicalc.pro
new file mode 100644 (file)
index 0000000..1bb1d08
--- /dev/null
@@ -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
+}
+