aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/fileops/fileopsfactory.h
Commit message (Collapse)AuthorAgeFilesLines
* using override keywordtrialuser022019-01-061-5/+5
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8591 90c681e8-e032-0410-971d-27865f9a5e38
* changed translation api againtrialuser022018-07-211-1/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8200 90c681e8-e032-0410-971d-27865f9a5e38
* changed translation apitrialuser022018-07-211-2/+0
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8196 90c681e8-e032-0410-971d-27865f9a5e38
* copy 1.2 branch to trunktrialuser022017-11-251-0/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7772 90c681e8-e032-0410-971d-27865f9a5e38
* changed contact informationtrialuser022017-10-071-2/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7514 90c681e8-e032-0410-971d-27865f9a5e38
* fixed FSF headerstrialuser022012-07-311-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2845 90c681e8-e032-0410-971d-27865f9a5e38
* fixed FSF address (trunk)trialuser022012-07-311-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2844 90c681e8-e032-0410-971d-27865f9a5e38
* updated yeartrialuser022012-01-191-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2551 90c681e8-e032-0410-971d-27865f9a5e38
* fixed general plugin apitrialuser022011-09-131-3/+3
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2351 90c681e8-e032-0410-971d-27865f9a5e38
* creating file operations plugin structuretrialuser022009-05-021-0/+45
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@927 90c681e8-e032-0410-971d-27865f9a5e38
5e38> 2007-06-23 16:48:01 +0000 moved into qmmp dir' href='/qmmp/commit/src/eqslider.cpp?id=2d622fd9bcb8da9dd3f3206e296cd6a701fc9d12'>2d622fd9b
13bbd1632






2d622fd9b




97c98d9d5

2d622fd9b



2d622fd9b






11b7655bb

2d622fd9b








97c98d9d5
2d622fd9b













fbf6df0e2
2d622fd9b
fbf6df0e2
2d622fd9b

fbf6df0e2
2d622fd9b



11b7655bb
2d622fd9b

fbf6df0e2
2d622fd9b

11b7655bb
2d622fd9b



97c98d9d5
11b7655bb
26da2f9c1
2d622fd9b



97c98d9d5
2d622fd9b









fbf6df0e2
2d622fd9b
97c98d9d5
2d622fd9b



3c37f7453
2d622fd9b

11b7655bb
2d622fd9b

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
                                                                            
                                                                            
                                                                            













                                                                            
                                                                            




                                                                             
                 

                     
                                                         
 
                              

                                                                     
                     


                        
                
                                                   

 




                                              
                    
                       






                                                             




                                 

                                                                                              



                                      






                                              

                     








                                             
                                                     













                                           
                        
 
                     

 
                                 



                 
                

 
                               

              
                



                           
                                          
                
                                                   



                                 
                                                                                       









                                                                        
                               
 
                                                                       



                                         
                                     

                                                
                

                              
/***************************************************************************
 *   Copyright (C) 2006-2021 by Ilya Kotov                                 *
 *   forkotov02@ya.ru                                                      *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
 ***************************************************************************/
#include <QMouseEvent>
#include <QPainter>
#include <QWheelEvent>
#include <math.h>
#include "skin.h"
#include "eqslider.h"

EqSlider::EqSlider(QWidget *parent): PixmapWidget(parent)
{
    m_skin = Skin::instance();
    connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin()));
    setPixmap(m_skin->getEqSlider(0));
    m_moving = false;
    m_min = -20;
    m_max = 20;
    m_old = m_value = 0;
    draw(false);
    setCursor(m_skin->getCursor(Skin::CUR_EQSLID));
}

EqSlider::~EqSlider()
{}

void EqSlider::mousePressEvent(QMouseEvent *e)
{
    m_moving = true;
    press_pos = e->y();
    if (e->button() == Qt::MidButton)
    {
        m_value = 0;
        emit sliderMoved(m_value);
        m_old = m_value;
    }
    else if (m_pos<e->y() && e->y()<m_pos+11*m_skin->ratio())
    {
        press_pos = e->y()-m_pos;
    }
    else
    {
        m_value = convert(qMax(qMin(height()-12*m_skin->ratio(),e->y()-6*m_skin->ratio()),0));
        press_pos = 6*m_skin->ratio();
        if (m_value!=m_old)
        {
            emit sliderMoved(m_value);
            m_old = m_value;
        }
    }
    draw();
}

void EqSlider::mouseReleaseEvent(QMouseEvent*)
{
    m_moving = false;
    draw(false);
}

void EqSlider::mouseMoveEvent(QMouseEvent* e)
{
    if (m_moving)
    {
        int po = e->y();
        po = po - press_pos;

        if (0<=po && po<=height()-12*m_skin->ratio())
        {
            m_value = convert(po);
            draw();
            if (m_value!=m_old)
            {

                m_old = m_value;
                //qDebug ("%d",-m_value);
                emit sliderMoved(-m_value);
            }
        }
    }
}

double EqSlider::value()
{
    return - m_value;
}

void EqSlider::setValue(double p)
{
    if (m_moving)
        return;
    m_value = -p;
    draw(false);
}

void EqSlider::setMax(double m)
{
    m_max = m;
    draw(false);
}

void EqSlider::updateSkin()
{
    resize(m_skin->getEqSlider(0).size());
    draw(false);
    setCursor(m_skin->getCursor(Skin::CUR_EQSLID));
}

void EqSlider::draw(bool pressed)
{
    int p=int(ceil(double(m_value-m_min)*(height()-12*m_skin->ratio())/(m_max-m_min)));
    m_pixmap = m_skin->getEqSlider(27-27*(m_value-m_min)/(m_max-m_min));
    QPainter paint(&m_pixmap);
    if (pressed)
        paint.drawPixmap(1,p,m_skin->getButton(Skin::EQ_BT_BAR_P));
    else
        paint.drawPixmap(1,p,m_skin->getButton(Skin::EQ_BT_BAR_N));
    setPixmap(m_pixmap);
    m_pos = p;
}

double EqSlider::convert(int p)
{
    return (m_max - m_min)*(p)/(height() - 12*m_skin->ratio()) + m_min;
}

void EqSlider::wheelEvent(QWheelEvent *e)
{
    m_value -= double(e->delta())/60;
    m_value = m_value > m_max ? m_max : m_value;
    m_value = m_value < m_min ? m_min : m_value;
    draw(false);
    emit sliderMoved(m_value);
}