1. Accounts
***********

In order to use QTXpost, you must have an account on a LiveJournal-based blogging site which supports XML-RPC. (The program has been tested with LiveJournal.com, InsaneJournal.com, Dreamwidth.org, Inksome.com and Scribbld.net)

Adding a new account
********************

To add an account, go to File->Servers and click "add new account". Then fill the provided form and click Update. 

Explanation of the form:

Label: a unique descriptive label which identifies this account for you. You can write anything you want.

Server: usually the URL of the blog server (e.g. dreamwidth.org)

Username: your username on the server. (Note: if you have several user accounts (not communities) on the same server, you have to create a separate QTXpost account for each username.)

Password: your password on the server.

Server type: DW-based server (Dreamwidth code branch) or LJ-based server

Hidden: can be used to hide rarely used accounts from the main menu. Leave it blank when adding a new account.

Position: it controls the order in which the accounts are presented in the main menu, from left to right. (Later, a drag&drop interface will be implemented for reordering the accounts.) If you leave it blank, the new account will be added as the last one.

Update icons: download user icons and icon keywords from the server. It must be checked when creating a new account. Note: updating icons can take time, dependent on the number of icons and connection speed - please wait till the progress bar reaches 100%.

Force: re-download all user icons from the server. When the new account is created, all the icons are downloaded anyway, so this button can remain unchecked.

Update moods: download the list of moods from the server. It must be checked when creating a new account.

Updating an account
*******************

The update option is used both to update the information in the local database (i.e. label, username/password, etc) and to update user icons, moods, communities and custom friend groups from the server. The program doesn't automatically check the server for updates.

Update icons: if it is checked, the icon keywords are updated, and only new icons are downloaded.

Force: if it is checked, all user icons are downloaded. (It may be needed, for example, if something had happened which left the local installation in inconsistent state.) Normally it should not be used.

Update moods: normally should not be used, because moods on the server are changed very rarely.


Deleting an account
*******************

"Delete" only deletes the account in QTXPost database - it doesn't delete your username from the server. You can always add this account again later.

2. Posting
**********

Type the message in the post entry field. It's possible to use HTML tags and LJ-specific tags. Currently there is no rich text editor, but there's "Preview" to check the formatting of the message.

Select the accounts to post the message by clicking the checkbox to the left of the account label. If in addition you want to crosspost it to several communities on one account, click the button below the user icon for each server and select the required communities. The label of the button reflects the number of selected communities. By default, if nothing is selected, the post goes to the main user's journal.

Upon clicking "Post", the message is posted to all the selected accounts and communities. The resulting URLs (or error messages in case of failure) appear in the progress window.

The links in the progress window are clickable; clicking on a such link opens the default Web browser specified for the user's desktop environment. (For example, in KDE it's defined in Control Center -> KDE Components ->File Associations -> default application for text/html).

The user icons can be selected separately for every server - it's necessary because every server has a different icon quota. There's an option to use the same user icon whenever possible - click the checkbox to the right of the account label on one of the currently selected accounts, to mark it as "main"; then whenever you select a different user icon on this account, the icon with the same keyword will be selected on all currently selected servers (provided there exists an icon with the same keyword). Selecting the default icon (entry with '-----') will select the default icon on every server, not the icon with the same keyword as the default icon on the "main" server.

Usernames/passwords are stored in the database and are automatically retrieved when the program is started, so there is no need to explicitly login to the server before posting a message, which is convenient. However, it also means that it's not possible to "logout", and everyone who can access your Linux account under your username, can post to your blogs. Please protect your Linux account from unauthorized use.


Moods
***** 

Different servers can have a different collection of moods. When several servers are selected for crossposting, the moods menu contains the moods collected from all the servers; but if a mood is missing at least on one server, it's marked in the menu with an asterisk. If this mood is selected for posting, it will be sent as a text string to the server where it does not exist, so no mood icon will be available.

It's possible to enter custom moods in the mood text entry field. If this mood doesn't exist on the server, it will appear without the mood icon.

Security
********

If "custom" is selected for security, then custom friend groups must be selected for posting the message. It is done by clicking on the button under the user icon and choosing the "Friend groups" tab. Friend groups must be selected separately on every account - they are not copied the same way as user icon keywords.

Note: custom friend groups currently do not work on Dreamwidth. This will be fixed in the near future. 

Backdating
**********

If the "backdated" button is not selected, the date of the post will be current date/time. By clicking "backdated", it is possible to enter the date manually in the entry field which appears. If, in addition, the button "hidden" is clicked, the post will appear on your journal but not on your friends' reading pages.

3. Editing
**********

Edit the last post 
------------------
To edit the last post, select one or several servers and go to Edit->Edit last post.

The last post will be downloaded from the first (leftmost) selected server, together with all its attributes. The other selected servers will be checked, and if the last post there appears to be out of sync (i.e. either it has a different subject, or the posting time differs for more than 3 minutes), there is a warning message. 

An "edit post" button will appear in the menu, together with the URL of the post which is currently being edited.

Upon clicking "Post", the last post on all selected servers is updated with the current contents and attributes (including security). If some of the posts are out of sync, they are not updated automatically - there's a warning message, and the user can either proceed with the update, overwriting the previous posts, or to cancel the update - in this case, it's possible to deselect the out-of-sync servers and update the remaining ones.

This option can be used for copying an existing post from one server to another - if the button "edit post" is de-selected, the message will be sent as a new post. (You might want to deselect "backdated" as well, if you want to change the time to the current date/time.)

If there are several communities selected in the community selection box, the last post will be downloaded from the first (topmost) community. Note that if this post was not created by the same user, it will not be possible to edit it - the server will return error message.


