Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quick action context menu for WTrackProperty #2612

Merged
merged 54 commits into from
Apr 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d09484f
widget/wtrackproperty: create context menu with placeholder action
hacksdump Mar 28, 2020
246d453
widget/wtrackproperty: add destructor
hacksdump Mar 29, 2020
62e914b
widget/wtrackproperty: conditional context menu
hacksdump Mar 29, 2020
456878d
widget/wtrackproperty: implement open in system file browser
hacksdump Mar 29, 2020
a13a86f
widget/wtrackproperty: add (non-functional) add to playlist menu
hacksdump Mar 29, 2020
9f4d818
widget/wtrackproperty: implement add to playlist function
hacksdump Mar 29, 2020
313db52
widget/wtrackproperty: implement add to crate menu
hacksdump Mar 29, 2020
92d6ce9
widget/wtrackproperty: add styles for QMenu
hacksdump Mar 30, 2020
9abb8a6
widget/wtrackproperty: introduce new class to decouple context menu f…
hacksdump Apr 1, 2020
746a565
widget/wtrackmenu: move remaining actions from wtracktableview
hacksdump Apr 2, 2020
458a2be
widget/wtrackmenu: fix multiple segfaults
hacksdump Apr 2, 2020
8750927
widget/wtrackmenu: connect signal from wtrackmenu to wtracktableview
hacksdump Apr 2, 2020
f212a29
widget/wtrackmenu: remove m_pCoverMenu->clear() call
hacksdump Apr 2, 2020
34603bc
widget/wtrackmenu: refactor slot functions to be generic
hacksdump Apr 4, 2020
8942e91
widget/wtrackmenu: filter options
hacksdump Apr 4, 2020
5cad360
widget/wtrackmenu: initialize pointers and fix filters
hacksdump Apr 4, 2020
8eb4adc
widget/wtrackmenu: move options to track table dependent
hacksdump Apr 5, 2020
57ca3aa
widget/wtrackmenu: code cleanup
hacksdump Apr 5, 2020
65905a5
WTrackMenu: refactor to functor syntax
hacksdump Apr 6, 2020
126c264
WTrackMenu: rename action to reasonable name
hacksdump Apr 6, 2020
95e3b8d
WTrackMenu: use setters and getters
hacksdump Apr 8, 2020
334e7cb
WTrackMenu: use pragma once
hacksdump Apr 8, 2020
89577b6
WTrackMenu: remove redundant delete from destructor
hacksdump Apr 8, 2020
27347c0
WTrackMenu: optimize menu updation
hacksdump Apr 9, 2020
f39e9aa
WTrackMenu: add checks in constructor and popup
hacksdump Apr 9, 2020
2342cfc
WTrackMenu: make menu functions generic
hacksdump Apr 9, 2020
934db21
WTrackMenu: remove unused code
hacksdump Apr 10, 2020
f7b0e09
WTrackMenu: fix Tango style
hacksdump Apr 10, 2020
6e5d895
WTrackMenu: add Deere style
hacksdump Apr 10, 2020
ae5acf9
WTrackMenu: add LateNight style
hacksdump Apr 10, 2020
d3ed592
WTrackMenu: add Shade style
hacksdump Apr 10, 2020
7aadd94
WTrackMenu: remove redundant code
hacksdump Apr 11, 2020
f2dad91
WTrackMenu: make info and tag dialogs independent
hacksdump Apr 11, 2020
c192045
WTrackTableView: fix probable memory leak
hacksdump Apr 11, 2020
1da180d
Merge branch 'master' into context-menu
hacksdump Apr 11, 2020
6de5013
cmake: remove extraneous files from CMakeLists.txt
hacksdump Apr 11, 2020
0143e7e
TrackModel: add function to check capabilities
hacksdump Apr 13, 2020
460e18b
DlgTrackInfo: rename changeTrack to loadTrackInternal
hacksdump Apr 13, 2020
d6e5b7d
WTrackMenu: add more debug information
hacksdump Apr 13, 2020
450709a
WTrackMenu: remove LoadTo from TrackModelFilters
hacksdump Apr 13, 2020
ba7fdfa
DlgTrackInfo: add comments for lambda-based connect
hacksdump Apr 13, 2020
1345912
WTrackTableView: use unique_ptr to store m_pMenu
hacksdump Apr 13, 2020
fe48344
WTrackMenu: rename filter to feature
hacksdump Apr 13, 2020
6aa661f
Trackmodel: pass by copying value
hacksdump Apr 15, 2020
ea65616
WTrackTableView: use parented_ptr with explicit delete
hacksdump Apr 15, 2020
d8930a0
WTrackProperty: declare features in an anonymous namespace
hacksdump Apr 15, 2020
b593807
DlgTrackInfo: create signal source specific slots
hacksdump Apr 15, 2020
09ae551
WTrackMenu: change comment to indicate function hiding
hacksdump Apr 15, 2020
c119674
WTrackMenu: add documentation
hacksdump Apr 15, 2020
5a9ff3c
WTrackMenu: update loadTracks documentation
hacksdump Apr 15, 2020
c18131d
WTrackMenu: add reason for giving null parent
hacksdump Apr 15, 2020
649b336
WTrackText: add WTrackMenu
hacksdump Apr 16, 2020
02b71ec
add doxygen compatible documentation
hacksdump Apr 16, 2020
557f996
WTrackMenu: warn about function hiding in comment
hacksdump Apr 17, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -722,6 +722,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/widget/wstarrating.cpp
hacksdump marked this conversation as resolved.
Show resolved Hide resolved
src/widget/wstatuslight.cpp
src/widget/wtime.cpp
src/widget/wtrackmenu.cpp
src/widget/wtrackproperty.cpp
src/widget/wtracktableview.cpp
src/widget/wtracktableviewheader.cpp
Expand Down
1 change: 1 addition & 0 deletions build/depends.py
Original file line number Diff line number Diff line change
Expand Up @@ -1023,6 +1023,7 @@ def sources(self, build):
"src/widget/wlibrarytableview.cpp",
"src/widget/wanalysislibrarytableview.cpp",
"src/widget/wlibrarytextbrowser.cpp",
"src/widget/wtrackmenu.cpp",

