Rename!
This commit is contained in:
337
salt-gruvbox/LICENSE
Normal file
337
salt-gruvbox/LICENSE
Normal file
@@ -0,0 +1,337 @@
|
||||
Creative Commons Legal Code
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported
|
||||
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
|
||||
SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT
|
||||
RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS"
|
||||
BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
|
||||
PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
|
||||
|
||||
License
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
|
||||
BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE
|
||||
CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE
|
||||
IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
|
||||
|
||||
1. Definitions
|
||||
|
||||
a. "Adaptation" means a work based upon the Work, or upon the Work and other
|
||||
pre-existing works, such as a translation, adaptation, derivative work,
|
||||
arrangement of music or other alterations of a literary or artistic work,
|
||||
or phonogram or performance and includes cinematographic adaptations or any
|
||||
other form in which the Work may be recast, transformed, or adapted
|
||||
including in any form recognizably derived from the original, except that a
|
||||
work that constitutes a Collection will not be considered an Adaptation for
|
||||
the purpose of this License. For the avoidance of doubt, where the Work is
|
||||
a musical work, performance or phonogram, the synchronization of the Work
|
||||
in timed-relation with a moving image ("synching") will be considered an
|
||||
Adaptation for the purpose of this License.
|
||||
b. "Collection" means a collection of literary or artistic works, such as
|
||||
encyclopedias and anthologies, or performances, phonograms or broadcasts,
|
||||
or other works or subject matter other than works listed in Section 1(f)
|
||||
below, which, by reason of the selection and arrangement of their contents,
|
||||
constitute intellectual creations, in which the Work is included in its
|
||||
entirety in unmodified form along with one or more other contributions,
|
||||
each constituting separate and independent works in themselves, which
|
||||
together are assembled into a collective whole. A work that constitutes a
|
||||
Collection will not be considered an Adaptation (as defined below) for the
|
||||
purposes of this License.
|
||||
c. "Creative Commons Compatible License" means a license that is listed at
|
||||
http://creativecommons.org/compatiblelicenses that has been approved by
|
||||
Creative Commons as being essentially equivalent to this License,
|
||||
including, at a minimum, because that license: (i) contains terms that have
|
||||
the same purpose, meaning and effect as the License Elements of this
|
||||
License; and, (ii) explicitly permits the relicensing of adaptations of
|
||||
works made available under that license under this License or a Creative
|
||||
Commons jurisdiction license with the same License Elements as this
|
||||
License.
|
||||
d. "Distribute" means to make available to the public the original and copies
|
||||
of the Work or Adaptation, as appropriate, through sale or other transfer
|
||||
of ownership.
|
||||
e. "License Elements" means the following high-level license attributes as
|
||||
selected by Licensor and indicated in the title of this License:
|
||||
Attribution, ShareAlike.
|
||||
f. "Licensor" means the individual, individuals, entity or entities that offer
|
||||
(s) the Work under the terms of this License.
|
||||
g. "Original Author" means, in the case of a literary or artistic work, the
|
||||
individual, individuals, entity or entities who created the Work or if no
|
||||
individual or entity can be identified, the publisher; and in addition (i)
|
||||
in the case of a performance the actors, singers, musicians, dancers, and
|
||||
other persons who act, sing, deliver, declaim, play in, interpret or
|
||||
otherwise perform literary or artistic works or expressions of folklore;
|
||||
(ii) in the case of a phonogram the producer being the person or legal
|
||||
entity who first fixes the sounds of a performance or other sounds; and,
|
||||
(iii) in the case of broadcasts, the organization that transmits the
|
||||
broadcast.
|
||||
h. "Work" means the literary and/or artistic work offered under the terms of
|
||||
this License including without limitation any production in the literary,
|
||||
scientific and artistic domain, whatever may be the mode or form of its
|
||||
expression including digital form, such as a book, pamphlet and other
|
||||
writing; a lecture, address, sermon or other work of the same nature; a
|
||||
dramatic or dramatico-musical work; a choreographic work or entertainment
|
||||
in dumb show; a musical composition with or without words; a
|
||||
cinematographic work to which are assimilated works expressed by a process
|
||||
analogous to cinematography; a work of drawing, painting, architecture,
|
||||
sculpture, engraving or lithography; a photographic work to which are
|
||||
assimilated works expressed by a process analogous to photography; a work
|
||||
of applied art; an illustration, map, plan, sketch or three-dimensional
|
||||
work relative to geography, topography, architecture or science; a
|
||||
performance; a broadcast; a phonogram; a compilation of data to the extent
|
||||
it is protected as a copyrightable work; or a work performed by a variety
|
||||
or circus performer to the extent it is not otherwise considered a literary
|
||||
or artistic work.
|
||||
i. "You" means an individual or entity exercising rights under this License
|
||||
who has not previously violated the terms of this License with respect to
|
||||
the Work, or who has received express permission from the Licensor to
|
||||
exercise rights under this License despite a previous violation.
|
||||
j. "Publicly Perform" means to perform public recitations of the Work and to
|
||||
communicate to the public those public recitations, by any means or
|
||||
process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a place
|
||||
individually chosen by them; to perform the Work to the public by any means
|
||||
or process and the communication to the public of the performances of the
|
||||
Work, including by public digital performance; to broadcast and rebroadcast
|
||||
the Work by any means including signs, sounds or images.
|
||||
k. "Reproduce" means to make copies of the Work by any means including without
|
||||
limitation by sound or visual recordings and the right of fixation and
|
||||
reproducing fixations of the Work, including storage of a protected
|
||||
performance or phonogram in digital form or other electronic medium.
|
||||
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit,
|
||||
or restrict any uses free from copyright or rights arising from limitations or
|
||||
exceptions that are provided for in connection with the copyright protection
|
||||
under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License, Licensor
|
||||
hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the
|
||||
duration of the applicable copyright) license to exercise the rights in the
|
||||
Work as stated below:
|
||||
|
||||
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the Collections;
|
||||
b. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||
including any translation in any medium, takes reasonable steps to clearly
|
||||
label, demarcate or otherwise identify that changes were made to the
|
||||
original Work. For example, a translation could be marked "The original
|
||||
work was translated from English to Spanish," or a modification could
|
||||
indicate "The original work has been modified.";
|
||||
c. to Distribute and Publicly Perform the Work including as incorporated in
|
||||
Collections; and,
|
||||
d. to Distribute and Publicly Perform Adaptations.
|
||||
e. For the avoidance of doubt:
|
||||
|
||||
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme cannot be waived, the Licensor reserves the
|
||||
exclusive right to collect such royalties for any exercise by You of
|
||||
the rights granted under this License;
|
||||
ii. Waivable Compulsory License Schemes. In those jurisdictions in which
|
||||
the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme can be waived, the Licensor waives the exclusive right
|
||||
to collect such royalties for any exercise by You of the rights granted
|
||||
under this License; and,
|
||||
iii. Voluntary License Schemes. The Licensor waives the right to collect
|
||||
royalties, whether individually or, in the event that the Licensor is a
|
||||
member of a collecting society that administers voluntary licensing
|
||||
schemes, via that society, from any exercise by You of the rights
|
||||
granted under this License.
|
||||
|
||||
The above rights may be exercised in all media and formats whether now known or
|
||||
hereafter devised. The above rights include the right to make such
|
||||
modifications as are technically necessary to exercise the rights in other
|
||||
media and formats. Subject to Section 8(f), all rights not expressly granted by
|
||||
Licensor are hereby reserved.
|
||||
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||
subject to and limited by the following restrictions:
|
||||
|
||||
a. You may Distribute or Publicly Perform the Work only under the terms of
|
||||
this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms on
|
||||
the Work that restrict the terms of this License or the ability of the
|
||||
recipient of the Work to exercise the rights granted to that recipient
|
||||
under the terms of the License. You may not sublicense the Work. You must
|
||||
keep intact all notices that refer to this License and to the disclaimer of
|
||||
warranties with every copy of the Work You Distribute or Publicly Perform.
|
||||
When You Distribute or Publicly Perform the Work, You may not impose any
|
||||
effective technological measures on the Work that restrict the ability of a
|
||||
recipient of the Work from You to exercise the rights granted to that
|
||||
recipient under the terms of the License. This Section 4(a) applies to the
|
||||
Work as incorporated in a Collection, but this does not require the
|
||||
Collection apart from the Work itself to be made subject to the terms of
|
||||
this License. If You create a Collection, upon notice from any Licensor You
|
||||
must, to the extent practicable, remove from the Collection any credit as
|
||||
required by Section 4(c), as requested. If You create an Adaptation, upon
|
||||
notice from any Licensor You must, to the extent practicable, remove from
|
||||
the Adaptation any credit as required by Section 4(c), as requested.
|
||||
b. You may Distribute or Publicly Perform an Adaptation only under the terms
|
||||
of: (i) this License; (ii) a later version of this License with the same
|
||||
License Elements as this License; (iii) a Creative Commons jurisdiction
|
||||
license (either this or a later license version) that contains the same
|
||||
License Elements as this License (e.g., Attribution-ShareAlike 3.0 US));
|
||||
(iv) a Creative Commons Compatible License. If you license the Adaptation
|
||||
under one of the licenses mentioned in (iv), you must comply with the terms
|
||||
of that license. If you license the Adaptation under the terms of any of
|
||||
the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"),
|
||||
you must comply with the terms of the Applicable License generally and the
|
||||
following provisions: (I) You must include a copy of, or the URI for, the
|
||||
Applicable License with every copy of each Adaptation You Distribute or
|
||||
Publicly Perform; (II) You may not offer or impose any terms on the
|
||||
Adaptation that restrict the terms of the Applicable License or the ability
|
||||
of the recipient of the Adaptation to exercise the rights granted to that
|
||||
recipient under the terms of the Applicable License; (III) You must keep
|
||||
intact all notices that refer to the Applicable License and to the
|
||||
disclaimer of warranties with every copy of the Work as included in the
|
||||
Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or
|
||||
Publicly Perform the Adaptation, You may not impose any effective
|
||||
technological measures on the Adaptation that restrict the ability of a
|
||||
recipient of the Adaptation from You to exercise the rights granted to that
|
||||
recipient under the terms of the Applicable License. This Section 4(b)
|
||||
applies to the Adaptation as incorporated in a Collection, but this does
|
||||
not require the Collection apart from the Adaptation itself to be made
|
||||
subject to the terms of the Applicable License.
|
||||
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to Section 4
|
||||
(a), keep intact all copyright notices for the Work and provide, reasonable
|
||||
to the medium or means You are utilizing: (i) the name of the Original
|
||||
Author (or pseudonym, if applicable) if supplied, and/or if the Original
|
||||
Author and/or Licensor designate another party or parties (e.g., a sponsor
|
||||
institute, publishing entity, journal) for attribution ("Attribution
|
||||
Parties") in Licensor's copyright notice, terms of service or by other
|
||||
reasonable means, the name of such party or parties; (ii) the title of the
|
||||
Work if supplied; (iii) to the extent reasonably practicable, the URI, if
|
||||
any, that Licensor specifies to be associated with the Work, unless such
|
||||
URI does not refer to the copyright notice or licensing information for the
|
||||
Work; and (iv) , consistent with Ssection 3(b), in the case of an
|
||||
Adaptation, a credit identifying the use of the Work in the Adaptation
|
||||
(e.g., "French translation of the Work by Original Author," or "Screenplay
|
||||
based on original Work by Original Author"). The credit required by this
|
||||
Section 4(c) may be implemented in any reasonable manner; provided,
|
||||
however, that in the case of a Adaptation or Collection, at a minimum such
|
||||
credit will appear, if a credit for all contributing authors of the
|
||||
Adaptation or Collection appears, then as part of these credits and in a
|
||||
manner at least as prominent as the credits for the other contributing
|
||||
authors. For the avoidance of doubt, You may only use the credit required
|
||||
by this Section for the purpose of attribution in the manner set out above
|
||||
and, by exercising Your rights under this License, You may not implicitly
|
||||
or explicitly assert or imply any connection with, sponsorship or
|
||||
endorsement by the Original Author, Licensor and/or Attribution Parties, as
|
||||
appropriate, of You or Your use of the Work, without the separate, express
|
||||
prior written permission of the Original Author, Licensor and/or
|
||||
Attribution Parties.
|
||||
d. Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any Adaptations or
|
||||
Collections, You must not distort, mutilate, modify or take other
|
||||
derogatory action in relation to the Work which would be prejudicial to the
|
||||
Original Author's honor or reputation. Licensor agrees that in those
|
||||
jurisdictions (e.g. Japan), in which any exercise of the right granted in
|
||||
Section 3(b) of this License (the right to make Adaptations) would be
|
||||
deemed to be a distortion, mutilation, modification or other derogatory
|
||||
action prejudicial to the Original Author's honor and reputation, the
|
||||
Licensor will waive or not assert, as appropriate, this Section, to the
|
||||
fullest extent permitted by the applicable national law, to enable You to
|
||||
reasonably exercise Your right under Section 3(b) of this License (right to
|
||||
make Adaptations) but not otherwise.
|
||||
|
||||
5. Representations, Warranties and Disclaimer
|
||||
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
|
||||
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
|
||||
CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE.
|
||||
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
|
||||
EXCLUSION MAY NOT APPLY TO YOU.
|
||||
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN
|
||||
NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
|
||||
LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. Termination
|
||||
|
||||
a. This License and the rights granted hereunder will terminate automatically
|
||||
upon any breach by You of the terms of this License. Individuals or
|
||||
entities who have received Adaptations or Collections from You under this
|
||||
License, however, will not have their licenses terminated provided such
|
||||
individuals or entities remain in full compliance with those licenses.
|
||||
Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
|
||||
b. Subject to the above terms and conditions, the license granted here is
|
||||
perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the Work
|
||||
under different license terms or to stop distributing the Work at any time;
|
||||
provided, however that any such election will not serve to withdraw this
|
||||
License (or any other license that has been, or is required to be, granted
|
||||
under the terms of this License), and this License will continue in full
|
||||
force and effect unless terminated as stated above.
|
||||
|
||||
8. Miscellaneous
|
||||
|
||||
a. Each time You Distribute or Publicly Perform the Work or a Collection, the
|
||||
Licensor offers to the recipient a license to the Work on the same terms
|
||||
and conditions as the license granted to You under this License.
|
||||
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers
|
||||
to the recipient a license to the original Work on the same terms and
|
||||
conditions as the license granted to You under this License.
|
||||
c. If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of the
|
||||
remainder of the terms of this License, and without further action by the
|
||||
parties to this agreement, such provision shall be reformed to the minimum
|
||||
extent necessary to make such provision valid and enforceable.
|
||||
d. No term or provision of this License shall be deemed waived and no breach
|
||||
consented to unless such waiver or consent shall be in writing and signed
|
||||
by the party to be charged with such waiver or consent.
|
||||
e. This License constitutes the entire agreement between the parties with
|
||||
respect to the Work licensed here. There are no understandings, agreements
|
||||
or representations with respect to the Work not specified here. Licensor
|
||||
shall not be bound by any additional provisions that may appear in any
|
||||
communication from You. This License may not be modified without the mutual
|
||||
written agreement of the Licensor and You.
|
||||
f. The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention for
|
||||
the Protection of Literary and Artistic Works (as amended on September 28,
|
||||
1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the
|
||||
WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright
|
||||
Convention (as revised on July 24, 1971). These rights and subject matter
|
||||
take effect in the relevant jurisdiction in which the License terms are
|
||||
sought to be enforced according to the corresponding provisions of the
|
||||
implementation of those treaty provisions in the applicable national law.
|
||||
If the standard suite of rights granted under applicable copyright law
|
||||
includes additional rights not granted under this License, such additional
|
||||
rights are deemed to be included in the License; this License is not
|
||||
intended to restrict the license of any rights under applicable law.
|
||||
|
||||
Creative Commons Notice
|
||||
|
||||
Creative Commons is not a party to this License, and makes no warranty
|
||||
whatsoever in connection with the Work. Creative Commons will not be liable
|
||||
to You or any party on any legal theory for any damages whatsoever,
|
||||
including without limitation any general, special, incidental or
|
||||
consequential damages arising in connection to this license.
|
||||
Notwithstanding the foregoing two (2) sentences, if Creative Commons has
|
||||
expressly identified itself as the Licensor hereunder, it shall have all
|
||||
rights and obligations of Licensor.
|
||||
|
||||
Except for the limited purpose of indicating to the public that the Work is
|
||||
licensed under the CCPL, Creative Commons does not authorize the use by
|
||||
either party of the trademark "Creative Commons" or any related trademark
|
||||
or logo of Creative Commons without the prior written consent of Creative
|
||||
Commons. Any permitted use will be in compliance with Creative Commons'
|
||||
then-current trademark usage guidelines, as may be published on its website
|
||||
or otherwise made available upon request from time to time. For the
|
||||
avoidance of doubt, this trademark restriction does not form part of the
|
||||
License.
|
||||
|
||||
Creative Commons may be contacted at https://creativecommons.org/.
|
308
salt-gruvbox/Main.qml
Normal file
308
salt-gruvbox/Main.qml
Normal file
@@ -0,0 +1,308 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import SddmComponents 2.0
|
||||
import "./components"
|
||||
|
||||
Rectangle {
|
||||
id: container
|
||||
width: 640
|
||||
height: 480
|
||||
color: "#282828"
|
||||
|
||||
LayoutMirroring.enabled: Qt.locale().textDirection == Qt.RightToLeft
|
||||
LayoutMirroring.childrenInherit: true
|
||||
|
||||
property int sessionIndex: session.index
|
||||
|
||||
TextConstants { id: textConstants }
|
||||
|
||||
Connections {
|
||||
target: sddm
|
||||
function onLoginSucceeded() {
|
||||
errorMessage.color = "#83a598"
|
||||
errorMessage.text = textConstants.loginSucceeded
|
||||
}
|
||||
function onLoginFailed() {
|
||||
password.text = ""
|
||||
errorMessage.color = "#fb4934"
|
||||
errorMessage.text = textConstants.loginFailed
|
||||
}
|
||||
function onInformationMessage(message) {
|
||||
errorMessage.color = "#fb4934"
|
||||
errorMessage.text = message
|
||||
}
|
||||
}
|
||||
|
||||
Background {
|
||||
anchors.fill: parent
|
||||
source: Qt.resolvedUrl(config.background)
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
onStatusChanged: {
|
||||
var defaultBackground = Qt.resolvedUrl(config.defaultBackground)
|
||||
if (status == Image.Error && source != defaultBackground) {
|
||||
source = defaultBackground
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Background
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: "#00000000"
|
||||
//color: "#e6000000"
|
||||
// ^ This matches hyprlock but it looks kinda bad :<
|
||||
visible: primaryScreen
|
||||
|
||||
// Within that bg, we have a login box with everything in it
|
||||
Rectangle {
|
||||
id: rectangle
|
||||
anchors.centerIn: parent
|
||||
width: Math.max(600, mainColumn.implicitWidth + 50)
|
||||
height: Math.max(800, mainColumn.implicitHeight + 50)
|
||||
color: "#cc32302f"
|
||||
radius: 8
|
||||
|
||||
// Lay out everything within as a column
|
||||
Column {
|
||||
id: mainColumn
|
||||
width: 400
|
||||
anchors.centerIn: parent
|
||||
spacing: 8
|
||||
|
||||
// This colum has our date and time
|
||||
Column {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
spacing: 4
|
||||
Clock {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
id: clockTime
|
||||
color: "#ebdbb2"
|
||||
timeFont.family: "IBM Plex Sans"
|
||||
dateFont.family: timeFont.family
|
||||
}
|
||||
}
|
||||
|
||||
// This column contains the UN field
|
||||
Column {
|
||||
width: parent.width
|
||||
spacing: 4
|
||||
Text {
|
||||
id: lblName
|
||||
color: "#ebdbb2"
|
||||
width: parent.width
|
||||
text: textConstants.userName
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
|
||||
SaltTextBox {
|
||||
id: name
|
||||
width: parent.width; height: 50
|
||||
text: userModel.lastUser
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
radius: 8
|
||||
textColor: "#ebdbb2"
|
||||
borderWidth: 4
|
||||
borderColor: "#32302f"
|
||||
focusColor: "#83a598"
|
||||
hoverColor: "#504945"
|
||||
color: "#282828"
|
||||
|
||||
KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password
|
||||
|
||||
Keys.onPressed: function (event) {
|
||||
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||
sddm.login(name.text, password.text, sessionIndex)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This one, the password field
|
||||
Column {
|
||||
width: parent.width
|
||||
spacing: 4
|
||||
Text {
|
||||
id: lblPassword
|
||||
color: "#ebdbb2"
|
||||
width: parent.width
|
||||
text: textConstants.password
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
|
||||
SaltPasswordBox {
|
||||
id: password
|
||||
width: parent.width; height: 50
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
radius: 8
|
||||
textColor: "#ebdbb2"
|
||||
borderWidth: 4
|
||||
borderColor: "#32302f"
|
||||
focusColor: "#83a598"
|
||||
hoverColor: "#504945"
|
||||
color: "#282828"
|
||||
|
||||
KeyNavigation.backtab: name; KeyNavigation.tab: session
|
||||
|
||||
Keys.onPressed: function (event) {
|
||||
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||
sddm.login(name.text, password.text, sessionIndex)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This one, the session selector
|
||||
Column {
|
||||
width: parent.width
|
||||
spacing: 4
|
||||
z: 101
|
||||
Text {
|
||||
id: lblSession
|
||||
color: "#ebdbb2"
|
||||
width: parent.width
|
||||
text: textConstants.session
|
||||
wrapMode: TextEdit.WordWrap
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
|
||||
SaltComboBox {
|
||||
id: session
|
||||
width: parent.width; height: 50
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
radius: 8
|
||||
textColor: "#ebdbb2"
|
||||
borderColor: "#32302f"
|
||||
borderWidth: 4
|
||||
focusColor: "#83a598"
|
||||
hoverColor: "#504945"
|
||||
color: "#282828"
|
||||
|
||||
model: sessionModel
|
||||
index: sessionModel.lastIndex
|
||||
|
||||
KeyNavigation.backtab: password; KeyNavigation.tab: loginButton
|
||||
}
|
||||
}
|
||||
|
||||
// This here's an error message/whatever prompt
|
||||
Column {
|
||||
width: parent.width
|
||||
Text {
|
||||
id: errorMessage
|
||||
color: "#ebdbb2"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: textConstants.prompt
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
}
|
||||
|
||||
// This singular Row has our login button
|
||||
Row {
|
||||
spacing: 4
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: parent.width
|
||||
SaltButton {
|
||||
id: loginButton
|
||||
text: textConstants.login
|
||||
width: parent.width
|
||||
radius: 8
|
||||
|
||||
onClicked: sddm.login(name.text, password.text, sessionIndex)
|
||||
|
||||
KeyNavigation.backtab: session; KeyNavigation.tab: shutdownButton
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
textColor: "#282828"
|
||||
color: "#458588"
|
||||
disabledColor: "#32302f"
|
||||
activeColor: "#83a598"
|
||||
pressedColor: "#458588"
|
||||
}
|
||||
}
|
||||
|
||||
// And this one has our shutdown/reboot buttons
|
||||
Row {
|
||||
spacing: 4
|
||||
width: parent.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
property int btnWidth: parent.width / 2 - ( spacing / 2 )
|
||||
SaltButton {
|
||||
id: shutdownButton
|
||||
text: textConstants.shutdown
|
||||
width: parent.btnWidth
|
||||
radius: 8
|
||||
|
||||
onClicked: sddm.powerOff()
|
||||
|
||||
KeyNavigation.backtab: loginButton; KeyNavigation.tab: rebootButton
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
textColor: "#ebdbb2"
|
||||
color: "#32302f"
|
||||
disabledColor: "#32302f"
|
||||
activeColor: "#fb4934"
|
||||
pressedColor: "#cc241d"
|
||||
}
|
||||
|
||||
SaltButton {
|
||||
id: rebootButton
|
||||
text: textConstants.reboot
|
||||
width: parent.btnWidth
|
||||
radius: 8
|
||||
|
||||
onClicked: sddm.reboot()
|
||||
|
||||
KeyNavigation.backtab: shutdownButton; KeyNavigation.tab: name
|
||||
font.family: "IBM Plex Sans"
|
||||
font.pixelSize: 14
|
||||
textColor: "#ebdbb2"
|
||||
color: "#32302f"
|
||||
disabledColor: "#32302f"
|
||||
activeColor: "#fb4934"
|
||||
pressedColor: "#cc241d"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
if (name.text == "")
|
||||
name.focus = true
|
||||
else
|
||||
password.focus = true
|
||||
}
|
||||
}
|
29
salt-gruvbox/README
Normal file
29
salt-gruvbox/README
Normal file
@@ -0,0 +1,29 @@
|
||||
This theme is part of the Simple Desktop Display Manager distribution. This theme is based QtQuick2.
|
||||
|
||||
chevron icons are extracted from Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome.
|
||||
|
||||
rectangle.png is from KDM ariya theme.
|
||||
|
||||
The wallpaper was taken from here:
|
||||
http://interfacelift.com/wallpaper/details/3170/baros_maldives.html
|
||||
It was made by Dan Grady.
|
||||
|
||||
GeosansLight font is downloaded from here:
|
||||
http://www.dafont.com/geo-sans-light.font
|
||||
It was made by Manfred Klein, http://manfred-klein.ina-mar.com/.
|
||||
|
||||
QML files contain license headers.
|
||||
|
||||
warning.png is public domain: http://rationalwiki.org/wiki/File:Warning_icon_orange.svg
|
||||
|
||||
~~~
|
||||
|
||||
background.png
|
||||
|
||||
Nalaguriadhoo (Sun Island) view towards the South onto the waterbungalows
|
||||
|
||||
Copyright (C) 2012 Dr. Peter Schmidt
|
||||
|
||||
Source: https://commons.wikimedia.org/wiki/File:Nalaguraidhoo_Wasserbungalows.JPG
|
||||
License: Creative Commons Attribution-Share Alike 3.0 Unported
|
||||
License-URL: https://creativecommons.org/licenses/by-sa/3.0/deed.en
|
BIN
salt-gruvbox/background.jpg
Normal file
BIN
salt-gruvbox/background.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 529 KiB |
132
salt-gruvbox/components/SaltButton.qml
Normal file
132
salt-gruvbox/components/SaltButton.qml
Normal file
@@ -0,0 +1,132 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
Rectangle {
|
||||
id: container
|
||||
width: 80; height: 30
|
||||
|
||||
property alias borderColor: main.color
|
||||
property alias textColor: textArea.color
|
||||
property alias font: textArea.font
|
||||
property alias text: textArea.text
|
||||
property alias implicitWidth: textArea.implicitWidth
|
||||
property alias implicitHeight: textArea.implicitHeight
|
||||
|
||||
color: "#4682b4"
|
||||
property color disabledColor: "#888888"
|
||||
property color activeColor: "#266294"
|
||||
property color pressedColor: "#064264"
|
||||
|
||||
property bool enabled: true
|
||||
property bool spaceDown: false
|
||||
property bool isFocused: activeFocus || mouseArea.containsMouse
|
||||
property bool isPressed: spaceDown || mouseArea.pressed
|
||||
|
||||
signal pressed()
|
||||
signal released()
|
||||
signal clicked()
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "disabled"; when: (container.enabled === false)
|
||||
PropertyChanges { target: container; color: disabledColor }
|
||||
PropertyChanges { target: main; color: disabledColor }
|
||||
},
|
||||
State {
|
||||
name: "active"; when: container.enabled && container.isFocused && !container.isPressed
|
||||
PropertyChanges { target: container; color: activeColor }
|
||||
PropertyChanges { target: main; color: activeColor }
|
||||
},
|
||||
State {
|
||||
name: "pressed"; when: container.enabled && container.isPressed
|
||||
PropertyChanges { target: container; color: pressedColor }
|
||||
PropertyChanges { target: main; color: pressedColor }
|
||||
}
|
||||
]
|
||||
|
||||
transitions: Transition {
|
||||
ColorAnimation { duration: 200 }
|
||||
}
|
||||
|
||||
clip: true
|
||||
smooth: true
|
||||
|
||||
Rectangle {
|
||||
id: main
|
||||
width: parent.width - 2; height: parent.height - 2
|
||||
anchors.centerIn: parent
|
||||
radius: container.radius
|
||||
|
||||
color: parent.color
|
||||
|
||||
visible: container.isFocused
|
||||
}
|
||||
|
||||
Text {
|
||||
id: textArea
|
||||
anchors.centerIn: parent
|
||||
color: "white"
|
||||
text: "Button"
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
hoverEnabled: container.enabled
|
||||
enabled: container.enabled
|
||||
|
||||
acceptedButtons: Qt.LeftButton
|
||||
|
||||
onPressed: { container.focus = true; container.pressed() }
|
||||
onClicked: { container.focus = true; container.clicked() }
|
||||
onReleased: { container.focus = true; container.released() }
|
||||
}
|
||||
|
||||
Keys.onPressed: function (event) {
|
||||
if (event.key === Qt.Key_Space) {
|
||||
container.spaceDown = true;
|
||||
container.pressed()
|
||||
event.accepted = true
|
||||
} else if (event.key === Qt.Key_Return) {
|
||||
container.clicked()
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onReleased: function (event) {
|
||||
if (event.key === Qt.Key_Space) {
|
||||
container.spaceDown = false;
|
||||
container.released()
|
||||
container.clicked()
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
}
|
242
salt-gruvbox/components/SaltComboBox.qml
Normal file
242
salt-gruvbox/components/SaltComboBox.qml
Normal file
@@ -0,0 +1,242 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
FocusScope {
|
||||
id: container
|
||||
width: 80; height: 30
|
||||
|
||||
property color color: "white"
|
||||
property color borderColor: "#ababab"
|
||||
property color focusColor: "#266294"
|
||||
property color hoverColor: "#5692c4"
|
||||
property color menuColor: "white"
|
||||
property color textColor: "black"
|
||||
|
||||
property int borderWidth: 1
|
||||
property font font
|
||||
property alias model: listView.model
|
||||
property alias radius: main.radius
|
||||
property int index: 0
|
||||
|
||||
property Component rowDelegate: defaultRowDelegate
|
||||
|
||||
signal valueChanged(int id)
|
||||
|
||||
Component {
|
||||
id: defaultRowDelegate
|
||||
Text {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 3 + container.borderWidth
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: container.textColor
|
||||
font: container.font
|
||||
|
||||
text: parent.modelItem.name
|
||||
}
|
||||
}
|
||||
|
||||
onFocusChanged: if (!container.activeFocus) close(false)
|
||||
|
||||
Rectangle {
|
||||
id: main
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
color: container.color
|
||||
border.color: container.borderColor
|
||||
border.width: container.borderWidth
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "hover"; when: mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.hoverColor }
|
||||
},
|
||||
State {
|
||||
name: "focus"; when: container.activeFocus && !mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.focusColor }
|
||||
}
|
||||
]
|
||||
|
||||
transitions: Transition {
|
||||
ColorAnimation { property: "border.color"; duration: 100 }
|
||||
}
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: topRow
|
||||
anchors.fill: parent
|
||||
focus: true
|
||||
clip: true
|
||||
|
||||
sourceComponent: rowDelegate
|
||||
property variant modelItem
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: container
|
||||
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
hoverEnabled: true
|
||||
|
||||
onEntered: if (main.state == "") main.state = "hover";
|
||||
onExited: if (main.state == "hover") main.state = "";
|
||||
onClicked: { container.focus = true; toggle() }
|
||||
onWheel: {
|
||||
if (wheel.angleDelta.y > 0)
|
||||
listView.decrementCurrentIndex()
|
||||
else
|
||||
listView.incrementCurrentIndex()
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onPressed: function (event) {
|
||||
if (event.key === Qt.Key_Up) {
|
||||
listView.decrementCurrentIndex()
|
||||
} else if (event.key === Qt.Key_Down) {
|
||||
if (event.modifiers !== Qt.AltModifier)
|
||||
listView.incrementCurrentIndex()
|
||||
else
|
||||
toggle()
|
||||
} else if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) {
|
||||
close(true)
|
||||
} else if (event.key === Qt.Key_Escape) {
|
||||
close(false)
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: dropDown
|
||||
width: container.width; height: 0
|
||||
anchors.top: container.bottom
|
||||
anchors.topMargin: 0
|
||||
|
||||
color: container.menuColor
|
||||
|
||||
clip: true
|
||||
|
||||
Component {
|
||||
id: myDelegate
|
||||
|
||||
Rectangle {
|
||||
width: dropDown.width; height: container.height - 2*container.borderWidth
|
||||
color: "transparent"
|
||||
|
||||
Loader {
|
||||
id: loader
|
||||
anchors.fill: parent
|
||||
sourceComponent: rowDelegate
|
||||
|
||||
property variant modelItem: model
|
||||
}
|
||||
|
||||
property variant modelItem: model
|
||||
|
||||
MouseArea {
|
||||
id: delegateMouseArea
|
||||
anchors.fill: parent
|
||||
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
hoverEnabled: true
|
||||
onEntered: listView.currentIndex = index
|
||||
onClicked: close(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
width: container.width; height: (container.height - 2*container.borderWidth) * count + container.borderWidth
|
||||
delegate: myDelegate
|
||||
highlight: Rectangle {
|
||||
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined;
|
||||
color: container.hoverColor
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: listView
|
||||
anchors.topMargin: -container.borderWidth
|
||||
color: "transparent"
|
||||
clip: false
|
||||
border.color: main.border.color
|
||||
border.width: main.border.width
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "visible";
|
||||
PropertyChanges { target: dropDown; height: (container.height - 2*container.borderWidth) * listView.count + container.borderWidth}
|
||||
}
|
||||
]
|
||||
|
||||
transitions: Transition {
|
||||
NumberAnimation { property: "height"; duration: 100 }
|
||||
}
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
if (dropDown.state === "visible")
|
||||
close(false)
|
||||
else
|
||||
open()
|
||||
}
|
||||
|
||||
function open() {
|
||||
dropDown.state = "visible"
|
||||
listView.currentIndex = container.index
|
||||
}
|
||||
|
||||
function close(update) {
|
||||
dropDown.state = ""
|
||||
|
||||
if (update) {
|
||||
container.index = listView.currentIndex
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
valueChanged(listView.currentIndex)
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
|
||||
onIndexChanged: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
|
||||
onModelChanged: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
}
|
162
salt-gruvbox/components/SaltPasswordBox.qml
Normal file
162
salt-gruvbox/components/SaltPasswordBox.qml
Normal file
@@ -0,0 +1,162 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Nikita Mikhaylov <nslqqq@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
FocusScope {
|
||||
id: container
|
||||
width: 80; height: 30
|
||||
|
||||
property alias borderWidth: txtMain.borderWidth
|
||||
property alias color: txtMain.color
|
||||
property alias borderColor: txtMain.borderColor
|
||||
property alias focusColor: txtMain.focusColor
|
||||
property alias hoverColor: txtMain.hoverColor
|
||||
property alias radius: txtMain.radius
|
||||
property alias font: txtMain.font
|
||||
property alias textColor: txtMain.textColor
|
||||
property alias echoMode: txtMain.echoMode
|
||||
property alias text: txtMain.text
|
||||
|
||||
property alias image: img.source
|
||||
property double imageFadeIn: 300
|
||||
property double imageFadeOut: 200
|
||||
|
||||
property alias tooltipEnabled: tooltip.visible
|
||||
property alias tooltipText: tooltipText.text
|
||||
property alias tooltipFG: tooltipText.color
|
||||
property alias tooltipBG: tooltip.color
|
||||
|
||||
SaltTextBox {
|
||||
id: txtMain
|
||||
width: parent.width; height: parent.height
|
||||
font.pixelSize: 14
|
||||
|
||||
echoMode: TextInput.Password
|
||||
|
||||
focus: true
|
||||
}
|
||||
|
||||
Image {
|
||||
id: img
|
||||
opacity: 0
|
||||
state: keyboard.capsLock ? "activated" : ""
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
fillMode: Image.PreserveAspectFit
|
||||
|
||||
smooth: true
|
||||
height: parent.height * 0.8
|
||||
|
||||
source: "warning.png"
|
||||
sourceSize.width: width
|
||||
sourceSize.height: height
|
||||
|
||||
anchors.rightMargin: 0.3 * width
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "activated"
|
||||
PropertyChanges { target: img; opacity: 1; }
|
||||
},
|
||||
State {
|
||||
name: ""
|
||||
PropertyChanges { target: img; opacity: 0; }
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
to: "activated"
|
||||
NumberAnimation { target: img; property: "opacity"; from: 0; to: 1; duration: imageFadeIn; }
|
||||
},
|
||||
|
||||
Transition {
|
||||
to: ""
|
||||
NumberAnimation { target: img; property: "opacity"; from: 1; to: 0; duration: imageFadeOut; }
|
||||
}
|
||||
]
|
||||
|
||||
MouseArea {
|
||||
id: hoverArea
|
||||
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.ArrowCursor
|
||||
|
||||
onEntered: {
|
||||
tooltip.x = mouseX + img.x + 10
|
||||
tooltip.y = mouseY + 10
|
||||
}
|
||||
|
||||
onPositionChanged: {
|
||||
tooltip.x = mouseX + img.x + 10
|
||||
tooltip.y = mouseY + 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: tooltip
|
||||
color: "lightblue"
|
||||
border.color: "black"
|
||||
border.width: 1
|
||||
|
||||
width: 1.1 * tooltipText.implicitWidth
|
||||
height: 1.4 * tooltipText.implicitHeight
|
||||
radius: 2
|
||||
opacity: 0
|
||||
|
||||
state: hoverArea.containsMouse && img.state == "activated" ? "activated" : ""
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "activated"
|
||||
PropertyChanges { target: tooltip; opacity: 1 }
|
||||
},
|
||||
State {
|
||||
name: ""
|
||||
PropertyChanges { target: tooltip; opacity: 0 }
|
||||
}
|
||||
]
|
||||
|
||||
transitions: [
|
||||
Transition {
|
||||
to: "activated"
|
||||
NumberAnimation { target: tooltip; property: "opacity"; from: 0; to: 1; duration: imageFadeIn; }
|
||||
},
|
||||
|
||||
Transition {
|
||||
to: ""
|
||||
NumberAnimation { target: tooltip; property: "opacity"; from: 1; to: 0; duration: imageFadeOut; }
|
||||
}
|
||||
]
|
||||
|
||||
Text {
|
||||
id: tooltipText
|
||||
anchors.centerIn: parent;
|
||||
text: textConstants.capslockWarning
|
||||
}
|
||||
}
|
||||
}
|
92
salt-gruvbox/components/SaltTextBox.qml
Normal file
92
salt-gruvbox/components/SaltTextBox.qml
Normal file
@@ -0,0 +1,92 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
FocusScope {
|
||||
id: container
|
||||
width: 80; height: 30
|
||||
|
||||
property color color: "white"
|
||||
property color borderColor: "#ababab"
|
||||
property color focusColor: "#266294"
|
||||
property color hoverColor: "#5692c4"
|
||||
property alias borderWidth: main.border.width
|
||||
property alias radius: main.radius
|
||||
property alias font: txtMain.font
|
||||
property alias textColor: txtMain.color
|
||||
property alias echoMode: txtMain.echoMode
|
||||
property alias text: txtMain.text
|
||||
|
||||
Rectangle {
|
||||
id: main
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
color: container.color
|
||||
border.color: container.borderColor
|
||||
border.width: 1
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "hover"; when: mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.color: container.hoverColor }
|
||||
},
|
||||
State {
|
||||
name: "focus"; when: container.activeFocus && !mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.color: container.focusColor }
|
||||
}
|
||||
]
|
||||
|
||||
transitions: Transition {
|
||||
ColorAnimation { duration: 100 }
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: container
|
||||
|
||||
cursorShape: Qt.IBeamCursor
|
||||
|
||||
hoverEnabled: true
|
||||
|
||||
onEntered: if (main.state == "") main.state = "hover";
|
||||
onExited: if (main.state == "hover") main.state = "";
|
||||
onClicked: container.focus = true;
|
||||
}
|
||||
|
||||
TextInput {
|
||||
id: txtMain
|
||||
width: parent.width - 16
|
||||
anchors.centerIn: parent
|
||||
|
||||
color: "black"
|
||||
|
||||
clip: true
|
||||
focus: true
|
||||
|
||||
passwordCharacter: "\u25cf"
|
||||
}
|
||||
}
|
16
salt-gruvbox/metadata.desktop
Normal file
16
salt-gruvbox/metadata.desktop
Normal file
@@ -0,0 +1,16 @@
|
||||
[SddmGreeterTheme]
|
||||
Name=Salt Gruvbox
|
||||
Description=Gruvbox SDDM Theme
|
||||
Author=Abdurrahman AVCI, Salt
|
||||
Copyright=(c) 2013, Abdurrahman AVCI, (c) 2025 Salt
|
||||
License=CC-BY-SA
|
||||
Type=sddm-theme
|
||||
Version=0.1
|
||||
Website=https://git.desu.ltd/salt/sddm-theme
|
||||
MainScript=Main.qml
|
||||
ConfigFile=theme.conf
|
||||
TranslationsDirectory=translations
|
||||
Email=jacob@babor.tech
|
||||
Theme-Id=salt-gruvbox
|
||||
Theme-API=2.0
|
||||
QtVersion=6
|
3
salt-gruvbox/theme.conf
Normal file
3
salt-gruvbox/theme.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
# vim:ft=dosini:
|
||||
[General]
|
||||
background=background.jpg
|
Reference in New Issue
Block a user