From 43136a65fdf7c6740e7a1c5541e8337c3656156e Mon Sep 17 00:00:00 2001 From: Alex Perathoner Date: Mon, 1 Mar 2021 22:35:03 +0100 Subject: [PATCH] Explore tabs + count #6 When right-clicking a session a submenu is showed with the titles of the wepages in that session --- .../icons8-search.imageset/Contents.json | 23 +++++++++ .../icons8-search-1.png | Bin 0 -> 517 bytes .../icons8-search-2.png | Bin 0 -> 896 bytes .../icons8-search.imageset/icons8-search.png | Bin 0 -> 681 bytes .../SafariExtensionViewController.xib | 5 ++ .../SafariExtensionViewControllerTable.swift | 1 + .../TableView.swift | 15 ++++-- .../xcdebugger/Breakpoints_v2.xcbkptlist | 48 ++++++++++++++++++ 8 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 Sessions Extension/Images/Media.xcassets/icons8-search.imageset/Contents.json create mode 100644 Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search-1.png create mode 100644 Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search-2.png create mode 100644 Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search.png diff --git a/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/Contents.json b/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/Contents.json new file mode 100644 index 0000000..a465dab --- /dev/null +++ b/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "icons8-search-2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icons8-search-1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icons8-search.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search-1.png b/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6d36a484ae69bd966b0fc352293694fa40ede5f2 GIT binary patch literal 517 zcmV+g0{Z=lP)B#Yd`Y ze=o172Ewr{aEJ?SiNhpb!o?WBkylJba5HImDiLZ1qkgmAPnNB%B zyBIh~;x3h(cEp33vrfQBXs?CPcyh8Z6q;0a5jL@-I!+1D0!JR$^N-SbqsO+Zjq0slsJ-^?0KQ|MEW3`OCaV-1&s4b~q&2u-= z2DeqcaVqgWc85q16rQz%#Mh&PMCI*J~Oa>OHnkXO*0v4nJa0`PlBg3pY5xV%QuQiw3qZOUY$~jP%-qzHM1_jnoV;SI3R@+x3M(KRB&@Hb09I0xZL1XF8=&Bv zUzDm~s%N5Spk&9TprBw=l#*r@P?Wt5Z@Sn2DRmzV368|&p4rRy77T3YHG z80i}s=>k>g7FXt#Bv$C=6)QswftllyTAW;zSx}OhpQivaH!&%{w8U0P31kr*K-^i9 znTD__uNdkrpa=CqGWv#k2KsQbfm&@qqE`MznW;dVLFU^T+JIG}h(YbK(Fa+MTd^s(beau=(_-E3YtPR@PrOTy1tW3;8E6SoB)t zX{q?@+=(`g`m5OWH!x?J%=}j6lX3f$Oa8>dfI90{d#cuRJ@)1Mp#S&AHqO8YLiM~g zhpc-Vx7QyqT60)*#rc$5tDR*Um|r`dc*0)M!<%E+{NhmjRd)7gv-2N{`fNMwJcB({ zJ+qJ4I|1-Rvb1qTuy{PM=$$$2yrgi!qP`WPQ+9hMXaTBx1-yNB3|3!2j z35zFYn0C*Zm^yLo!p)x#YHV`Y!zuWGwcp2Q`PNK^O_f!%&w-Mmr>mdKI;Vst00Ouk A4FCWD literal 0 HcmV?d00001 diff --git a/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search.png b/Sessions Extension/Images/Media.xcassets/icons8-search.imageset/icons8-search.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae587c533558b0ddcc4ca4fe97e05429e591fcf GIT binary patch literal 681 zcmV;a0#^NrP)6>6hRb*zs4oAB~jx7dPs(yL0m!tJ^(x*(yyq>`!XuK)a}`gUrdq~v51 z<(zW?7z2iY)4(}>>@%Q+yrVsr*1VpHmA?A%^MD7zKU8kX<{De$uK_#7A*6> zXPoaugn7^J0C#d|-34}q)*A|buy0_l+@yovJ&WEoM~{g_n6Jut54v@s*`T1Sa1ryt zt9sDw0sac@epk^B%h;&sKLOsm1_C|;&&Al7tEer3A<=*48YD$a#`3~C?U%XNqjpVb zuX@zpXHx{Jc+{>4?M+uf+bvWiGTuMmf}qObR?fNxNzwZ1DrigKi|7xy21(H>B!MN- zzw8<$MeCJE?R^Glf6%t^^CpThE7bEIbPXcZ>#a3V-GlBTW+_n^<04oSRaNF?%A$A0 z(PJtRY8%)Za2Hio9+vx<<@9R;?2}{E=0mProovNjFXnC21bzbD{_WZsCV5Nw7`O%W zp}w#c{rk2)W}DXpJ^^P!B>?_5^}m1*mhp!nl88~;z`W*{QMXN3!to$UM5t|`e8r}< z25^=32R7;4AW8hEAD9JRXp_HDm1RSZ&5*p?N=rCs5_z$G6Uroxf-;HYLYc&I;bbNe z`d^8IcmzC1IsPY<5m#(iV){rO<)Af*MDwSD**QGRs3Pzss_rT&DY38zc6@3~g&(lZ P00000NkvXXu0mjfNs%_4 literal 0 HcmV?d00001 diff --git a/Sessions Extension/SafariExtensionViewController/Base.lproj/SafariExtensionViewController.xib b/Sessions Extension/SafariExtensionViewController/Base.lproj/SafariExtensionViewController.xib index 64d8e89..0ad05c4 100644 --- a/Sessions Extension/SafariExtensionViewController/Base.lproj/SafariExtensionViewController.xib +++ b/Sessions Extension/SafariExtensionViewController/Base.lproj/SafariExtensionViewController.xib @@ -181,6 +181,10 @@ + + + + @@ -234,6 +238,7 @@ + diff --git a/Sessions Extension/SafariExtensionViewController/SafariExtensionViewControllerTable.swift b/Sessions Extension/SafariExtensionViewController/SafariExtensionViewControllerTable.swift index c8ed92c..b65c0ac 100644 --- a/Sessions Extension/SafariExtensionViewController/SafariExtensionViewControllerTable.swift +++ b/Sessions Extension/SafariExtensionViewController/SafariExtensionViewControllerTable.swift @@ -17,6 +17,7 @@ extension SafariExtensionViewController: NSTableViewDelegate, NSTableViewDataSou tableView.menu?.autoenablesItems = true tableView.registerForDraggedTypes([dragDropType]) tableView.singleMenu = singleSelectionMenu + tableView.vc = self } diff --git a/Sessions Extension/SafariExtensionViewController/TableView.swift b/Sessions Extension/SafariExtensionViewController/TableView.swift index 526b9f5..530ad5a 100644 --- a/Sessions Extension/SafariExtensionViewController/TableView.swift +++ b/Sessions Extension/SafariExtensionViewController/TableView.swift @@ -10,11 +10,20 @@ import Cocoa class TableView: NSTableView { weak var singleMenu: NSMenu! - + weak var vc: SafariExtensionViewController? override func rightMouseDown(with event: NSEvent) { super.rightMouseDown(with: event) let correctLocation = convert(event.locationInWindow, from: nil) - singleMenu.popUp(positioning: singleMenu.items.first, at: correctLocation, in: self) - + if let singleMenuWTabs = singleMenu { + let sessions = vc?.sessions + let pages = sessions?[self.clickedRow].pages ?? [] + singleMenuWTabs.item(withTag: 1)?.submenu?.removeAllItems() + for page in pages { + let menuItem = NSMenuItem(title: page.title, action: nil, keyEquivalent: "") + singleMenuWTabs.item(withTag: 1)?.submenu?.addItem(menuItem) + } + singleMenuWTabs.item(withTag: 1)?.title = "\(pages.count) tabs:" + singleMenuWTabs.popUp(positioning: singleMenuWTabs.items.first, at: correctLocation, in: self) + } } } diff --git a/Sessions.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Sessions.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 63deddc..91e3f07 100644 --- a/Sessions.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Sessions.xcodeproj/xcuserdata/alex.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -452,5 +452,53 @@ landmarkType = "0"> + + + + + + + + + + + +