README: Discussion MUC, change url

This commit is contained in:
fiaxh 2017-08-17 21:24:01 +02:00
parent a24e88f48b
commit a8aceb1e39
33 changed files with 49 additions and 239 deletions

View File

@ -34,7 +34,9 @@ Build
Resources
---------
Please refer to [the wiki](https://github.com/dino/dino/wiki) for further information.
Join our conference room at [chat@dino.im](xmpp:chat@dino.im?join)
Please refer to [the wiki](https://github.com/dino/dino/wiki) for further information or check out our [website](https://dino.im).
License
-------

191
dino.spec
View File

@ -1,191 +0,0 @@
# To build current git tree into RPM using tito:
# - Run `tito build --rpm --test`
# To build latest tagged release from git into RPM using tito:
# - Run `tito build --rpm`
# To build older tagged release from git into RPM using tito:
# - Run `tito build --rpm --tag=vVERSION`
# To build a tagged release from git into RPM using rpmbuild:
# - Put version number into Version
# - Run `spectool -g -R dino.spec`
# - Run `rpmbuild -bb dino.spec`
# To build a specific git commit into RPM using rpmbuild:
# - Put commit id into COMMIT_ID_HERE
# - Use second (currently commented) line for Release, Source0 and %setup
# - Run `spectool -g -R dino.spec`
# - Run `rpmbuild -bb dino.spec`
%global commit COMMIT_ID_HERE
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: dino
Version: 0.0
Release: 1%{?dist}
#Release: 1.git.%{shortcommit}%{?dist}
Summary: Modern Jabber/XMPP Client using GTK+/Vala
License: GPLv3
URL: https://github.com/dino/dino
Source0: https://github.com/dino/dino/archive/v%{version}.zip
#Source0: https://github.com/dino/dino/archive/%{commit}.zip
BuildRequires: vala >= 0.30
BuildRequires: vala-tools >= 0.30
BuildRequires: cmake
BuildRequires: git
BuildRequires: ninja-build
BuildRequires: desktop-file-utils
BuildRequires: gettext
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.38
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.22
BuildRequires: pkgconfig(gee-0.8) >= 0.10
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: libgcrypt-devel
BuildRequires: gpgme-devel
Requires: hicolor-icon-theme
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# Technically these aren't requirements, we just want them always installed...
Requires: %{name}-plugin-omemo%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-openpgp%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-http-files%{?_isa} = %{version}-%{release}
%description
Dino is an instant messaging client for the Jabber/XMPP network,
providing a unique and modern user experience based on the latest
technology from the GNOME project. Dino is still in early
development and has limited features, but already has basic support
for XMPP's latest encryption features. Future versions will provide
a plug-in API, so that developers can easily add new optional
features.
%package libs
Summary: Libraries for %{name}
%package libs-devel
Summary: Development files for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%package plugin-omemo
Summary: OMEMO plugin for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%package plugin-openpgp
Summary: OpenPGP plugin for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%package plugin-http-files
Summary: Http files plugin for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description libs
The %{name}-libs package contains libraries used and provided by %{name}.
%description libs-devel
The %{name}-libs-devel package contains libraries and header files for
developing plugins for %{name}.
%description plugin-omemo
The %{name}-plugin-omemo package contains a plugin that adds support for
OMEMO encryption to Dino.
%description plugin-openpgp
The %{name}-plugin-openpgp package contains a plugin that adds support for
OpenPGP encryption to Dino.
%description plugin-http-files
The %{name}-plugin-http-files package contains a plugin that adds support for
http file upload and download to Dino.
%prep
%setup -n "dino-v%{version}"
#%setup -n "dino-%{commit}"
%build
%configure
make
%install
make install DESTDIR="%{buildroot}"
desktop-file-validate %{buildroot}%{_datadir}/applications/dino.desktop
%post
update-desktop-database &>/dev/null || :
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun
update-desktop-database &> /dev/null || :
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans
gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor &>/dev/null || :
%post libs
/sbin/ldconfig
if [ $1 -eq 0 ] ; then
glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
fi
%postun libs
/sbin/ldconfig
%posttrans libs
glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%files
%license LICENSE
%doc README.md
%{_bindir}/dino
%{_datadir}/applications/dino.desktop
%{_datadir}/icons/hicolor/*/apps/dino.*
%{_datadir}/icons/hicolor/*/apps/dino-*
%{_datadir}/icons/hicolor/*/status/dino-*
%{_datadir}/locale/*/LC_MESSAGES/dino.mo
%files libs
%license LICENSE
%doc README.md
%{_datadir}/glib-2.0/schemas/dino.gschema.xml
%{_libdir}/libdino.so.*
%{_libdir}/libqlite.so.*
%{_libdir}/libxmpp-vala.so.*
%files libs-devel
%license LICENSE
%doc README.md
%{_includedir}/*
%{_libdir}/libdino.so
%{_libdir}/libqlite.so
%{_libdir}/libxmpp-vala.so
%{_datadir}/vala/vapi
%files plugin-omemo
%license LICENSE
%doc README.md
%{_libdir}/dino/plugins/omemo.so
%{_datadir}/locale/*/LC_MESSAGES/dino-omemo.mo
%files plugin-openpgp
%license LICENSE
%doc README.md
%{_libdir}/dino/plugins/openpgp.so
%{_datadir}/locale/*/LC_MESSAGES/dino-openpgp.mo
%files plugin-http-files
%license LICENSE
%doc README.md
%{_libdir}/dino/plugins/http-files.so
%changelog
* Mon Apr 3 2017 - 0.0-1
- Split packages
* Fri Mar 24 2017 - 0.0-0
- Initial version

View File

@ -22,4 +22,4 @@
</key>
</schema>
</schemalist>
</schemalist>

View File

@ -35,4 +35,4 @@ public class Settings {
}
}
}
}

View File

@ -54,7 +54,7 @@ compile_gresources(
TARGET ${CMAKE_CURRENT_BINARY_DIR}/resources/resources.c
TYPE EMBED_C
RESOURCES ${RESOURCE_LIST}
PREFIX /org/dino-im
PREFIX /im/dino
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data
)

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.AddConversation.Chat {
[GtkTemplate (ui = "/org/dino-im/add_conversation/add_contact_dialog.ui")]
[GtkTemplate (ui = "/im/dino/add_conversation/add_contact_dialog.ui")]
protected class AddContactDialog : Gtk.Dialog {
public Account? account {
@ -55,4 +55,4 @@ protected class AddContactDialog : Gtk.Dialog {
}
}
}
}

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.AddConversation.Conference {
[GtkTemplate (ui = "/org/dino-im/add_conversation/add_groupchat_dialog.ui")]
[GtkTemplate (ui = "/im/dino/add_conversation/add_groupchat_dialog.ui")]
protected class AddGroupchatDialog : Gtk.Dialog {
[GtkChild] private Stack accounts_stack;

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.AddConversation.Conference {
[GtkTemplate (ui = "/org/dino-im/add_conversation/conference_details_fragment.ui")]
[GtkTemplate (ui = "/im/dino/add_conversation/conference_details_fragment.ui")]
protected class ConferenceDetailsFragment : Box {
public bool done {
@ -140,4 +140,4 @@ protected class ConferenceDetailsFragment : Box {
}
}
}

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.AddConversation {
[GtkTemplate (ui = "/org/dino-im/add_conversation/list_row.ui")]
[GtkTemplate (ui = "/im/dino/add_conversation/list_row.ui")]
public class ListRow : ListBoxRow {
[GtkChild] public Image image;
@ -36,4 +36,4 @@ public class ListRow : ListBoxRow {
}
}
}
}

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.AddConversation {
[GtkTemplate (ui = "/org/dino-im/add_conversation/select_jid_fragment.ui")]
[GtkTemplate (ui = "/im/dino/add_conversation/select_jid_fragment.ui")]
public class SelectJidFragment : Gtk.Box {
public signal void add_jid();

View File

@ -17,7 +17,7 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
Notify.init("dino");
Environment.set_application_name("Dino");
Gtk.Window.set_default_icon_name("dino");
IconTheme.get_default().add_resource_path("/org/dino-im/icons");
IconTheme.get_default().add_resource_path("/im/dino/icons");
activate.connect(() => {
create_set_app_menu();
@ -57,7 +57,7 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
add_action(quit_action);
add_accelerator("<Ctrl>Q", "app.quit", null);
Builder builder = new Builder.from_resource("/org/dino-im/menu_app.ui");
Builder builder = new Builder.from_resource("/im/dino/menu_app.ui");
MenuModel menu = builder.get_object("menu_app") as MenuModel;
set_app_menu(menu);

View File

@ -30,12 +30,11 @@ class EditHistory {
}
public bool on_text_input_key_press(EventKey event) {
if ((event.state & ModifierType.CONTROL_MASK) > 0) {
if (event.keyval == Key.z) {
undo();
} else if (event.keyval == Key.Z) {
redo();
}
bool ctrl_pressed = (event.state & ModifierType.CONTROL_MASK) > 0;
if (ctrl_pressed && event.keyval == Key.z) {
undo();
} else if (ctrl_pressed && (event.keyval in new uint[]{ Key.Z, Key.y } )) {
redo();
} else if (event.keyval in new uint[]{ Key.space, Key.Tab, Key.ISO_Left_Tab }) {
if (indices[conversation] < histories[conversation].size - 1) {
histories[conversation] = histories[conversation].slice(0, indices[conversation] + 1);

View File

@ -7,7 +7,7 @@ using Xmpp;
namespace Dino.Ui.ChatInput {
[GtkTemplate (ui = "/org/dino-im/chat_input.ui")]
[GtkTemplate (ui = "/im/dino/chat_input.ui")]
public class View : Box {
[GtkChild] private ScrolledWindow scrolled;

View File

@ -7,7 +7,7 @@ using Dino.Entities;
namespace Dino.Ui.ContactDetails {
[GtkTemplate (ui = "/org/dino-im/contact_details_dialog.ui")]
[GtkTemplate (ui = "/im/dino/contact_details_dialog.ui")]
public class Dialog : Gtk.Dialog {
[GtkChild] public Image avatar;

View File

@ -4,7 +4,7 @@ using Dino.Entities;
namespace Dino.Ui {
[GtkTemplate (ui = "/org/dino-im/conversation_list_titlebar.ui")]
[GtkTemplate (ui = "/im/dino/conversation_list_titlebar.ui")]
public class ConversationListTitlebar : Gtk.HeaderBar {
public signal void conversation_opened(Conversation conversation);
@ -44,7 +44,7 @@ public class ConversationListTitlebar : Gtk.HeaderBar {
});
GLib.Application.get_default().add_action(conference_action);
Builder builder = new Builder.from_resource("/org/dino-im/menu_add.ui");
Builder builder = new Builder.from_resource("/im/dino/menu_add.ui");
MenuModel menu = builder.get_object("menu_add") as MenuModel;
add_button.set_menu_model(menu);
}

View File

@ -47,7 +47,7 @@ public class ChatRow : ConversationRow {
}
private Widget generate_tooltip() {
Builder builder = new Builder.from_resource("/org/dino-im/conversation_selector/chat_row_tooltip.ui");
Builder builder = new Builder.from_resource("/im/dino/conversation_selector/chat_row_tooltip.ui");
Box main_box = builder.get_object("main_box") as Box;
Box inner_box = builder.get_object("inner_box") as Box;
Label jid_label = builder.get_object("jid_label") as Label;
@ -64,4 +64,4 @@ public class ChatRow : ConversationRow {
}
}
}
}

View File

@ -8,7 +8,7 @@ using Dino.Entities;
namespace Dino.Ui.ConversationSelector {
[GtkTemplate (ui = "/org/dino-im/conversation_selector/conversation_row.ui")]
[GtkTemplate (ui = "/im/dino/conversation_selector/conversation_row.ui")]
public abstract class ConversationRow : ListBoxRow {
public signal void closed();

View File

@ -39,7 +39,7 @@ public class GroupchatPmRow : ConversationRow {
}
private Widget generate_tooltip() {
Builder builder = new Builder.from_resource("/org/dino-im/conversation_selector/chat_row_tooltip.ui");
Builder builder = new Builder.from_resource("/im/dino/conversation_selector/chat_row_tooltip.ui");
Box main_box = builder.get_object("main_box") as Box;
Box inner_box = builder.get_object("inner_box") as Box;
Label jid_label = builder.get_object("jid_label") as Label;
@ -51,4 +51,4 @@ public class GroupchatPmRow : ConversationRow {
}
}
}
}

View File

@ -6,7 +6,7 @@ using Dino.Entities;
namespace Dino.Ui.ConversationSelector {
[GtkTemplate (ui = "/org/dino-im/conversation_selector/view.ui")]
[GtkTemplate (ui = "/im/dino/conversation_selector/view.ui")]
public class View : Box {
public List conversation_list;
@ -49,4 +49,4 @@ public class View : Box {
}
}
}
}

View File

@ -7,7 +7,7 @@ using Dino.Entities;
namespace Dino.Ui.ConversationSummary {
[GtkTemplate (ui = "/org/dino-im/conversation_summary/message_item.ui")]
[GtkTemplate (ui = "/im/dino/conversation_summary/message_item.ui")]
public class MessageItem : Grid, ConversationItem {
[GtkChild] private Image image;

View File

@ -7,7 +7,7 @@ using Xmpp;
namespace Dino.Ui.ConversationSummary {
[GtkTemplate (ui = "/org/dino-im/conversation_summary/view.ui")]
[GtkTemplate (ui = "/im/dino/conversation_summary/view.ui")]
public class View : Box {
public Conversation? conversation { get; private set; }

View File

@ -24,7 +24,7 @@ class EncryptionWidget : MenuButton, Plugins.ConversationTitlebarWidget {
private Map<RadioButton, Plugins.EncryptionListEntry> encryption_radios = new HashMap<RadioButton, Plugins.EncryptionListEntry>();
public EncryptionWidget() {
Builder builder = new Builder.from_resource("/org/dino-im/menu_encryption.ui");
Builder builder = new Builder.from_resource("/im/dino/menu_encryption.ui");
PopoverMenu menu = builder.get_object("menu_encryption") as PopoverMenu;
Box encryption_box = builder.get_object("encryption_box") as Box;
button_unencrypted = builder.get_object("button_unencrypted") as RadioButton;

View File

@ -29,7 +29,7 @@ class MenuWidget : MenuButton, Plugins.ConversationTitlebarWidget {
public MenuWidget(StreamInteractor stream_interactor) {
image = new Image.from_icon_name("open-menu-symbolic", IconSize.MENU);
Builder builder = new Builder.from_resource("/org/dino-im/menu_conversation.ui");
Builder builder = new Builder.from_resource("/im/dino/menu_conversation.ui");
MenuModel menu = builder.get_object("menu_conversation") as MenuModel;
set_menu_model(menu);

View File

@ -4,7 +4,7 @@ using Dino.Entities;
namespace Dino.Ui.ManageAccounts {
[GtkTemplate (ui = "/org/dino-im/manage_accounts/account_row.ui")]
[GtkTemplate (ui = "/im/dino/manage_accounts/account_row.ui")]
public class AccountRow : Gtk.ListBoxRow {
[GtkChild] public Image image;
@ -40,4 +40,4 @@ public class AccountRow : Gtk.ListBoxRow {
}
}
}
}

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.ManageAccounts {
[GtkTemplate (ui = "/org/dino-im/manage_accounts/add_account_dialog.ui")]
[GtkTemplate (ui = "/im/dino/manage_accounts/add_account_dialog.ui")]
public class AddAccountDialog : Gtk.Dialog {
public signal void added(Account account);

View File

@ -7,7 +7,7 @@ using Dino.Entities;
namespace Dino.Ui.ManageAccounts {
[GtkTemplate (ui = "/org/dino-im/manage_accounts/dialog.ui")]
[GtkTemplate (ui = "/im/dino/manage_accounts/dialog.ui")]
public class Dialog : Gtk.Dialog {
public signal void account_enabled(Account account);

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Ui.OccupantMenu{
[GtkTemplate (ui = "/org/dino-im/occupant_list.ui")]
[GtkTemplate (ui = "/im/dino/occupant_list.ui")]
public class List : Box {
public signal void conversation_selected(Conversation? conversation);

View File

@ -5,7 +5,7 @@ using Xmpp;
namespace Dino.Ui.OccupantMenu {
[GtkTemplate (ui = "/org/dino-im/occupant_list_item.ui")]
[GtkTemplate (ui = "/im/dino/occupant_list_item.ui")]
public class ListRow : ListBoxRow {
[GtkChild] private Image image;
@ -28,4 +28,4 @@ public class ListRow : ListBoxRow {
}
}
}
}

View File

@ -2,7 +2,7 @@ using Gtk;
namespace Dino.Ui {
[GtkTemplate (ui = "/org/dino-im/settings_dialog.ui")]
[GtkTemplate (ui = "/im/dino/settings_dialog.ui")]
class SettingsDialog : Dialog {
[GtkChild] private CheckButton typing_checkbutton;
@ -27,4 +27,4 @@ class SettingsDialog : Dialog {
}
}
}
}

View File

@ -151,7 +151,7 @@ public class NoConversationsPlaceholder : UnifiedWindowPlaceholder {
}
}
[GtkTemplate (ui = "/org/dino-im/unified_window_placeholder.ui")]
[GtkTemplate (ui = "/im/dino/unified_window_placeholder.ui")]
public class UnifiedWindowPlaceholder : Box {
[GtkChild] public Label label;
[GtkChild] public Button primary_button;

View File

@ -22,7 +22,7 @@ compile_gresources(
TARGET ${CMAKE_CURRENT_BINARY_DIR}/resources/resources.c
TYPE EMBED_C
RESOURCES ${RESOURCE_LIST}
PREFIX /org/dino-im
PREFIX /im/dino
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data
)

View File

@ -5,7 +5,7 @@ using Dino.Entities;
namespace Dino.Plugins.OpenPgp {
[GtkTemplate (ui = "/org/dino-im/account_settings_item.ui")]
[GtkTemplate (ui = "/im/dino/account_settings_item.ui")]
private class AccountSettingsWidget : Stack, Plugins.AccountSettingsWidget {
[GtkChild] private Label label;

View File

@ -40,7 +40,7 @@ namespace Xmpp.Xep.EntityCapabilities {
if (presence.type_ == Presence.Stanza.TYPE_AVAILABLE) {
presence.stanza.put_node(new StanzaNode.build("c", NS_URI).add_self_xmlns()
.put_attribute("hash", "sha-1")
.put_attribute("node", "http://dino-im.org")
.put_attribute("node", "https://dino.im")
.put_attribute("ver", get_own_hash(stream)));
}
}