"src/database/mixxxdb.cpp",
"src/database/schemamanager.cpp",
Expand Down
108 changes: 87 additions & 21 deletions res/skins/Deere/style.qss
Original file line number Diff line number Diff line change
Expand Up @@ -1831,7 +1831,8 @@ QToolTip,
WBeatSpinBox QMenu,
WCueMenuPopup,
WCueMenuPopup QMenu,
WCoverArtMenu {
WCoverArtMenu,
WTrackMenu QMenu {
padding: 2px;
}
WEffectSelector QAbstractScrollArea,
Expand All @@ -1856,30 +1857,46 @@ WCueMenuPopup QMenu,
WCueMenuPopup QLabel,
WCueMenuPopup QMenu::item,
WCoverArtMenu,
WCoverArtMenu::item {
color: #c1cabe;
background-color: #201f1f;
}
WCoverArtMenu::item,
WTrackMenu,
WTrackMenu::item,
WTrackMenu QCheckBox,
WTrackMenu QMenu,
WTrackMenu QMenu::item,
WTrackMenu QMenu QCheckBox {
color: #c1cabe;
background-color: #201f1f;
}
WEffectSelector QAbstractScrollArea,
#fadeModeCombobox QAbstractScrollArea,
QToolTip,
#LibraryContainer QMenu,
WBeatSpinBox QMenu,
WCueMenuPopup,
WCueMenuPopup QMenu,
WCoverArtMenu {
WCoverArtMenu,
WTrackMenu,
WTrackMenu QMenu {
border-width: 1px;
border-style: solid;
border-color: #aaa;
border-radius: 1px;
}
}
/* hovered items */
WEffectSelector::item:selected,
#fadeModeCombobox::item:selected,
#LibraryContainer QMenu::item:selected,
WBeatSpinBox QMenu::item:selected,
WCueMenuPopup QMenu::item:selected,
WCoverArtMenu::item:selected,
WTrackMenu::item:selected,
WTrackMenu QCheckBox:selected,
WTrackMenu QCheckBox:focus,
WTrackMenu QCheckBox:hover,
WTrackMenu QMenu::item:selected,
WTrackMenu QMenu QCheckBox:selected,
WTrackMenu QMenu QCheckBox:focus,
WTrackMenu QMenu QCheckBox:hover,
#LibraryContainer QMenu::item:selected,
#LibraryContainer QMenu QCheckBox:selected,
#LibraryContainer QMenu QCheckBox:focus, /* selected by keyboard */
#LibraryContainer QMenu QCheckBox:hover /* mouse hover */ {
Expand Down Expand Up @@ -1959,7 +1976,10 @@ WEffectSelector {
WBeatSpinBox QMenu::item,
WCueMenuPopup QMenu::item,
WCoverArtMenu::item,
#LibraryContainer QMenu QCheckBox {
WTrackMenu::item,
WTrackMenu QCheckBox,
WTrackMenu QMenu::item,
WTrackMenu QMenu QCheckBox {
padding: 0px;
margin: 0px;
image: none;
Expand All @@ -1969,36 +1989,52 @@ WEffectSelector {
#LibraryContainer QMenu::separator,
WBeatSpinBox QMenu::separator,
WCueMenuPopup QMenu::separator,
WCoverArtMenu::separator {
WCoverArtMenu::separator,
WTrackMenu::separator,
WTrackMenu QMenu::separator {
height: 0px;
border-top: 1px solid #0a0a0a;
margin: 4px;
}
#LibraryContainer QMenu::item,
WBeatSpinBox QMenu::item,
WCueMenuPopup QMenu::item,
WCoverArtMenu::item {
WCoverArtMenu::item,
WTrackMenu::item,
WTrackMenu QMenu::item {
/* right padding creates a margin to the menu expand arrow,
left padding should be bigger than menu icon width + menu icon
margin */
padding: 5px 13px 5px 26px;
}
/* icons in editline menu (searchbox, editable track properties) */
#LibraryContainer QMenu::icon,
#LibraryContainer QMenu QCheckBox::indicator,
#LibraryContainer QMenu::indicator,
WBeatSpinBox QMenu::icon,
WCueMenuPopup QMenu::icon,
WCoverArtMenu::icon,
#LibraryContainer QMenu QCheckBox::indicator,
#LibraryContainer QMenu::indicator,
WTrackMenu::icon,
WTrackMenu QCheckBox::indicator,
WTrackMenu::indicator,
WTrackMenu QMenu::icon,
WTrackMenu QMenu QCheckBox::indicator,
WTrackMenu QMenu::indicator,
WCoverArtMenu::indicator {
margin: 0px 4px 0px 2px;
padding: 1px;
}
#LibraryContainer QMenu QCheckBox {
#LibraryContainer QMenu QCheckBox,
WTrackMenu QCheckBox,
WTrackMenu QMenu QCheckBox {
padding: 2px 10px 2px 3px;
}
#LibraryContainer QMenu QCheckBox::indicator,
#LibraryContainer QMenu::indicator {
#LibraryContainer QMenu::indicator,
WTrackMenu QCheckBox::indicator,
WTrackMenu::indicator,
WTrackMenu QMenu QCheckBox::indicator,
WTrackMenu QMenu::indicator {
width: 13px;
height: 13px;
border: 1px solid #555;
Expand All @@ -2008,32 +2044,54 @@ WEffectSelector {
outline: none;
}
#LibraryContainer QMenu QCheckBox::indicator:selected,
#LibraryContainer QMenu::indicator:selected {
#LibraryContainer QMenu::indicator:selected,
WTrackMenu QCheckBox::indicator:selected,
WTrackMenu::indicator:selected,
WTrackMenu QMenu QCheckBox::indicator:selected,
WTrackMenu QMenu::indicator:selected {
border: 1px solid #999;
}
#LibraryContainer QMenu QCheckBox::indicator:checked,
#LibraryContainer QMenu::indicator:checked {
#LibraryContainer QMenu::indicator:checked,
WTrackMenu QCheckBox::indicator:checked,
WTrackMenu::indicator:checked,
WTrackMenu QMenu QCheckBox::indicator:checked,
WTrackMenu QMenu::indicator:checked {
image: url(skin:/icon/ic_library_checkmark.svg);
}
/* disabled menu item and checkbox */
#LibraryContainer QMenu::item:!enabled,
WBeatSpinBox QMenu::item:!enabled,
WCueMenuPopup QMenu::item:!enabled,
WCoverArtMenu::item:!enabled,
WTrackMenu::item:!enabled,
WTrackMenu QCheckBox:!enabled,
WTrackMenu QMenu::item:!enabled,
WTrackMenu QMenu QCheckBox:!enabled,
#LibraryContainer QMenu QCheckBox:!enabled {
color: #555;
}
#LibraryContainer QMenu QCheckBox::indicator:!enabled {
#LibraryContainer QMenu QCheckBox::indicator:!enabled,
WTrackMenu QCheckBox::indicator:!enabled,
WTrackMenu QMenu QCheckBox::indicator:!enabled {
border: 1px solid #222;
background-color: #333;
}
#LibraryContainer QMenu QCheckBox::indicator:!enabled:checked,
#LibraryContainer QMenu QCheckBox::indicator:indeterminate,
#LibraryContainer QCheckBox::indicator:indeterminate:!enabled {
#LibraryContainer QCheckBox::indicator:indeterminate:!enabled,
WTrackMenu QCheckBox::indicator:!enabled:checked,
WTrackMenu QCheckBox::indicator:indeterminate,
WTrackMenu QCheckBox::indicator:indeterminate:!enabled,
WTrackMenu QMenu QCheckBox::indicator:!enabled:checked,
WTrackMenu QMenu QCheckBox::indicator:indeterminate,
WTrackMenu QMenu QCheckBox::indicator:indeterminate:!enabled {
image: url(skin:/icon/ic_library_checkmark_grey.svg);
}

#LibraryContainer QMenu::right-arrow {
#LibraryContainer QMenu::right-arrow,
WTrackMenu::right-arrow,
WTrackMenu QMenu::right-arrow {
width: 16px;
height: 16px;
image: url(skin:/icon/ic_chevron_right_48px.svg);
Expand All @@ -2042,7 +2100,15 @@ WEffectSelector {
#LibraryContainer QHeaderView QMenu::indicator:checked,
#LibraryContainer QHeaderView QMenu::indicator:checked:hover,
#LibraryContainer QHeaderView QMenu::indicator:!checked,
#LibraryContainer QHeaderView QMenu::indicator:!checked:hover {
#LibraryContainer QHeaderView QMenu::indicator:!checked:hover,
WTrackMenu::indicator:checked,
WTrackMenu::indicator:checked:hover,
WTrackMenu::indicator:!checked,
WTrackMenu::indicator:!checked:hover,
WTrackMenu QMenu::indicator:checked,
WTrackMenu QMenu::indicator:checked:hover,
WTrackMenu QMenu::indicator:!checked,
WTrackMenu QMenu::indicator:!checked:hover {
width: 12px;
height: 10px;
margin-left: 2px;
Expand Down
Loading