Warning, /network/kte-collaborative/README is written in an unsupported language. File is not indexed.
0001 kte-collaborative: Collaborative Text Editor for KDE 0002 0003 Terminology 0004 ----------- 0005 Infinote Server: Server hosting collaborative editing sessions 0006 Session: A collaborative editing instance of a note 0007 Note: An editable document on an infinote server 0008 0009 Description of the source tree 0010 ------------------------------ 0011 Here's a short description of where what source code is located. 0012 The program consists of 4 main components: 0013 - The KTextEditor plugin (kte-plugin/ directory): a plugin for KTextEditor which is loaded 0014 in e.g. kate. It is responsible for the actual collaborative editing, i.e. synchronization 0015 of the text buffer. This includes the text highlighting and popup widgets. 0016 It also provides the "Collaborative" menu and its actions. 0017 It will treat any document starting with inf:// as a collaborative document. 0018 - The KIO slave (kioslave/ directory): a KIO slave, which is responsible for listing files 0019 on collaborative servers. It offers the inf:// protocol for that purpose. Clicking a document 0020 with that protocol will open it in e.g. kate, which notices its URL starts with inf:// and will 0021 thus try to synchronize it. Read about the KDE KIO framework for more information; this specific 0022 protocol implementation is rather simple. 0023 - Telepathy integration (kte-plugin/ktpintegration directory). This mainly consists of some front-end 0024 code (dialogs etc.) for creating channel requests, and two small programs (the server- and client tube 0025 handler) which handle channels on the offering and receiving end, respectively. 0026 The way this works is quite complicated, and will require a separate document to be explained. 0027 - The notifier module: This is a small module which runs in the background, and is responsible for updating 0028 the file views in e.g. dolphin. It also displays "A collaborative document was added" notifications 0029 in the tray. 0030 0031 And now, the other way round; which directory contains what? 0032 common/ Stuff which is common to more than one of the above components is located here. 0033 That is mostly the connection stuff, the text buffer sync stuff (needed for the KIO), 0034 the document tree related things ("browsers", representations of files/folders on a server), 0035 and various smaller utility functions. 0036 notifier-module/ The notification module, as described above. 0037 kioslave/ The KIO slave, as described above. 0038 kte-plugin/ The KTextEditor plugin itself. 0039 ui/ Dialogs and widgets used in the KTE plugin. 0040 settings/ The settings module reachable from Collaborative -> Configure 0041 ktpintegration/ Integration with Telepathy and KDE-Telepathy. Contains the client- and server side 0042 channel handlers, and classes for creating requests. 0043 Arguably, the client- and server side channel handlers are not really part of the KTE 0044 plugin and could be located in a separate directory, but are currently not. 0045 tests/ Unit tests. Currently, there's only unit tests for the text buffer synchronization. 0046 0047 Starting an Infinote Serever 0048 ---------------------------- 0049 kte-collaborative does not have the ability to start an infinote server. If you would like 0050 to run an infinote server, you can use the 'infinoted' application installed 0051 with libinfinity. 0052 Example usage, using no encryption: 0053 infinoted --security-polity=no-tls 0054 On some systems, the executable might be called infinoted-0.5 or -0.6. 0055 0056 Connecting to an Infinote Server 0057 -------------------------------- 0058 kte-collaborative treats each file with an URL which uses the inf:// protocol as a collaborative 0059 document. You can thus just open inf://firstname.lastname@example.org:port/path/to/document.txt in the 0060 editor, and the plugin should connect you to the session. You can also use the File -> Open dialog 0061 to select the document after entering the base URL. Alternatively, you can use Collaborative -> 0062 Open collaborative document for a nice GUI for entering connection parameters. 0063 You can also use Telepathy to establish pseudo peer-to-peer connections to jabber contacts from 0064 the same menu.