示例#1
0
 protected override bool AcceptNavigationRequest(Qyoto.QWebFrame frame, Qyoto.QNetworkRequest request, Qyoto.QWebPage.NavigationType type)
 {
     if (type != NavigationType.NavigationTypeLinkClicked && request.Url().Scheme() != "resource")
         return false;
     else
         return base.AcceptNavigationRequest(frame, request, type);
 }
        public static new int Exec()
        {
            int result = (int)staticInterceptor.Invoke("exec", "exec()", typeof(int), false);

            Qyoto.Cleanup();
            return(result);
        }
示例#3
0
        public override QModelIndex Index(int row, int column, Qyoto.QModelIndex parent)
        {
            if (!HasIndex(row, column, parent))
                return new QModelIndex();

            if (!parent.IsValid()) {
                Account account = m_AccountService.Accounts[row];
                return CreateIndex(row, column, account);
            } else {
                Account account = (Account)parent.InternalPointer();
                BookmarkConference bmark = account.BookmarkManager.Conferences.ElementAt(row);
                return CreateIndex(row, column, bmark);
            }
        }
示例#4
0
        protected override void PaintEvent(Qyoto.QPaintEvent arg1)
        {
            using (QPainter p = new QPainter(this)) {
                var rect = ContentsRect();
                //var fm = new QFontMetrics(Font);

                //if (fm.Width(Text) > rect.Width()) {
                    var gradient = new QLinearGradient(rect.TopLeft(), rect.TopRight());
                    gradient.SetColorAt(0.8, Palette.Color(QPalette.ColorRole.WindowText));
                    gradient.SetColorAt(1.0, new QColor(Qt.GlobalColor.transparent));
                    var pen = new QPen();
                    pen.SetBrush(new QBrush(gradient));
                    p.SetPen(pen);
                //}

                p.DrawText(rect, (int)Qt.TextFlag.TextSingleLine, Text);
            }
        }
示例#5
0
 public override QSize SizeHint(Qyoto.QStyleOptionViewItem option, Qyoto.QModelIndex index)
 {
     var hint = base.SizeHint(option, index);
     hint.SetHeight(hint.Height() + 12);
     return hint;
 }
示例#6
0
 public override QModelIndex Parent(Qyoto.QModelIndex child)
 {
     return new QModelIndex();
 }
示例#7
0
 public override uint Flags(Qyoto.QModelIndex index)
 {
     return (uint)Qt.ItemFlag.ItemIsUserCheckable |
            (uint)Qt.ItemFlag.ItemIsSelectable |
            (uint)Qt.ItemFlag.ItemIsEnabled;
 }
示例#8
0
 public override int ColumnCount(Qyoto.QModelIndex parent)
 {
     return 1;
 }
示例#9
0
 public override QModelIndex Index(int row, int column, Qyoto.QModelIndex parent)
 {
     Account account = ServiceManager.Get<AccountService>().Accounts[row];
     return CreateIndex(row, column, account);
 }
示例#10
0
 public override QVariant Data(Qyoto.QModelIndex index, int role)
 {
     Account account = (Account)index.InternalPointer();
     if (index.Column() == 0) {
         if (role == (int)Qt.ItemDataRole.DisplayRole) {
             return account.Jid.ToString();
         } else if (role == (int)Qt.ItemDataRole.CheckStateRole) {
             return (int)Qt.CheckState.Checked;
         }
     } else if (index.Column() == 1) {
         if (role == (int)Qt.ItemDataRole.DisplayRole) {
             return account.ConnectionState.ToString();
         }
     }
     return new QVariant();
 }
示例#11
0
 protected override void KeyPressEvent(Qyoto.QKeyEvent arg1)
 {
     arg1.Ignore();
 }
示例#12
0
 protected override void DragEnterEvent(Qyoto.QDragEnterEvent arg1)
 {
     arg1.Ignore();
 }
示例#13
0
 protected override void ResizeEvent(Qyoto.QResizeEvent arg1)
 {
     base.ResizeEvent(arg1);
     SaveGeometry();
 }
示例#14
0
 protected override void MoveEvent(Qyoto.QMoveEvent arg1)
 {
     base.MoveEvent(arg1);
     SaveGeometry();
 }
示例#15
0
 protected override void CloseEvent(Qyoto.QCloseEvent arg1)
 {
     base.CloseEvent(arg1);
     SaveGeometry();
 }
示例#16
0
 public override int RowCount(Qyoto.QModelIndex parent)
 {
     if (!parent.IsValid()) {
         return m_AccountService.Accounts.Count;
     } else {
         if (parent.InternalPointer() is Account) {
             Account account = (Account)parent.InternalPointer();
             return account.BookmarkManager.Count;
         } else {
             return 0;
         }
     }
 }
示例#17
0
        protected override void FocusInEvent(Qyoto.QFocusEvent arg1)
        {
            base.FocusInEvent (arg1);

            textEdit.SetFocus();
            UrgencyHint = false;
        }
