Пример #1
0
 public void Show()
 {
     dialog.Show();
 }
Пример #2
0
        public PreferencesWindow()
        {
            SetupUi();

            // Tweak the account list
            accountsList.HorizontalHeader().Hide();
            accountsList.VerticalHeader().Hide();
            accountsList.SetModel(new AccountsItemModel(accountsList));
            accountsList.SetItemDelegate(new PaddedItemDelegate(accountsList));
            accountsList.HorizontalHeader().SetResizeMode(QHeaderView.ResizeMode.Stretch);
            accountsList.HorizontalHeader().SetResizeMode(1, QHeaderView.ResizeMode.ResizeToContents);

            // Set up fake chat handler for preview
            messagePreviewWebView.ChatHandler = new FakeChatHandler();

            QObject.Connect <bool>(messagePreviewWebView, Qt.SIGNAL("loadFinished(bool)"), delegate {
                ((FakeChatHandler)messagePreviewWebView.ChatHandler).Go();
            });

            // Load Settings
            var settings = ServiceManager.Get <SettingsService>();

            showHeaderCheckBox.Checked  = settings.Get <bool>("MessageShowHeader");
            showAvatarsCheckBox.Checked = settings.Get <bool>("MessageShowAvatars");

            string themeName        = settings.Get <string>("MessageTheme");
            string themeVariantName = settings.Get <string>("MessageThemeVariant");

            foreach (var pair in ConversationWidget.AllThemes)
            {
                messageStyleCombo.AddItem(pair.Value.Get <string>("CFBundleName"), pair.Key);
            }

            // Select the current style/variant
            messageStyleCombo.CurrentIndex        = messageStyleCombo.FindData(themeName);
            messageStyleVariantCombo.CurrentIndex = messageStyleVariantCombo.FindText(themeVariantName);

            messagePreviewWebView.ChatHandler.NewContent += delegate(IChatHandler handler, AbstractChatContent content) {
                messagePreviewWebView.AppendContent(content, false, false, false);
            };

            // Tweak the extensions list
            extensionsList.HorizontalHeader().Hide();
            extensionsList.VerticalHeader().Hide();
            extensionsList.SetModel(new ExtensionsItemModel(extensionsList));
            extensionsList.SetItemDelegate(new PaddedItemDelegate(extensionsList));
            extensionsList.HorizontalHeader().SetResizeMode(QHeaderView.ResizeMode.Stretch);
            QObject.Connect(extensionsList, Qt.SIGNAL("activated(const QModelIndex &)"), delegate(QModelIndex index) {
                Addin addin = (Addin)index.InternalPointer();

                var nodes = AddinManager.GetExtensionNodes("/Synapse/QtClient/AddinPreferencesDialogs");
                foreach (QWidgetTypeExtensionNode node in nodes)
                {
                    if (addin.Id.StartsWith(node.Addin.Id))
                    {
                        QDialog dialog = (QDialog)node.CreateInstance(this);
                        dialog.Show();
                        dialog.Exec();
                        break;
                    }
                }
            });

            m_Loaded = true;
            RefreshMessagePreview();
        }