Skip to content

Commit

Permalink
Merge 06e372b into 16b5f85
Browse files Browse the repository at this point in the history
  • Loading branch information
MarshallOfSound committed Sep 5, 2016
2 parents 16b5f85 + 06e372b commit 941e9ef
Show file tree
Hide file tree
Showing 23 changed files with 600 additions and 83 deletions.
9 changes: 6 additions & 3 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"extends": "airbnb-base",
"extends": "airbnb",
"parser": "babel-eslint",
"globals": {
"Logger": true,
"Settings": true,
Expand All @@ -14,12 +15,14 @@
"mocha": true
},
"rules": {
"max-len": [1, 120],
"max-len": [1, 160],
"import/no-extraneous-dependencies": 0,
"import/no-unresolved": 0,
"import/prefer-default-export": 0,
"global-require": 0,
"no-underscore-dangle": 0,
"consistent-return": 0
"consistent-return": 0,
"react/no-multi-comp": 0,
"react/prefer-stateless-function": 0
}
}
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ script:
- npm run test
- if [[ $TRAVIS_PULL_REQUEST == "false" ]]; then ./sig/import.sh && npm run make:darwin && node ./sig/publish-mac.js; fi
- if [[ $TRAVIS_PULL_REQUEST != "false" ]]; then npm run package:darwin; fi
- npm run test-electron
- npm run test-electron-coverage
- npm run _coveralls
- npm run test-spectron

notifications:
Expand Down
61 changes: 51 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,22 @@
"postinstall": "node vendor/rebuild.js --instant",
"test": "npm run lint",
"pretest-electron": "npm run build",
"pretest-electron-coverage": "istanbul instrument src --output cov --no-compact --complete-copy --es-modules",
"pretest-electron-coverage": "cross-env NODE_ENV=coverage npm run build",
"pretest-spectron": "npm run build",
"test-electron": "electron-mocha ./test/electron/**/*_spec.js --recursive --compilers js:babel-core/register --timeout 10000 -R spec-xunit-file",
"test-electron-coverage": "npm run test-electron -- -r test/electron/util/coverage.js -R test/istanbul-reporter",
"test-electron": "npm run test-electron-main && npm run test-electron-renderer",
"test-electron-main": "electron-mocha ./test/electron/*_spec.js ./test/electron/**/*_spec.js --compilers js:babel-core/register --timeout 10000 -R spec-xunit-file",
"test-electron-renderer": "electron-mocha ./test/electron-renderer/**/*_spec.js ./test/electron-renderer/*_spec.js --renderer --compilers js:babel-core/register --timeout 10000 -R spec-xunit-file",
"test-electron-coverage": "npm run test-electron-main-coverage && npm run test-electron-renderer-coverage",
"test-electron-main-coverage": "cross-env NODE_ENV=coverage npm run test-electron-main -- -R test/istanbul-reporter",
"test-electron-renderer-coverage": "cross-env NODE_ENV=coverage npm run test-electron-renderer -- -R test/istanbul-reporter",
"posttest-electron-main-coverage": "npm run _remap",
"posttest-electron-renderer-coverage": "npm run _remap",
"test-spectron": "mocha ./test/spectron --compilers js:babel-core/register -R spec-xunit-file --timeout 10000",
"prestart": "pre-flight && node vendor/mac_patch_dev.js",
"start": "electron . --dev",
"watch": "gulp watch"
"watch": "gulp watch",
"_remap": "remap-istanbul -i coverage/coverage-final.json -o coverage -t html && remap-istanbul -i coverage/coverage-final.json -o coverage/lcov.info -t lcovonly",
"_coveralls": "node test/istanbul-patch-lcov.js | node node_modules/coveralls/bin/coveralls.js"
},
"repository": {
"type": "git",
Expand All @@ -49,7 +57,7 @@
"dependencies": {
"archiver": "^1.0.1",
"auto-launch": "^4.0.0",
"electron": "1.3.4",
"electron": "^1.3.5",
"electron-chromecast": "^1.0.14",
"gmusic-mini-player.js": "^2.0.6",
"gmusic-theme.js": "^2.0.0",
Expand All @@ -58,10 +66,14 @@
"html-entities": "^1.2.0",
"lastfm": "^0.9.2",
"lodash": "^4.12.0",
"material-ui": "^0.15.4",
"mdns": "^2.3.3",
"mkdirp": "^0.5.1",
"node-fetch": "^1.5.2",
"pretty-colorwheel": "^1.0.1",
"react": "^15.3.1",
"react-dom": "^15.3.1",
"react-tap-event-plugin": "^1.0.0",
"request": "^2.72.0",
"runas": "^3.1.1",
"universal-analytics": "^0.4.2",
Expand All @@ -73,19 +85,29 @@
"yargs": "^4.7.0"
},
"devDependencies": {
"babel-eslint": "^6.1.2",
"babel-plugin-istanbul": "^2.0.1",
"babel-plugin-transform-class-properties": "^6.11.5",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.11.1",
"babel-register": "^6.8.0",
"chai": "^3.5.0",
"chai-as-promised": "^5.3.0",
"chai-fs": "chaijs/chai-fs",
"coveralls": "^2.11.12",
"cross-env": "^2.0.1",
"devtron": "^1.0.1",
"electron-devtools-installer": "^2.0.1",
"electron-mocha": "^3.0.0",
"electron-packager": "^8.0.0",
"electron-rebuild": "^1.1.4",
"electron-winstaller": "2.2.0",
"eslint": "^3.1.1",
"eslint-config-airbnb-base": "^5.0.0",
"eslint-plugin-import": "^1.12.0",
"enzyme": "^2.4.1",
"eslint": "^2.10.2",
"eslint-config-airbnb": "^9.0.1",
"eslint-plugin-import": "^1.14.0",
"eslint-plugin-jsx-a11y": "^1.5.5",
"eslint-plugin-react": "^5.2.2",
"fs-extra": "^0.30.0",
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2",
Expand All @@ -106,6 +128,8 @@
"plist": "^2.0.1",
"pre-commit": "^1.1.2",
"pre-flight": "^1.0.2",
"react-addons-test-utils": "^15.3.1",
"remap-istanbul": "^0.6.4",
"request": "^2.72.0",
"run-sequence": "^1.1.5",
"sinon": "^1.17.4",
Expand All @@ -124,7 +148,24 @@
},
"babel": {
"presets": [
"es2015"
]
"es2015",
"react"
],
"plugins": [
"transform-class-properties"
],
"env": {
"coverage": {
"plugins": [
[
"istanbul",
{
"ignore": "test/"
}
]
],
"sourceMaps": "inline"
}
}
}
}
4 changes: 2 additions & 2 deletions src/inject/GPMWebView/interface/customTheme.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Emitter.on('theme:updateColor', (event, customColor) => {
customStyle.innerHTML = window.GPMTheme.substituteColors(customStyleString);
});

