summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-02-06 22:50:30 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-02-07 15:22:48 (GMT)
commitafcfa9dd33cfb5e36edf7d8148a7f8b24c976741 (patch)
treec16d40dbb089a9bcf70fafc2d50def34a9984e58 /Swift/Controllers/UIInterfaces
parent90a511ed523cfaf500dd27316b12e128e0c70ce3 (diff)
downloadswift-contrib-afcfa9dd33cfb5e36edf7d8148a7f8b24c976741.zip
swift-contrib-afcfa9dd33cfb5e36edf7d8148a7f8b24c976741.tar.bz2
Reworking contact editing.
Collapsed rename, group edit, and remove into one dialog. Moved contact editing logic to controllers.
Diffstat (limited to 'Swift/Controllers/UIInterfaces')
-rw-r--r--Swift/Controllers/UIInterfaces/ContactEditWindow.h33
-rw-r--r--Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h18
-rw-r--r--Swift/Controllers/UIInterfaces/UIFactory.h4
3 files changed, 54 insertions, 1 deletions
diff --git a/Swift/Controllers/UIInterfaces/ContactEditWindow.h b/Swift/Controllers/UIInterfaces/ContactEditWindow.h
new file mode 100644
index 0000000..3feb718
--- /dev/null
+++ b/Swift/Controllers/UIInterfaces/ContactEditWindow.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include <Swiften/Base/boost_bsignals.h>
+#include <boost/shared_ptr.hpp>
+#include <set>
+#include <vector>
+
+#include <Swiften/Base/String.h>
+
+namespace Swift {
+ class JID;
+
+ class ContactEditWindow {
+ public:
+ virtual ~ContactEditWindow() {};
+
+ virtual void setEnabled(bool b) = 0;
+
+ virtual void setContact(const JID& jid, const String& name, const std::vector<String>& groups, const std::set<String>& allGroups) = 0;
+
+ virtual void show() = 0;
+ virtual void hide() = 0;
+
+ boost::signal<void ()> onRemoveContactRequest;
+ boost::signal<void (const String& /* name */, const std::vector<String>& /* groups */)> onChangeContactRequest;
+ };
+}
diff --git a/Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h b/Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h
new file mode 100644
index 0000000..8ad56c0
--- /dev/null
+++ b/Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include <Swift/Controllers/UIInterfaces/ContactEditWindow.h>
+
+namespace Swift {
+ class ContactEditWindowFactory {
+ public:
+ virtual ~ContactEditWindowFactory() {};
+
+ virtual ContactEditWindow* createContactEditWindow() = 0;
+ };
+}
diff --git a/Swift/Controllers/UIInterfaces/UIFactory.h b/Swift/Controllers/UIInterfaces/UIFactory.h
index 11623d7..9b36ac5 100644
--- a/Swift/Controllers/UIInterfaces/UIFactory.h
+++ b/Swift/Controllers/UIInterfaces/UIFactory.h
@@ -16,6 +16,7 @@
#include <Swift/Controllers/UIInterfaces/UserSearchWindowFactory.h>
#include <Swift/Controllers/UIInterfaces/XMLConsoleWidgetFactory.h>
#include <Swift/Controllers/UIInterfaces/ProfileWindowFactory.h>
+#include <Swift/Controllers/UIInterfaces/ContactEditWindowFactory.h>
namespace Swift {
class UIFactory :
@@ -28,7 +29,8 @@ namespace Swift {
public XMLConsoleWidgetFactory,
public UserSearchWindowFactory,
public JoinMUCWindowFactory,
- public ProfileWindowFactory {
+ public ProfileWindowFactory,
+ public ContactEditWindowFactory {
public:
virtual ~UIFactory() {}
};