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

[UI] Wallet User Editable Themes: (PoC) #6

Merged
merged 1 commit into from Nov 11, 2016

Conversation

Mrs-X
Copy link

@Mrs-X Mrs-X commented Oct 16, 2016

This is a rough PoC of user editable wallet themes. It only provides the technical infrastructure to allow user definable themes. The themes itself must be edited by hand.

How to add a new theme to the Darknet wallet:

  • locate your darknet-qt's data folder (usually '.darknet' in your users home folder) and create a new folder "themes" there.
  • get a copy of Darknets source from https://github.com/Darknet-Crypto/Darknet. Just click on the "Clone or download" button.
  • copy Darknets resource folder ('Darknet/src/qt/res') into the "themes" folder you have create above, so you have a folder '.darknet/themes/res' now
  • rename this folder from 'res' to the name of your theme, e.g. 'MySexyTheme'
  • inside your new folder there's a folder 'css' with several files with the extension '.css'. Rename one of them to 'theme.css'. That's the actually file you want to modify.
  • edit the theme file to your liking. Colors, fonts, location/size/width of most UI-elements can be edited here. Some CSS knowledge is need for that. Images are located in the "images" folder, icons in the "icons" folder.
  • when you start your wallet the next time, the options-dialog will offer a new theme named 'MySexyTheme' which you can select exactly like the other build-in themes. Select your new theme.
  • after restart of the wallet the new theme will be used

Things you need to know:

  • Qt-CSS always uses the path relative to the running Qt-program, so if you want to use different images for your new CSS you'd either have to use absolute paths (like /home/yourname/.darknet/themes/MySexyTheme/images/bg.png) or have to place darknet-qt into the '.darknet' folder and use relative paths to get them displayed. If you intend to give your theme to other users the latter is the way to go, together with the information that they have to move darknet-qt to the data folder.
  • some screen elements like the splash-screen during start cannot be changed.

Please test, and if you have some spare time write a more detailed HowTo to allow less experienced users to create their own themes.

@Mrs-X
Copy link
Author

Mrs-X commented Oct 17, 2016

Please don't merge, needs one more change...later today...

@Mrs-X
Copy link
Author

Mrs-X commented Oct 17, 2016

Cleaned up commits, it's ready to test and merge now.

@Mrs-X
Copy link
Author

Mrs-X commented Oct 30, 2016

Teaser:
dn_css

@StakeBox
Copy link

Very cool, tested and working. Sorry for the delay, I will merge this now.

@StakeBox StakeBox merged commit dee5eaf into PIVX-Project:master Nov 11, 2016
@Mrs-X Mrs-X self-assigned this Nov 5, 2017
random-zebra pushed a commit to random-zebra/PIVX that referenced this pull request Feb 13, 2019
random-zebra added a commit that referenced this pull request Mar 18, 2020
…sRow

359f70e [GUI] Explicit cast from quint32 to bool in filterAcceptsRow (random-zebra)

Pull request description:

  This is a (hopefully definitive) fix for a strange segfault I was consistently having on testnet with the GUI wallet (during the loading of the stake charts), with the following stacktrace
  ```
  #0  0x00007ffff58363bb in  ()
      at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #1  0x00007ffff583b25d in  ()
      at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #2  0x00007ffff583b932 in  ()
      at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #3  0x00007ffff583bca9 in  ()
      at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #4  0x00007ffff583c50a in QSortFilterProxyModel::invalidateFilter() ()
      at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #5  0x00005555556aa809 in DashboardWidget::updateStakeFilter() (this=this@entry=0x5555577817d0) at qt/pivx/dashboardwidget.cpp:480
  #6  0x00005555556ac736 in DashboardWidget::getAmountBy() (this=this@entry=0x5555577817d0) at qt/pivx/dashboardwidget.cpp:503
  #7  0x00005555556ad1a1 in DashboardWidget::loadChartData(bool) (this=this@entry=0x5555577817d0, withMonthNames=false)
      at qt/pivx/dashboardwidget.cpp:556
  #8  0x00005555556ad703 in DashboardWidget::run(int) (this=0x5555577817d0, type=<optimized out>) at qt/pivx/dashboardwidget.cpp:812
  #9  0x00005555557641d4 in Worker::process() (this=0x5555576314c0)
      at qt/pivx/loadingdialog.cpp:12
  #10 0x00007ffff56932b2 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #11 0x00007ffff569617d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
  #12 0x00007ffff4ae36db in start_thread (arg=0x7ffe61ffb700) at pthread_create.c:463
  #13 0x00007ffff2c9e88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  ```

  Explicit the cast to bool when checking the transaction type in `TransactionFilterProxy::filterAcceptsRow`.