Edit posts
----------

To select a post for editing, go to Edit->Select post. 20 last posts (without contents - only subjects, some attributes, and beginning of the post) will be downoaded from the first (leftmost) selected server. The button "More" can be used to download more posts if needed. To start downloading from a particular date, enter the date (yyyy-mm-dd format) into the text field and click "Before date".

Select the post by clicking the corresponding radio button and then "Select". The post will be downloaded from the first selected server; the other servers will be checked for the corresponding crossposted entry (by date and subject), and if an entry with the same subject is not found within the interval of plus-minus 3 min, the warning message "Nothing crossposted" is issued. 

Upon clicking "Post", the selected post is updated on all the servers which are in sync. If some of the servers are out of sync (as described above), they must be deselected before proceeding with the update.

The same considerations as above apply to the posts selected from communities - it is possible to download them, but editing them will fail if the post was not created by the same user.


4. Preferences
**************

Preferences->Settings menu
**************************

All the settings are persistent - they are saved in the database whenever they are updated (upon clicking Save), and reloaded when the program is started.

Show music: show music text entry field in the main window. Clicking "Detect" button in the main window will update current music from Amarok media player. (Tested under KDE, not sure if it works without it.) For other players, it has to be updated manually.

Show location: show location text entry field in the main window.

Show tags: show tags text entry field in the main window. Tags are comma-separated.

Show word count: show word count button at the bottom of the main window. Upon clicking on this button, the word count is recalculated. This function requires the Unix "wc" binary.

Crossposting: should be checked when the program operates in crossposting mode. When this button is unchecked, it is possible to select only one account from the list of accounts - selecting a different account deselects the previous one. This is used to disable accidental crossposting in specific setups.

Save communities crossposting: when this button is checked, the set of selected communities is loaded from the database every time when the program is started; otherwise, the program starts with all communities unselected.

Security: default security for new posts.

Save custom groups: when this button is checked, the selected custom groups are loaded from the database every time when the program is started (this might be useful if one is normally using custom security for the new posts).

Add signature: when this button is checked, the text from the text field below is automatically appended to the message before posting it. It is not shown in the post window. This option can be used for inserting "web bugs" into the posts in order to track the viewing statistics.


Preferences->Database menu (advanced usage)
*******************************************

QTXpost uses a database for storing its data. The default database is SQLITE (version 3), but if you're running a MySQL server on your machine, it's possible to use a MySQL database instead. This is mostly for the convenience of the developer - there seem to be no difference in performance.

To use a MySQL database: create a database, create a MySQL user for it (with create/select/insert/update/delete privileges), switch the database type to "mysql" and enter the required details. The database schema will be created automatically. Alternatively, you can create the schema manually, using the file sql/mysql.schema - then the mysql user doesn't need the "create" privilege.

It's possible to switch between sqlite and mysql any time. The contents of the database are not copied - i.e. if you had created a set of accounts using sqlite, you'll have to create them all again after switching to mysql.

Config files (advanced usage)
*****************************

The default configuration directory is ~/.qtxpost . It is created automatically on the first start, together with the configuration file (qtxpost.conf) which contains default settings. The configuration file can be edited in a text editor when the program is not running. Usually it's not necessary because all the preferences can be edited through the Preferences menu.

Multiline signatures are saved with the backslash marking the line continuation.

The user icons are not stored in the database, but as image files in the subdirectories of the configuration directory (under the internal database IDs of the accounts).

The sqlite database is also stored in the configuration directory, under the name qtxpost.db . If necessary, it can be viewed and edited through the Linux utility "sqlite3".

It is possible to run the program with a different configuration directory, using a command-line parameter --config=DIRECTORY. For example: 

qtxpost --config=/home/catness/.qtx_alternative

This allows to use several sets of accounts with different preferences in a convenient way. (If mysql is used for both setups, make sure that the databases are different.)

5. Stylesheets
**************

It is possible to specify a Qt stylesheet on command line, using the standard Qt "-stylesheet" parameter. A sample stylesheet, adopted from Qt toolkit examples, is provided with the program: qss/coffee.qss . It can be loaded as:

qtxpost -stylesheet qss/coffee.qss
 
See Qt documentation for the description how to create stylesheets: 
http://doc.trolltech.com/4.4/stylesheet-examples.html

6. Open/Save files
******************

The Open and Save functions in the main menu allow to load an existing file into the post window, and save the contents of the post window into a file. The file size limit for loading is 64K (which is the limit for a LJ entry).


7. Friend manager
*****************

(Note: friend manager doesn't work with Dreamwidth yet)

Friend manager consists of 2 tabs: "Friends" and "Groups". The 1st tab allows to view friends and communities and to add/delete friends. The 2nd tab allows to add/delete/rename custom groups and to add/delete friends to/from groups.

To use friend manager, select an account through the account selection menu, then click on "Update from server" to initialize the data from the server. "Update from server" must be used every time when the local friends database is not in sync with the server, e.g. when the user updates friends through another application or through the web interface. QTXPost doesn't automatically update data from the server every time because it's a time-consuming process.

If you clicked one or more checkboxes in the "Friend" column to add or delete friends, click "Save changes" to send the request to the server to activate the changes. All the other operations (i.e. add a new friend, and all operations with groups) are performed instantly.

Custom groups
-------------

- To add user to a group: click on username and drag & drop it into the group.

- To delete a user from a group: click on the username in this group and press Delete key.

- To add new group:  use "New group" text entry.

- To delete a group: click on the group name and press Delete key.

- To rename a group: double-click on the group name and type the new name, then press Enter.