Emitter.on('theme:updateState', (event, state) => {
if (state.state) {
Emitter.on('settings:change:theme', (event, state) => {
if (state) {
window.GPMTheme.enable();
} else {
window.GPMTheme.disable();
Expand Down
2 changes: 1 addition & 1 deletion src/inject/generic/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ if (process.env.TEST_SPEC) {
Settings.uncouple();

require(`./${process.platform}`);
require('./translations');

document.addEventListener('DOMContentLoaded', () => {
require('./windowThemeHandler');
require('./translations');

setTimeout(() => require('electron').remote.getCurrentWindow().show(), 100);

Expand Down
4 changes: 2 additions & 2 deletions src/inject/generic/windowThemeHandler.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
if (window.$ && window.$.ajax) {
require('./customWindowThemeHandler');

Emitter.on('theme:updateState', (event, state) => {
if (!state.state) {
Emitter.on('settings:change:theme', (event, state) => {
if (!state) {
document.body.removeAttribute('theme');
} else {
document.body.setAttribute('theme', 'on');
Expand Down
15 changes: 13 additions & 2 deletions src/inject/rendererEmitter.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class Emitter {
}
}
});

this._internalEventWrappers = {};
}

fire(event, ...details) {
Expand Down Expand Up @@ -98,13 +100,16 @@ class Emitter {
}

on(event, fn) {
ipcRenderer.on(event, (internalEvent, ...internalDetails) => {
const internalMethod = (internalEvent, ...internalDetails) => {
if (this.ready) {
this._call(fn, internalEvent, ...internalDetails);
} else {
this.q.push(this._call.bind(this, fn, internalEvent, ...internalDetails));
}
});
};
this._internalEventWrappers[event] = this._internalEventWrappers[event] || {};
this._internalEventWrappers[event][fn] = internalMethod;
ipcRenderer.on(event, internalMethod);
}

once(event, fn) {
Expand All @@ -117,6 +122,12 @@ class Emitter {
});
}

off(event, fn) {
if (this._internalEventWrappers[event] && this._internalEventWrappers[event][fn]) {
ipcRenderer.removeListener(event, this._internalEventWrappers[event][fn]);
}
}

_call(fn, internalEvent, ...internalDetails) {
fn(internalEvent, ...internalDetails);
}
Expand Down
88 changes: 50 additions & 38 deletions src/inject/settings/index.js
Original file line number Diff line number Diff line change
@@ -1,45 +1,57 @@
import '../generic/translations';
import './themeSettings';
import './audioSelection';
// import './audioEQ';
import './hotkeys';
import './tray';
import './lastFM';
import './mini';
import './general';
import './customStyle';
// import '../generic/translations';
// import './themeSettings';
// import './audioSelection';
// // import './audioEQ';
// import './hotkeys';
// import './tray';
// import './lastFM';
// import './mini';
// import './general';
// import './customStyle';
import React from 'react';
import ReactDOM from 'react-dom';
import injectTapEventPlugin from 'react-tap-event-plugin';

import SettingsPage from './ui/SettingsPage';

try {
const devtoolsInstaller = require('electron-devtools-installer');
devtoolsInstaller.default(devtoolsInstaller.REACT_DEVELOPER_TOOLS);
} catch (err) {
// Whoe cares
}

document.body.classList.add(process.platform);
injectTapEventPlugin();

if (window.$) {
$(() => {
$(document).ready(() => {
$('ul.tabs').tabs();
$('.indicator').addClass('theme-back').addClass('orange');

const style = $('<style></style>');
$('body').append(style);
const redrawTheme = (customColor) => {
const color = customColor || Settings.get('themeColor');
const text = `[theme] .theme-text{color:${color} !important;}`;
const back = `[theme] .theme-back{background:${color} !important;}`;
const checkbox = `[theme] input[type=checkbox]:checked + label::after{background:${color}` +
`!important;border-color:${color} !important;}`;
const slider = `[theme] .range-label{background:${color};border:none}
[theme] .noUi-horizontal .noUi-handle{background:transparent}`;
const input = `[theme] .input-field input[type=text]:focus + label {color:${color};}
[theme] .input-field input[type=text]:focus {border-bottom-color:${color};
box-shadow: 0 1px 0 0 ${color};}`;
const button = `[theme] .btn{background:${color}}`;
const switch_ = '.switch label input[type=checkbox]:checked+.lever{background:#aaa}';
const toggle_ = `.switch label input[type=checkbox]:checked+.lever:after{background:${color}}`; // eslint-disable-line
style.html(text + back + checkbox + slider + input + button + switch_ + toggle_);
};

redrawTheme();
Emitter.on('theme:updateColor', (event, customColor) => {
redrawTheme(customColor);
});
});
ReactDOM.render(<SettingsPage />, document.querySelector('#settings-panel'));
// $('ul.tabs').tabs();
// $('.indicator').addClass('theme-back').addClass('orange');
//
// const style = $('<style></style>');
// $('body').append(style);
// const redrawTheme = (customColor) => {
// const color = customColor || Settings.get('themeColor');
// const text = `[theme] .theme-text{color:${color} !important;}`;
// const back = `[theme] .theme-back{background:${color} !important;}`;
// const checkbox = `[theme] input[type=checkbox]:checked + label::after{background:${color}` +
// `!important;border-color:${color} !important;}`;
// const slider = `[theme] .range-label{background:${color};border:none}
// [theme] .noUi-horizontal .noUi-handle{background:transparent}`;
// const input = `[theme] .input-field input[type=text]:focus + label {color:${color};}
// [theme] .input-field input[type=text]:focus {border-bottom-color:${color};
// box-shadow: 0 1px 0 0 ${color};}`;
// const button = `[theme] .btn{background:${color}}`;
// const switch_ = '.switch label input[type=checkbox]:checked+.lever{background:#aaa}';
// const toggle_ = `.switch label input[type=checkbox]:checked+.lever:after{background:${color}}`; // eslint-disable-line
// style.html(text + back + checkbox + slider + input + button + switch_ + toggle_);
// };
//
// redrawTheme();
// Emitter.on('theme:updateColor', (event, customColor) => {
// redrawTheme(customColor);
// });
});
}

0 comments on commit 941e9ef

Please sign in to comment.