示例#18
0
        public override QModelIndex Parent(Qyoto.QModelIndex child)
        {
            if (!child.IsValid())
                return new QModelIndex();

            if (child.InternalPointer() is Account) {
                return new QModelIndex();
            } else {
                BookmarkConference bmark = (BookmarkConference)child.InternalPointer();
                Account account = m_AccountService.Accounts.FirstOrDefault(a => a.BookmarkManager.Conferences.Contains(bmark));
                if (account != null)
                    return CreateIndex(m_AccountService.Accounts.IndexOf(account), 0, account);
                else
                    return new QModelIndex();
            }
        }
示例#19
0
 protected override void ChangeEvent(Qyoto.QEvent arg1)
 {
     if (arg1.type() == QEvent.TypeOf.ActivationChange) {
         if (this.IsActiveWindow) {
             m_Tabs.CurrentWidget().SetFocus();
         }
     }
 }
示例#20
0
 public override uint Flags(Qyoto.QModelIndex index)
 {
     if (index.Column() == 0) {
         return (uint)Qt.ItemFlag.ItemIsUserCheckable |
                (uint)Qt.ItemFlag.ItemIsSelectable |
                (uint)Qt.ItemFlag.ItemIsEnabled;
     } else {
         return (uint)Qt.ItemFlag.ItemIsSelectable;
     }
 }
示例#21
0
 protected override void FocusInEvent(Qyoto.QFocusEvent arg1)
 {
     base.FocusInEvent (arg1);
 }
示例#22
0
 public override int RowCount(Qyoto.QModelIndex parent)
 {
     if (!parent.IsValid())
         return ServiceManager.Get<AccountService>().Accounts.Count;
     else
         return 0;
 }
示例#23
0
        protected override void ResizeEvent(Qyoto.QResizeEvent arg1)
        {
            base.ResizeEvent (arg1);

            var geometry = QByteArrayConverter.ToArray(base.SaveGeometry());
            var settingsService = ServiceManager.Get<SettingsService>();
            settingsService.Set("ChatsWindowGeometry", geometry);
        }
示例#24
0
 public override QVariant Data(Qyoto.QModelIndex index, int role)
 {
     Addin addin = m_Addins[index.Row()];
     if (role == (int)Qt.ItemDataRole.DisplayRole) {
         return addin.Name;
     } else if (role == (int)Qt.ItemDataRole.CheckStateRole) {
         return addin.Enabled ? (int)Qt.CheckState.Checked : (int)Qt.CheckState.Unchecked;
     } else {
         return new QVariant();
     }
 }
示例#25
0
 protected override bool CanInsertFromMimeData(Qyoto.QMimeData source)
 {
     if (source.HasImage())
         return true;
     else
         return base.CanInsertFromMimeData (source);
 }
示例#26
0
 public override QModelIndex Index(int row, int column, Qyoto.QModelIndex parent)
 {
     return CreateIndex(row, column, m_Addins[row]);
 }
示例#27
0
        protected override void InsertFromMimeData(Qyoto.QMimeData source)
        {
            var cursor = base.TextCursor();

            if (source.HasImage()) {
                var image = QPixmap.FromImage((QImage)source.ImageData());
                var document = base.Document();
                var imageName = Guid.NewGuid().ToString();
                document.AddResource((int)QTextDocument.ResourceType.ImageResource, new QUrl(imageName), image);
                cursor.InsertImage(imageName);
            } else if (source.HasUrls()) {
                var magic = new Magic(true);
                foreach (var url in source.Urls()) {
                    if (url.Scheme() == "file") {
                        string fileName = url.Path();
                        if (File.Exists(fileName)) {
                            string mimeType = magic.Lookup(url.Path());
                            if (mimeType.StartsWith("image/")) {
                                // FIXME: If image is over a certain size, send as file transfer rather
                                // than encoded inline.
                                cursor.InsertHtml(String.Format("<img src=\"{0}\" />", fileName));
                            } else {
                                // FIXME: Generate and insert an image representing a file.
                                Console.WriteLine("File Transfer: " + fileName);
                            }
                        } else {
                            // FIXME: Support "sending" directories?
                            cursor.InsertText(url.ToString());
                        }
                    } else if (url.Scheme() == "http" || url.Scheme() == "https") {
                        cursor.InsertHtml(String.Format("<a href=\"{0}\">{0}</a>", url.ToString()));
                    } else {
                        cursor.InsertText(url.ToString());
                    }
                }
            } else {
                base.InsertFromMimeData(source);
            }
        }
示例#28
0
 public override int RowCount(Qyoto.QModelIndex parent)
 {
     return m_Addins.Length;
 }
示例#29
0
 public override QModelIndex Index(int row, int column, Qyoto.QModelIndex parent)
 {
     var accounts = ServiceManager.Get<AccountService>().Accounts;
     if (accounts.Count >= row + 1) {
         Account account = accounts[row];
         return CreateIndex(row, column, account);
     } else {
         return CreateIndex(-1, -1);
     }
 }
示例#30
0
        protected override void ResizeEvent(Qyoto.QResizeEvent e)
        {
            base.ResizeEvent (e);

            // FIXME: Seems "window.onresize" doesn't work, so we need to fake it.
            // Qt bug?
            base.Page().MainFrame().EvaluateJavaScript("windowDidResize()");
        }
示例#31
0
 protected override void MouseReleaseEvent(Qyoto.QMouseEvent ev)
 {
     if (Clicked != null)
         Clicked(this, EventArgs.Empty);
 }