mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-01 17:34:10 +02:00
Add a clear-columns plugins
This commit is contained in:
parent
b729dca2e5
commit
ca4eb17308
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -16,7 +17,7 @@ sealed class UserConfig{
|
|||||||
Binder = new SerializationCompatibilityHandler()
|
Binder = new SerializationCompatibilityHandler()
|
||||||
};
|
};
|
||||||
|
|
||||||
private const int CurrentFileVersion = 4;
|
private const int CurrentFileVersion = 5;
|
||||||
|
|
||||||
// START OF CONFIGURATION
|
// START OF CONFIGURATION
|
||||||
|
|
||||||
@ -116,6 +117,8 @@ private UserConfig(string file){
|
|||||||
EnableTrayHighlight = true;
|
EnableTrayHighlight = true;
|
||||||
Plugins = new PluginConfig();
|
Plugins = new PluginConfig();
|
||||||
PluginsWindow = new WindowState();
|
PluginsWindow = new WindowState();
|
||||||
|
|
||||||
|
Plugins.DisableOfficialFromConfig("clear-columns");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpgradeFile(){
|
private void UpgradeFile(){
|
||||||
@ -155,6 +158,11 @@ private void UpgradeFile(){
|
|||||||
++fileVersion;
|
++fileVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fileVersion == 4){
|
||||||
|
Plugins.DisableOfficialFromConfig("clear-columns");
|
||||||
|
++fileVersion;
|
||||||
|
}
|
||||||
|
|
||||||
// update the version
|
// update the version
|
||||||
fileVersion = CurrentFileVersion;
|
fileVersion = CurrentFileVersion;
|
||||||
Save();
|
Save();
|
||||||
|
14
Resources/Plugins/clear-columns/.meta
Normal file
14
Resources/Plugins/clear-columns/.meta
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[name]
|
||||||
|
Clear columns
|
||||||
|
|
||||||
|
[description]
|
||||||
|
- Adds buttons and keyboard shortcuts to quickly clear columns
|
||||||
|
|
||||||
|
[author]
|
||||||
|
chylex
|
||||||
|
|
||||||
|
[version]
|
||||||
|
1.0
|
||||||
|
|
||||||
|
[website]
|
||||||
|
https://tweetduck.chylex.com
|
79
Resources/Plugins/clear-columns/browser.js
Normal file
79
Resources/Plugins/clear-columns/browser.js
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
constructor(){
|
||||||
|
super({
|
||||||
|
requiresPageReload: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
enabled(){
|
||||||
|
// prepare variables and functions
|
||||||
|
var clearColumn = (columnName) => {
|
||||||
|
TD.controller.columnManager.get(columnName).clear();
|
||||||
|
TD.controller.stats.columnActionClick("clear");
|
||||||
|
};
|
||||||
|
|
||||||
|
var clearAllColumns = () => {
|
||||||
|
Object.keys(TD.controller.columnManager.getAll()).forEach(key => clearColumn(key));
|
||||||
|
};
|
||||||
|
|
||||||
|
var replaceMustache = (key, search, replace) => {
|
||||||
|
TD.mustaches[key] = TD.mustaches[key].replace(search, replace);
|
||||||
|
};
|
||||||
|
|
||||||
|
// prepare event handlers
|
||||||
|
this.eventClearSingle = function(){
|
||||||
|
clearColumn($(this).closest(".js-column").attr("data-column"));
|
||||||
|
};
|
||||||
|
|
||||||
|
this.eventClearAll = function(){
|
||||||
|
clearAllColumns();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.eventKeys = function(e){
|
||||||
|
if (e.keyCode === 46 && (document.activeElement === null || document.activeElement === document.body)){ // 46 = delete
|
||||||
|
if (e.altKey){
|
||||||
|
clearAllColumns();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
var focusedColumn = $(".js-column.is-focused");
|
||||||
|
|
||||||
|
if (focusedColumn.length){
|
||||||
|
clearColumn(focusedColumn.attr("data-column"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// add column buttons and keyboard shortcut info to UI
|
||||||
|
replaceMustache("column/column_header.mustache", "</header>", [
|
||||||
|
'<a class="column-header-link" href="#" data-action="td-clearcolumns-dosingle" style="right:34px">',
|
||||||
|
'<i class="icon icon-clear-timeline"></i>',
|
||||||
|
'</a></header>'
|
||||||
|
].join(""));
|
||||||
|
|
||||||
|
replaceMustache("keyboard_shortcut_list.mustache", "</dl> <dl", [
|
||||||
|
'<dd class="keyboard-shortcut-definition" style="white-space:nowrap">',
|
||||||
|
'<span class="text-like-keyboard-key">1</span> … <span class="text-like-keyboard-key">9</span> + <span class="text-like-keyboard-key">Del</span> Clear column 1-9',
|
||||||
|
'</dd><dd class="keyboard-shortcut-definition">',
|
||||||
|
'<span class="text-like-keyboard-key">Alt</span> + <span class="text-like-keyboard-key">Del</span> Clear all',
|
||||||
|
'</dd></dl><dl'
|
||||||
|
].join(""));
|
||||||
|
}
|
||||||
|
|
||||||
|
ready(){
|
||||||
|
// setup events
|
||||||
|
$(document).on("click", "[data-action='td-clearcolumns-dosingle']", this.eventClearSingle);
|
||||||
|
$(document).on("click", "[data-action='td-clearcolumns-doall']", this.eventClearAll);
|
||||||
|
$(document).on("keydown", this.eventKeys);
|
||||||
|
|
||||||
|
// add clear all button
|
||||||
|
$("nav.app-navigator").first().append([
|
||||||
|
'<a class="link-clean cf app-nav-link padding-hl" data-title="Clear all" data-action="td-clearcolumns-doall">',
|
||||||
|
'<div class="obj-left"><i class="icon icon-large icon-clear-timeline"></i></div>',
|
||||||
|
'<div class="nbfc padding-ts hide-condensed">Clear all</div>',
|
||||||
|
'</a></nav>'
|
||||||
|
].join(""));
|
||||||
|
}
|
||||||
|
|
||||||
|
disabled(){
|
||||||
|
// not needed, plugin reloads the page when enabled or disabled
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user