ACKs for top commit:
  furszy:
    detective work 👍 , utACK 359f70e.
  Fuzzbawls:
    utACK 359f70e then

Tree-SHA512: f1481a0545fb1ebe62b28232f9257e6c52306ff15dd1dcefc29d4eeb3dd25b7231d48416cad528e720fb68aa192b089e14bfc8ee92e55406ea02fc777f552b15
Fuzzbawls added a commit to Fuzzbawls/PIVX that referenced this pull request Jul 9, 2020
0c40829872 Remove redundant PROJECT_SOURCE_DIR usage from CMake config.
5abdf4c019 Fix installed target definition.
cf4d9ab23d Test CMake installation on Travis.
95d0ba1cb0 Renamed local variable in DBImpl::Write.
657ba51429 Added return in Version::Get::State::Match to quiet warning.
370d532a00 Using CMake's check_cxx_compiler_flag to check support for -Wthread-safety.
45ee61579c Update Travis CI configuration.
60db170a43 Fix tsan problem in env_test.
21304d41f7 Merge pull request PIVX-Project#698 from neal-zhu:master
5e921896ee drop fileds in State that are duplicates of fileds in Saver and fix typo
53e280b568 Simplify unlocking in DeleteObsoleteFiles.
046216a7ca Add "leveldb" subdirectory to public include paths.
9ee91ac747 Ending sentences with periods in README.md.
e0d5f83a4f Align EnvPosix and EnvWindows.
69061b464a Disable exceptions and RTTI in CMake configuration.
107a75b62c cache Saver in State object
76ca116276 fix bug(uninitialized options pointer in State)
f668239bb2 remove TODO in Version::ForEachOverlapping
177cd08629 format
8fa7a937ee fix bug
6a90bb91ee use ForEachOverlapping to impl Get
4cb80b7ddc Merge pull request PIVX-Project#386 from ivanabc:master
72a38ff7f2 Replace "> >" with ">>"
863f185970 unsigned char -> uint8_t
a3b71c1ff6 Use GCC 9 on Travis CI
ae49533210 Add explicit typecasts to avoid compiler warning.
63d5315e1c Merge branch 'master' into master
c00e177f36 Guard DBImpl::versions_ by mutex_.
1d0b101165 Converted two for-loops to while-loops.
28e6d238be Switch to using C++ 11 override specifier.
85cd40d108 Added unit test for InternalKey::DecodeFrom with empty string.
1aae5c9f29 Merge pull request PIVX-Project#411 from proller:assert1
b7b86baec9 Using std::ostringstream in key DebugString.
3e6c000e18 Merge pull request PIVX-Project#457 from jellor:patch-2
1d94fe2f4d Merge branch 'master' into patch-2
27dc99fb26 Fix EnvPosix tests on Travis CI.
9521545b06 Formatting changes for prior O_CLOEXEC fix.
900f7d37eb Merge pull request PIVX-Project#624 from adam-azarchs:master
a7528a5d2b Clean up util/coding.{h,cc}.
142035edd4 Initialize Stats::start_ before first use in Stats::Start().
e22b1cec6e Merge pull request PIVX-Project#365 from allangj:c-strict-prototypes
cd1ec032cd Add argument definition for void c functions.
4bd052d7e8 Consolidate benchmark code to benchmarks/.
506b1722ef Convert missed virtual -> override in db_test.cc.
24424a1ef2 Style cleanup.
9a56c49ed4 Merge pull request PIVX-Project#679 from smartxworks:optimize-readseq
abf441b657 Merge pull request PIVX-Project#278 from wankai:master
78b39d68c1 Bump the version number from 1.21 to 1.22.
9bd23c7676 Correct class/structure declaration order.
c784d63b93 Moved port/README to port/README.md.
297e66afc1 Format all files IAW the Google C++ Style Guide.
3724030179 Update Travis CI configuration.
d3d1c8a0f4 don't check current key in DBIter::Next()
3dc9202f78 [leveldb] Specifically export the WriteBatch::Handler inner class for Windows link
2ccb45c33a Check for possibly invalid offset in test.
7b11745190 Changed Windows specific highlighting from bash to cmd.
2f008ac19e Initialize class members to default values in constructors.
ffabb1ae86 Merge pull request PIVX-Project#665 from cheng-chang:coding
7da571cf2b Merge pull request PIVX-Project#669 from pavel-pimenov:fix-readme-windows-mkdir
df4a323aaf Merge pull request PIVX-Project#472 from zhoudayang:patch-1
5a2a472741 Fixed missing std namespaces and make_unique.
08e771901f Simplify issue320_test.
65e86f75ea Fix formatting of recent snapshot compaction fix.
7711e76766 Merge pull request PIVX-Project#339 from richcole-at-amazon:master
71ed7c401e Fixed typo in comment in version_set.h.
09fa8868db Align version/soversion CMake setup closer with other repositories.
20fb601aa9 Fix snapshot compaction bug
37300aa54b Restore soname versioning with CMake build
952be04df6 Fix mkdir (windows)
56178ddaf4 Update the version to 1.21 in preparation for a new release.
35619d248d Project import generated by Copybara.
416344de2f leveldb: Register in copybara whitelist.
da94ac67e9 leveldb: Minor cleanup in ports.
bd24b96306 leveldb: Silence unused argument warnings in MSVC.
6188a54ce9 leveldb: Add tests for empty keys and values.
cf1b5f4732 Remove unnecessary bit operation.
7035af5fc3 Two small fixes for the Windows implementation (PIVX-Project#661)
6571279d6d fix a typo in the comment of skiplist_test.cc (PIVX-Project#664)
15e2278966 Use override consistently in leveldb::test::ErrorEnv.
ea49b27d06 Switch corruption_test to use InMemEnv.
ce399ac28a Always copy bytes to scratch buffer when reading w/MemEnv.
201f77d137 Inline defaults in options.
9ce30510d4 Deleted dangling reference to deleted atomic_pointer.h.
7d8e41e49b leveldb: Replace AtomicPointer with std::atomic.
dd906262fd Make InMemoryEnv more consistent with filesystem based Env's.
cf1d1ab255 leveldb: Remove unused file port/win/stdint.h.
a20508dc6a Fix typo (PIVX-Project#565)
04470825ac Add AppVeyor (Windows CI) badge to README.
ed76289b25 Align windows_logger with posix_logger.
808e59ec6a Improve CI configuration.
c69d33b0ec Added native support for Windows.
75fceae700 Add O_CLOEXEC to open calls.
fe4494804f leveldb: Make WriteBatch::ApproximateSize() const.
296de8d5b8 leveldb: Fix PosixWritableFile::Sync() on Apple systems.
b70493ca85 Fix fdatasync() feature detection in opensource build.
af7abf06ea Add back space to POSIX Logger.
58d70545af Update Travis CI configuration.
1cb3840881 Clean up env_posix.cc.
a7dc502e9f Rework once initialization in env_posix.cc.
c43565dd39 C++11 cleanup for util/mutexlock.h.
0145a94ab6 Update .gitignore.
73d5834ece Rework threading in env_posix.cc.
05709fb43e Remove InitOnce from the port API.
bb88f25115 Clean up PosixWritableFile in env_posix.cc.
7b945f2003 Clean up posix_logger.h.
89af27bde5 Remove ssize_t from code that is not POSIX-specific.
03064cbbb2 Simplify Limiter in env_posix.cc.
9b44da73d9 Clarify comments for leveldb::Env file reading methods.
0ef2310f67 Remove GCC on OSX from the Travis CI matrix.
16a2b8bb3a Expose WriteBatch::Append in the C API.
f7b0e1d901 Expose WriteBatch::Append().
6caf73ad9d Clean up Iterator.
6a6bdafcf1 Corrected typo in docs: "cache" to "block_cache".
1868398150 Clean up SnapshotImpl.
e7840de9f3 Fix documentation for log file growth.
bc23e00f95 Update default log file size in doc.
4de9594f6f Add move constructor to Status.
d177a0263c Replace port_posix with port_stdcxx.
14cce848e7 Fix sign mismatch warnings in GCC.
8046a51b21 Add forgotten <limits> header to util/logging.cc.
a0008deb67 Reimplement ConsumeDecimalNumber.
1f7dd5d5f6 Add tests for ConsumeDecimalNumber.
1cc8b10b82 Document the building process.
09217fd067 Replace NULL with nullptr in C++ files.
6a3b915166 Remove PLATFORM_IS_LITTLE_ENDIAN from port/posix.h.
260655b4c2 Define LEVELDB_HAS_PORT_CONFIG_H for old compilers.
6fa4566670 Rename CMake project / targets from Leveldb to leveldb.
0db30413a4 leveldb: Add more thread safety annotations.
04f39105c5 Take <atomic> for granted in port/atomic_pointer.h.
74f032ff6f leveldb: Require C++11.
8e75db8623 Remove build configuration for make.
df9a841a4f Add export.h to CMakeLists.txt
50fbc87e8c Replace SIZE_MAX with std::numeric_limits.
739c25100e Add CMake build support.
0fa5a4f7b1 Extend thread safety annotations.
8143c12f3f Fix includes in util/testharness.h.
aece2068d7 Remove extern from function declarations.
ddab751002 Add tests for {Old}InfoLogFileName().
7fd7c00721 Remove unused function ExtractValueType.
594cc987af Bypass OSMemoryBarrier() warning on Mac.
49f35d3fc9 leveldb: Update Travis CI configuration for open source build.
623d014a54 Expose Env::GetTempDirectory() for use in C test.
8c8024ea33 Switch HAVE_ library detection macros to 0/1.
41172a2401 Enable thread safety annotations in open source version.
47cb9e2a21 Add leveldb_options_set_max_file_size to the C API.
b5d4a22e64 Fixed style guide link in CONTRIBUTING.md
3da4d8b989 Deleted unused assignments in Reader.
0509414f85 leveldb::DestroyDB will now delete empty directories.
23162ca1c6 Fix typo (forgotten reference operator) in test.
5c39524f36 Replace SSE-optimized CRC32C in POSIX port with external library.
ca216e493f leveldb: Rename SNAPPY to HAVE_SNAPPY.
25767d066c leveldb: Remove *_unlocked feature detection from POSIX port.
4a7e7f50dc Add LEVELDB_EXPORT macro to export public symbols.
542590d2a8 leveldb: Include <algorithm> in util/env_test.cc.
8ae7998aab Fix FD leak in POSIX Env.
d9a9e02edf leveldb: Add tests for CL 170769101.
4447f9cace Remove handling for unused LRUHandle representation special case.
2372ac574f Fix file writing bug in CL 170738066.
1c75e88055 Fix use of uninitialized value in LRUHandle.
7e12c00ecf Fix issue 474: a race between the f*_unlocked() STDIO calls in env_posix.cc and concurrent application calls to fflush(NULL).
bcd9a8ea4a Use portable CRC32C from google/crc32c.
ea0a7586b8 Remove confusing and unnecessary if.
141e767135 Simplify Table::Open() flow and remove a delete call.
09a3c8e741 Switched variable type from int to uint64_t in ConsumeDecimalNumber.
2964b803b8 leveldb: Fix alignment code in SSE4.2-optimized CRC32C.
02f43c0fcd Remove dead code.
0b402e96a7 Use __APPLE__ instead of OS_MACOS. The former is compiler-provided.
8415f00eee leveldb: Report missing CURRENT manifest file as database corruption.
69e2bd224b LevelDB: Add WriteBatch::ApproximateSize().
471f0b84ec fix comment
5b817400a0 fix comment
7d060117fa broken db: fix assertion in leveldb::InternalKey::Encode, mark base as corrupt
2883fcd849 set const property
e5f0a51fa4 reduce lock's range in DeleteObsoleteFiles
dd598676cd block_builder header file dependency fixed
REVERT: 64052c7 Merge PIVX-Project#15: Add filename to corruption errors
REVERT: 135ed0f Add filename to corruption errors
REVERT: c521b3a Merge PIVX-Project#11: fixup define checks. Cleans up some oopses from PIVX-Project#5.
REVERT: 8b1cd37 fixup define checks. Cleans up some oopses from PIVX-Project#5.
REVERT: 6b1508d Merge PIVX-Project#6: Fixes typo
REVERT: fceb805 Merge PIVX-Project#10: Clean up compile-time warnings (gcc 7.1)
REVERT: 0ec2a34 Clean up compile-time warnings (gcc 7.1)
REVERT: d4c268a Merge PIVX-Project#5: Move helper functions out of sse4.2 object
REVERT: 8d4eb08 Add HasAcceleratedCRC32C to port_win.h
REVERT: 77cfbfd crc32: move helper functions out of port_posix_sse.cc
REVERT: 4c1e9e0 silence compiler warnings about uninitialized variables
REVERT: 4953164 Merge PIVX-Project#2: Prefer std::atomic over MemoryBarrier
REVERT: 2953978 Fixes typo
REVERT: f134284 Merge #1: Merge upstream LevelDB 1.20
REVERT: 196962f Add AcceleratedCRC32C to port_win.h
REVERT: ba8a445 Prefer std::atomic over MemoryBarrier
REVERT: 1bdf1c3 Merge upstream LevelDB v1.20
REVERT: d31721e Merge PIVX-Project#17: Fixed file sharing errors
REVERT: fecd449 Fixed file sharing error in Win32Env::GetFileSize(), Win32SequentialFile::_Init(), Win32RandomAccessFile::_Init() Fixed error checking in Win32SequentialFile::_Init()
REVERT: 5b7510f Merge PIVX-Project#14: Merge upstream LevelDB 1.19
REVERT: 0d969fd Merge PIVX-Project#16: [LevelDB] Do no crash if filesystem can't fsync
REVERT: c8c029b [LevelDB] Do no crash if filesystem can't fsync
REVERT: a31c8aa Add NewAppendableFile for win32 environment
REVERT: d40bc3f Merge PIVX-Project#13: Typo
REVERT: ebbd772 Typo
REVERT: 1913d71 Merge upstream LevelDB 1.19
REVERT: 20ca81f Merge pull request PIVX-Project#9
REVERT: 7aa105e leveldb: Win32WritableFile without memory mapping
REVERT: 7d41e6f Merge upstream LevelDB 1.18
REVERT: 42dcc7e Merge upstream LevelDB 1.17.
REVERT: e991315 Merge upstream LevelDB 1.15.
REVERT: 02ac9f1 Merge upstream LevelDB 1.14.
REVERT: 936b461 Merge upstream LevelDB 1.13.
REVERT: be1b0ff On Mac OS X fsync does not guarantee write to disk. Use fcntl F_FULLFSYNC instead.
REVERT: a02ddf9 Added GNU/kFreeBSD kernel name (TARGET_OS)
REVERT: 8487468 CondVar::SignalAll was broken, leading to deadlocks on Windows builds. http://code.google.com/p/leveldb/issues/detail?id=149
REVERT: f6d84d1 Allow files to be opened for reading multiple times
REVERT: cb8e3f7 Checking whether closing succeeds
REVERT: d5317e8 Print actual Win32 error that occurred on file creation failure.
REVERT: 907f308 Port leveldb to MinGW32
REVERT: 9def2bf Mingw support for Windows LevelDB port
REVERT: 0a7b074 Pre-Vista leveldb::port::InitOnce implementation
REVERT: 31a2b09 Native Windows LevelDB port
REVERT: 058a035 Remove Snappy support

git-subtree-dir: src/leveldb
git-subtree-split: 0c40829872a9f00f38e11dc370ff8adb3e19f25b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants