[ekiga/ds-gtk-application] Action: Added support for templates.
- From: Damien Sandras <dsandras src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga/ds-gtk-application] Action: Added support for templates.
- Date: Sun, 6 Apr 2014 16:04:16 +0000 (UTC)
commit 34ab0176eb77dcc4f139507f87ec5bc372ecb922
Author: Damien Sandras <dsandras beip be>
Date: Sun Apr 6 16:42:12 2014 +0200
Action: Added support for templates.
We are supposed to use DataActions with Presentities, Contacts, ... That
is why the old ContactAction/ContactActor classes were renamed and
templatized.
lib/Makefile.am | 22 ++-
lib/engine/{framework => action}/action.cpp | 0
lib/engine/{framework => action}/action.h | 0
lib/engine/{framework => action}/actor.cpp | 0
lib/engine/{framework => action}/actor.h | 0
lib/engine/action/data-action.h | 217 ++++++++++++++++++++
.../contact-actor.h => action/data-actor.h} | 50 +++--
lib/engine/addressbook/contact-action.cpp | 106 ----------
lib/engine/addressbook/contact-action.h | 138 -------------
lib/engine/addressbook/contact-actor.cpp | 69 ------
lib/engine/addressbook/contact-core.h | 7 +-
.../components/local-roster/local-cluster.cpp | 8 +-
lib/engine/gui/gtk-core/actor-menu.cpp | 20 +--
lib/engine/gui/gtk-core/actor-menu.h | 26 ++-
.../gui/gtk-frontend/call-history-view-gtk.cpp | 7 +-
lib/engine/gui/gtk-frontend/main_window.cpp | 4 +-
lib/engine/protocol/call-core.cpp | 20 +-
plugins/evolution/Makefile.am | 1 +
plugins/ldap/Makefile.am | 1 +
plugins/libnotify/Makefile.am | 1 +
src/Makefile.am | 1 +
21 files changed, 311 insertions(+), 387 deletions(-)
---
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 30d4f11..bca9d93 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -21,6 +21,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/lib/settings \
-I$(top_srcdir)/lib/engine \
-I$(top_srcdir)/lib/engine/account \
+ -I$(top_srcdir)/lib/engine/action \
-I$(top_srcdir)/lib/engine/addressbook \
-I$(top_srcdir)/lib/engine/audioinput \
-I$(top_srcdir)/lib/engine/audiooutput \
@@ -163,12 +164,9 @@ libekiga_la_SOURCES += \
##
libekiga_la_SOURCES += \
- engine/framework/action.h \
- engine/framework/action.cpp \
- engine/framework/actor.h \
- engine/framework/actor.cpp \
engine/framework/boost-exceptions.cpp \
engine/framework/services.h \
+ engine/framework/null-deleter.h \
engine/framework/map-key-iterator.h \
engine/framework/map-key-const-iterator.h \
engine/framework/reflister.h \
@@ -226,6 +224,18 @@ libekiga_la_SOURCES += \
engine/account/account-core.cpp
##
+# Actions
+##
+
+libekiga_la_SOURCES += \
+ engine/action/action.h \
+ engine/action/action.cpp \
+ engine/action/actor.h \
+ engine/action/actor.cpp \
+ engine/action/data-action.h \
+ engine/action/data-actor.h
+
+##
# Sources of the addressbook stack
##
@@ -235,10 +245,6 @@ libekiga_la_SOURCES += \
engine/addressbook/book-impl.h \
engine/addressbook/source.h \
engine/addressbook/source-impl.h \
- engine/addressbook/contact-action.h \
- engine/addressbook/contact-action.cpp \
- engine/addressbook/contact-actor.h \
- engine/addressbook/contact-actor.cpp \
engine/addressbook/contact-core.h \
engine/addressbook/contact-core.cpp
diff --git a/lib/engine/framework/action.cpp b/lib/engine/action/action.cpp
similarity index 100%
rename from lib/engine/framework/action.cpp
rename to lib/engine/action/action.cpp
diff --git a/lib/engine/framework/action.h b/lib/engine/action/action.h
similarity index 100%
rename from lib/engine/framework/action.h
rename to lib/engine/action/action.h
diff --git a/lib/engine/framework/actor.cpp b/lib/engine/action/actor.cpp
similarity index 100%
rename from lib/engine/framework/actor.cpp
rename to lib/engine/action/actor.cpp
diff --git a/lib/engine/framework/actor.h b/lib/engine/action/actor.h
similarity index 100%
rename from lib/engine/framework/actor.h
rename to lib/engine/action/actor.h
diff --git a/lib/engine/action/data-action.h b/lib/engine/action/data-action.h
new file mode 100644
index 0000000..d29a8c1
--- /dev/null
+++ b/lib/engine/action/data-action.h
@@ -0,0 +1,217 @@
+
+/* Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2014 Damien Sandras <dsandras seconix com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * Ekiga is licensed under the GPL license and as a special exception,
+ * you have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination,
+ * without applying the requirements of the GNU GPL to the OPAL, OpenH323
+ * and PWLIB programs, as long as you do follow the requirements of the
+ * GNU GPL for all the rest of the software thus combined.
+ */
+
+
+/*
+ * data-action.h - description
+ * --------------------------------
+ * begin : written in February 2014 by Damien Sandras
+ * copyright : (c) 2014 by Damien Sandras
+ * description : An engine action.
+ *
+ */
+
+#ifndef __CONTACT_ACTION_H__
+#define __CONTACT_ACTION_H__
+
+#include "contact.h"
+#include "action.h"
+
+#include <list>
+
+namespace Ekiga {
+
+
+
+ /**
+ * @defgroup contacts Address Book
+ * @{
+ */
+
+ /* A DataAction is an action which is available or not depending on
+ * the data it should act on.
+ *
+ * The main difference between an Action and a DataAction is the fact
+ * that a DataAction is executed for a given (Data, string) tuple
+ * iff the (Data, s) tuple is valid for the given action.
+ */
+ template < class T >
+ class DataAction : public Action
+ {
+
+ public:
+ typedef boost::function2< void, T, const std::string & > Callback;
+ typedef boost::function2< bool, T, const std::string & > Tester;
+ typedef std::list< Tester > TesterList;
+
+
+ /** Create an Action given a name, a description, a callback and
+ * a validity tester.
+ * @param the Action name (please read 'CONVENTION' in action.h).
+ * @param the Action description. Can be used as description in menus
+ * implementing Actions.
+ * @param the callback to executed when the DataAction is activated by
+ * the user (from a menu or from the code itself) for the
+ * given data.
+ * @param the tester checking if the DataAction can be executed for
+ * the given tuple.
+ */
+ DataAction (const std::string & _name,
+ const std::string & _description,
+ Callback _callback,
+ Tester _tester);
+
+
+ /** Create an Action given a name, a description, a callback and
+ * a validity tester.
+ * @param the Action name (please read 'CONVENTION' in action.h).
+ * @param the Action description. Can be used as description in menus
+ * implementing Actions.
+ * @param the callback to executed when the DataAction is activated by
+ * the user (from a menu or from the code itself) for the
+ * given data.
+ * @param a list of testers to check if the DataAction can be executed for
+ * the given tuple.
+ */
+ DataAction (const std::string & _name,
+ const std::string & _description,
+ Callback _callback,
+ const TesterList & _testers);
+
+
+ /** Set the (Data, string) tuple on which the DataAction should be run.
+ * They must stay valid until the DataAction is activated.
+ * The Action is enabled/disabled following the parameters validity.
+ * @param the contact part of the tuple.
+ * @param the s part of the tuple.
+ */
+ void set_data (T _t = T (),
+ const std::string & _s = "");
+
+
+ /** Checks if the DataAction can be run on the (Data, string) tuple given
+ * as argument.
+ * @param the contact part of the tuple.
+ * @param the s part of the tuple.
+ * @return true of the action can be run, false otherwise.
+ */
+ bool can_run_with_data (T _t,
+ const std::string & _s);
+
+
+ private:
+
+ void on_activated ();
+
+ Callback callback;
+ TesterList testers;
+
+ T t;
+ std::string s;
+ };
+
+
+ /**
+ * @}
+ */
+};
+
+
+template < class T >
+Ekiga::DataAction< T >::DataAction (const std::string & _name,
+ const std::string & _description,
+ Callback _callback,
+ Tester _tester) :
+ Action (_name, _description)
+{
+ callback = _callback;
+ testers.push_back (_tester);
+
+ /* DataAction< T > objects should be disabled until data is set */
+ set_data ();
+}
+
+
+template < class T >
+Ekiga::DataAction< T >::DataAction (const std::string & _name,
+ const std::string & _description,
+ Callback _callback,
+ const TesterList & _testers) :
+ Action (_name, _description)
+{
+ callback = _callback;
+ testers = _testers;
+
+ /* DataAction< T > objects should be disabled until data is set */
+ set_data ();
+}
+
+
+template < class T >
+void
+Ekiga::DataAction< T >::set_data (T _t,
+ const std::string & _s)
+{
+ if (can_run_with_data (t, s)) {
+ t = _t;
+ s = _s;
+ enable ();
+ }
+ else {
+ t = T ();
+ s = "";
+ disable ();
+ }
+}
+
+
+template < class T >
+void
+Ekiga::DataAction< T >::on_activated ()
+{
+ if (is_enabled ())
+ callback (t, s);
+}
+
+
+template < class T >
+bool
+Ekiga::DataAction< T >::can_run_with_data (T _t,
+ const std::string & _s)
+{
+ if (!testers.empty ()) {
+ for (typename TesterList::const_iterator it = testers.begin ();
+ it != testers.end ();
+ ++it) {
+ if (!(*it) (_t, _s))
+ return false;
+ }
+ return true;
+ }
+ return false;
+}
+#endif
diff --git a/lib/engine/addressbook/contact-actor.h b/lib/engine/action/data-actor.h
similarity index 66%
rename from lib/engine/addressbook/contact-actor.h
rename to lib/engine/action/data-actor.h
index f06b272..be37a76 100644
--- a/lib/engine/addressbook/contact-actor.h
+++ b/lib/engine/action/data-actor.h
@@ -27,7 +27,7 @@
/*
- * contact-actor.h - description
+ * data-actor.h - description
* -------------------------------
* begin : written in March 2014 by Damien Sandras
* copyright : (c) 2014 by Damien Sandras
@@ -40,13 +40,13 @@
#include <string>
-#include "contact-action.h"
+#include "data-action.h"
#include "actor.h"
namespace Ekiga {
/**
- * @defgroup actions ContactActor
+ * @defgroup actions DataActor
* @{
*/
@@ -56,36 +56,52 @@ namespace Ekiga {
* Actor can register actions through the add_action method.
* acting.
*/
- class ContactActor : public Actor
+ template < class T >
+ class DataActor : public Actor
{
- friend class ContactActorMenu;
public:
+ typedef boost::shared_ptr< DataAction< T > > DataActionPtr;
- /** Register an action on the given ContactActor.
+ /** Register an action on the given DataActor.
*
* Actions that are not "added" using this method will not be usable
* from menus.
*
- * @param A ContactAction.
+ * @param A DataAction.
*/
- void add_action (ActionPtr action);
+ void add_action (DataActionPtr action)
+ {
+ Actor::add_action (action);
+ action->set_data (t, s);
+ }
- /** Set the (Contact, uri) tuple on which the ContactActions should be run.
- * They must stay valid until the ContactAction is activated.
+
+ /** Set the (Data, s) tuple on which the DataActions should be run.
+ * They must stay valid until the DataAction is activated.
* Actions are enabled/disabled following the parameters validity.
- * @param the contact part of the tuple.
- * @param the uri part of the tuple.
+ * @param the Data part of the tuple.
+ * @param the s part of the tuple.
*/
- void set_data (ContactPtr _contact = ContactPtr (),
- const std::string & _uri = "");
-
+ void set_data (T _t = T (),
+ const std::string & _s = "")
+ {
+ ActionMap::iterator it;
+ t = _t;
+ s = _s;
+
+ for (it = actions.begin(); it != actions.end(); ++it) {
+ boost::shared_ptr < DataAction < T > > a = boost::dynamic_pointer_cast< DataAction < T > >
(it->second);
+ if (a)
+ a->set_data (t, s);
+ }
+ }
private:
- ContactPtr contact;
- std::string uri;
+ T t;
+ std::string s;
};
/**
diff --git a/lib/engine/addressbook/contact-core.h b/lib/engine/addressbook/contact-core.h
index 581b964..ddd8e6a 100644
--- a/lib/engine/addressbook/contact-core.h
+++ b/lib/engine/addressbook/contact-core.h
@@ -37,7 +37,7 @@
#define __CONTACT_CORE_H__
#include "services.h"
-#include "contact-actor.h"
+#include "data-actor.h"
#include "source.h"
#include "scoped-connections.h"
@@ -50,6 +50,11 @@ namespace Ekiga
* @{
*/
+ /* DataActor stuff */
+ typedef DataActor< ContactPtr > ContactActor;
+ typedef DataAction< ContactPtr > ContactAction;
+ typedef boost::shared_ptr< ContactAction > ContactActionPtr;
+
class ContactDecorator
{
public:
diff --git a/lib/engine/components/local-roster/local-cluster.cpp
b/lib/engine/components/local-roster/local-cluster.cpp
index 106c681..0526984 100644
--- a/lib/engine/components/local-roster/local-cluster.cpp
+++ b/lib/engine/components/local-roster/local-cluster.cpp
@@ -92,18 +92,20 @@ void Local::Cluster::on_status_received (std::string uri,
void Local::Cluster::register_actions (boost::shared_ptr<Ekiga::ContactCore> contact_core)
{
- Ekiga::TesterList testers;
+ /*
+ Ekiga::ContactAction::TesterList testers;
testers.push_back (boost::bind (&Local::Cluster::is_supported_uri, this, _2));
testers.push_back (boost::bind (&Local::Heap::has_no_presentity_with_uri, heap, _2));
Ekiga::ActionPtr add (new Ekiga::ContactAction ("local-cluster-add", _("Add to Contact List"),
boost::bind (static_cast<void (Local::Heap::*)(const
Ekiga::ContactPtr&, const std::string&)>(&Local::Heap::new_presentity), heap, _1, _2),
testers));
contact_core->add_action (add);
+ */
}
void Local::Cluster::register_actions ()
{
/* Add Actor actions */
- add_action (Ekiga::ActionPtr (new Ekiga::Action ("local-cluster-new", _("New Contact"),
- boost::bind (static_cast<void (Local::Heap::*)(const
std::string&, const std::string&)>(&Local::Heap::new_presentity), heap, "", ""))));
+ // add_action (Ekiga::ActionPtr (new Ekiga::Action ("local-cluster-new", _("New Contact"),
+ // boost::bind (static_cast<void (Local::Heap::*)(const
std::string&, const std::string&)>(&Local::Heap::new_presentity), heap, "", ""))));
}
diff --git a/lib/engine/gui/gtk-core/actor-menu.cpp b/lib/engine/gui/gtk-core/actor-menu.cpp
index 50fa12a..e03bf55 100644
--- a/lib/engine/gui/gtk-core/actor-menu.cpp
+++ b/lib/engine/gui/gtk-core/actor-menu.cpp
@@ -40,7 +40,7 @@
#include "action.h"
#include "contact-core.h"
-#include "contact-actor.h"
+#include "data-actor.h"
#include "actor-menu.h"
@@ -216,21 +216,3 @@ Ekiga::ActorMenu::build ()
return "<?xml_content version=\"1.0\"?><interface>" + xml_content + "</interface>";
}
-
-
-
-Ekiga::ContactActorMenu::ContactActorMenu (Ekiga::Actor & _obj) : ActorMenu (_obj)
-{
-}
-
-
-void
-Ekiga::ContactActorMenu::set_data (Ekiga::ContactPtr _contact,
- const std::string & _uri)
-{
- Ekiga::ContactActor *actor = dynamic_cast <Ekiga::ContactActor *> (&obj);
- if (actor)
- actor->set_data (_contact, _uri);
-
- sync_gio_actions ();
-}
diff --git a/lib/engine/gui/gtk-core/actor-menu.h b/lib/engine/gui/gtk-core/actor-menu.h
index 1f71b1d..84ad237 100644
--- a/lib/engine/gui/gtk-core/actor-menu.h
+++ b/lib/engine/gui/gtk-core/actor-menu.h
@@ -39,7 +39,8 @@
#define __LIVE_OBJECT_MENU_H__
#include "action.h"
-#include "contact-action.h"
+#include "data-action.h"
+#include "null-deleter.h"
#include <gtk/gtk.h>
@@ -113,23 +114,26 @@ namespace Ekiga {
GtkBuilder *builder;
};
- class ContactActorMenu : public ActorMenu
+ template < class T >
+ class DataActorMenu : public ActorMenu
{
public:
- ContactActorMenu (Actor & obj);
+ DataActorMenu (DataActor< T > & _obj) : ActorMenu (_obj) {};
- /** Set the data usable by the ContactActorMenu.
+ /** Set the (data, string) tuple usable by the DataActorMenu.
* Available actions will depend on the data being set.
- * @param a ContactPtr (if any).
- * @param an uri (if any).
+ * @param the Data part of the tuple.
+ * @param the s part of the tuple.
*/
- void set_data (ContactPtr _contact = ContactPtr (),
- const std::string & _uri = "");
+ void set_data (T _t = T (),
+ const std::string & _s = "")
+ {
+ boost::shared_ptr< DataActor< T > > a = boost::dynamic_pointer_cast< DataActor< T > >
(boost::shared_ptr< Actor > (&obj, null_deleter2 ()));
+ if (a) a->set_data (_t, _s);
+ sync_gio_actions ();
+ };
};
-
typedef boost::shared_ptr<ActorMenu> ActorMenuPtr;
- typedef boost::shared_ptr<ContactActorMenu> ContactActorMenuPtr;
}
-
#endif
diff --git a/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp
b/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp
index 53bf113..3fb17f4 100644
--- a/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp
+++ b/lib/engine/gui/gtk-frontend/call-history-view-gtk.cpp
@@ -62,7 +62,7 @@ struct _CallHistoryViewGtkPrivate
boost::shared_ptr<History::Book> book;
boost::shared_ptr<Ekiga::ActorMenu> menu;
- boost::shared_ptr<Ekiga::ContactActorMenu> contact_menu;
+ boost::shared_ptr<Ekiga::DataActorMenu < Ekiga::ContactPtr > > contact_menu;
GtkListStore* store;
GtkTreeView* tree;
boost::signals2::scoped_connection connection;
@@ -213,7 +213,7 @@ on_selection_changed (G_GNUC_UNUSED GtkTreeSelection* selection,
call_history_view_gtk_get_selected (self, &contact);
if (contact == NULL)
- self->priv->contact_menu->set_data ();
+ self->priv->contact_menu->set_data (Ekiga::ContactPtr (), "");
else
self->priv->contact_menu->set_data (Ekiga::ContactPtr (contact, null_deleter ()),
contact->get_uri ());
@@ -363,7 +363,8 @@ call_history_view_gtk_new (boost::shared_ptr<History::Book> book,
/* register book actions */
self->priv->menu = Ekiga::ActorMenuPtr (new Ekiga::ActorMenu (*book));
- self->priv->contact_menu = Ekiga::ContactActorMenuPtr (new Ekiga::ContactActorMenu (*ccore));
+ self->priv->contact_menu =
+ boost::shared_ptr< Ekiga::DataActorMenu < Ekiga::ContactPtr> > (new Ekiga::DataActorMenu<
Ekiga::ContactPtr > (*ccore));
return GTK_WIDGET (self);
}
diff --git a/lib/engine/gui/gtk-frontend/main_window.cpp b/lib/engine/gui/gtk-frontend/main_window.cpp
index c07914c..f1aa86f 100644
--- a/lib/engine/gui/gtk-frontend/main_window.cpp
+++ b/lib/engine/gui/gtk-frontend/main_window.cpp
@@ -156,7 +156,7 @@ struct _EkigaMainWindowPrivate
Ekiga::scoped_connections connections;
/* Menu */
- boost::shared_ptr<Ekiga::ContactActorMenu> contact_menu;
+ boost::shared_ptr<Ekiga::DataActorMenu < Ekiga::ContactPtr > > contact_menu;
/* GSettings */
boost::shared_ptr<Ekiga::Settings> user_interface_settings;
@@ -1244,7 +1244,7 @@ gm_main_window_new (GmApplication *app)
= core->get<History::Source> ("call-history-store");
mw->priv->contact_menu =
- Ekiga::ContactActorMenuPtr (new Ekiga::ContactActorMenu (*mw->priv->contact_core));
+ boost::shared_ptr< Ekiga::DataActorMenu < Ekiga::ContactPtr> > (new Ekiga::DataActorMenu<
Ekiga::ContactPtr > (*mw->priv->contact_core));
ekiga_main_window_connect_engine_signals (mw);
diff --git a/lib/engine/protocol/call-core.cpp b/lib/engine/protocol/call-core.cpp
index bdfc1e7..0abcdcb 100644
--- a/lib/engine/protocol/call-core.cpp
+++ b/lib/engine/protocol/call-core.cpp
@@ -42,7 +42,7 @@
#include "call-manager.h"
-#include "contact-action.h"
+#include "data-action.h"
using namespace Ekiga;
@@ -152,15 +152,15 @@ bool CallCore::is_supported_uri (const std::string & uri)
void CallCore::register_actions (boost::shared_ptr<ContactCore> _contact_core)
{
contact_core = _contact_core;
- ActionPtr call (new ContactAction ("call", _("Call"),
- boost::bind (&CallCore::dial, this, _2),
- boost::bind (&CallCore::can_call, this, _2)));
- ActionPtr xfer (new ContactAction ("transfer", _("Transfer"),
- boost::bind (&CallCore::transfer, this, _2, false),
- boost::bind (&CallCore::can_transfer, this, _2)));
- ActionPtr msg (new ContactAction ("message", _("Message"),
- boost::bind (&CallCore::message, this, _1, _2),
- boost::bind (&CallCore::is_supported_uri, this, _2)));
+ ContactActionPtr call (new ContactAction ("call", _("Call"),
+ boost::bind (&CallCore::dial, this, _2),
+ boost::bind (&CallCore::can_call, this, _2)));
+ ContactActionPtr xfer (new ContactAction ("transfer", _("Transfer"),
+ boost::bind (&CallCore::transfer, this, _2, false),
+ boost::bind (&CallCore::can_transfer, this, _2)));
+ ContactActionPtr msg (new ContactAction ("message", _("Message"),
+ boost::bind (&CallCore::message, this, _1, _2),
+ boost::bind (&CallCore::is_supported_uri, this, _2)));
contact_core->add_action (call);
contact_core->add_action (xfer);
contact_core->add_action (msg);
diff --git a/plugins/evolution/Makefile.am b/plugins/evolution/Makefile.am
index aa253fd..2c386ee 100644
--- a/plugins/evolution/Makefile.am
+++ b/plugins/evolution/Makefile.am
@@ -2,6 +2,7 @@ plugin_LTLIBRARIES = libgmevolution.la
AM_CXXFLAGS = \
$(BOOST_CPPFLAGS) $(EDS_CFLAGS) $(GLIB_CFLAGS) \
+ -I$(top_srcdir)/lib/engine/action \
-I$(top_srcdir)/lib/engine/framework \
-I$(top_srcdir)/lib/engine/addressbook
diff --git a/plugins/ldap/Makefile.am b/plugins/ldap/Makefile.am
index c9154c9..8074f01 100644
--- a/plugins/ldap/Makefile.am
+++ b/plugins/ldap/Makefile.am
@@ -4,6 +4,7 @@ AM_CPPFLAGS = \
$(LDAP_CFLAGS) $(BOOST_CPPFLAGS) $(GLIB_CFLAGS) $(XML_CFLAGS) \
-I$(top_srcdir)/lib/ \
-I$(top_srcdir)/lib/settings \
+ -I$(top_srcdir)/lib/engine/action \
-I$(top_srcdir)/lib/engine/framework \
-I$(top_srcdir)/lib/engine/addressbook
diff --git a/plugins/libnotify/Makefile.am b/plugins/libnotify/Makefile.am
index 5592f8f..69996d5 100644
--- a/plugins/libnotify/Makefile.am
+++ b/plugins/libnotify/Makefile.am
@@ -4,6 +4,7 @@ AM_CXXFLAGS = \
$(BOOST_CPPFLAGS) $(NOTIFY_CFLAGS) \
-I$(top_srcdir)/lib/engine/framework \
-I$(top_srcdir)/lib/engine/notification \
+ -I$(top_srcdir)/lib/engine/action \
-I$(top_srcdir)/lib/engine/addressbook \
-I$(top_srcdir)/lib/engine/protocol
diff --git a/src/Makefile.am b/src/Makefile.am
index e225ec7..6fb54f4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -9,6 +9,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/lib/engine/gui/gtk-frontend \
-I$(top_srcdir)/lib/engine/components/call-history \
-I$(top_srcdir)/lib/engine/account \
+ -I$(top_srcdir)/lib/engine/action \
-I$(top_srcdir)/lib/engine/addressbook \
-I$(top_srcdir)/lib/engine/chat \
-I$(top_srcdir)/lib/engine/notification \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]