Commit d42b4ccdd703c47ee74db36bb49d863d212bd2b4

Small round of fixes.
src/quax.cpp
(53 / 50)
  
1212//
1313//
1414
15#include "quax.h"
16
1517#include "mag.xpm"
1618#include "mag-alpha.xpm"
1719#include "exit.xpm"
2626#include "icon.xpm"
2727#include "help.xpm"
2828
29#include "quax.h"
30
31#include <QToolTip>
29#include <QApplication>
30#include <QClipboard>
3231#include <QColor>
3332#include <QCursor>
34#include <QClipboard>
35#include <QProcess>
3633#include <QDesktopServices>
37#include <QUrl>
38#include <QTimerEvent>
34#include <QDesktopWidget>
3935#include <QKeyEvent>
40#include <QLabel>
41#include <QPixmap>
4236#include <QMenu>
37#include <QMessageBox>
4338#include <QMouseEvent>
44#include <QEvent>
4539#include <QPaintEvent>
40#include <QPainter>
41#include <QPixmap>
42#include <QProcess>
43#include <QToolTip>
44#include <QUrl>
4645#include <QWheelEvent>
47#include <QDesktopWidget>
4846
4947
5048Quax::Quax()
5757{
5858 // customize looks
5959 //setAttribute(Qt::WA_NoSystemBackground);
60 //setAttribute(Qt::WA_TranslucentBackground, true);
6061 setFixedSize(150, 150);
6162 setCursor(Qt::PointingHandCursor);
6263 setWindowIcon(QPixmap(icon_xpm));
6364 rotate(0);
6465
6566 // build RMB popup menu
66 menu = new QMenu(this);
67
68 menuZoom = new QMenu(tr("Zoom"), this);
69 menuZoom->setIcon(QPixmap(viewmag_xpm));
67 m_menuZoom = new QMenu(tr("Zoom"), this);
68 m_menuZoom->setIcon(QPixmap(viewmag_xpm));
7069 m_zoomGroup = new QActionGroup(this);
7170 for (int i = ZOOM_SCALE_MIN; i <= ZOOM_SCALE_MAX; i++) {
72 QAction * zoomAction = menuZoom->addAction(tr("%1:1").arg(i), this, SLOT(slotZoomTo()));
71 QAction * zoomAction = m_menuZoom->addAction(tr("%1:1").arg(i), this, SLOT(slotZoomTo()));
7372 zoomAction->setCheckable(true);
7473 zoomAction->setProperty("level", i);
7574 zoomAction->setActionGroup(m_zoomGroup);
7675 }
77 menuZoom->addSeparator();
78 menuZoom->addAction(QPixmap(viewmagin_xpm), tr("Zoom In"), this, SLOT(zoomIn()), QKeySequence(tr("+","Zoom In")));
79 menuZoom->addAction(QPixmap(viewmagout_xpm), tr("Zoom Out"), this, SLOT(zoomOut()), QKeySequence(tr("-","Zoom Out")));
76 m_menuZoom->addSeparator();
77 m_menuZoom->addAction(QPixmap(viewmagin_xpm), tr("Zoom In"), this, SLOT(slotZoomIn()), QKeySequence(tr("+","Zoom In")));
78 m_menuZoom->addAction(QPixmap(viewmagout_xpm), tr("Zoom Out"), this, SLOT(slotZoomOut()), QKeySequence(tr("-","Zoom Out")));
8079
81 menuLook = new QMenu(tr("Look At"), this);
82 menuLook->setIcon(QPixmap(look_xpm));
80 m_menuLook = new QMenu(tr("Look At"), this);
81 m_menuLook->setIcon(QPixmap(look_xpm));
8382 m_rotGroup = new QActionGroup(this);
84 QAction * r0 = menuLook->addAction(tr("North-West"), this, SLOT(slotRotate()), QKeySequence(tr("U", "North-West")));
83 QAction * r0 = m_menuLook->addAction(tr("North-West"), this, SLOT(slotRotate()), QKeySequence(tr("U", "North-West")));
8584 r0->setProperty("rotation", 0);
8685 r0->setActionGroup(m_rotGroup);
87 QAction * r1 = menuLook->addAction(tr("South-West"), this, SLOT(slotRotate()), QKeySequence(tr("J", "South-West")));
86 QAction * r1 = m_menuLook->addAction(tr("South-West"), this, SLOT(slotRotate()), QKeySequence(tr("J", "South-West")));
8887 r1->setProperty("rotation", 1);
8988 r1->setActionGroup(m_rotGroup);
90 QAction * r2 = menuLook->addAction(tr("North-East"), this, SLOT(slotRotate()), QKeySequence(tr("I", "North-East")));
89 QAction * r2 = m_menuLook->addAction(tr("North-East"), this, SLOT(slotRotate()), QKeySequence(tr("I", "North-East")));
9190 r2->setProperty("rotation", 2);
9291 r2->setActionGroup(m_rotGroup);
93 QAction * r3 = menuLook->addAction(tr("South-Eash"), this, SLOT(slotRotate()), QKeySequence(tr("K", "South-East")));
92 QAction * r3 = m_menuLook->addAction(tr("South-Eash"), this, SLOT(slotRotate()), QKeySequence(tr("K", "South-East")));
9493 r3->setProperty("rotation", 3);
9594 r3->setActionGroup(m_rotGroup);
96 menuLook->addSeparator();
97 menuLook->addAction(QPixmap(left_xpm), tr("Rotate Left"), this, SLOT(slotRotateLeft()), QKeySequence(tr("L", "Rotate Left")));
98 menuLook->addAction(QPixmap(right_xpm),tr("Rotate Right"), this, SLOT(slotRotateRight()), QKeySequence(tr("R", "Rotate Right")));
95 m_menuLook->addSeparator();
96 m_menuLook->addAction(QPixmap(left_xpm), tr("Rotate Left"), this, SLOT(slotRotateLeft()), QKeySequence(tr("L", "Rotate Left")));
97 m_menuLook->addAction(QPixmap(right_xpm),tr("Rotate Right"), this, SLOT(slotRotateRight()), QKeySequence(tr("R", "Rotate Right")));
9998
100 menuColor = new QMenu(tr("Copy Color"), this);
99 m_menuColor = new QMenu(tr("Copy Color"), this);
101100 m_colorGroup = new QActionGroup(this);
102 QAction * c0 = menuColor->addAction(m_colorStringDecimal, this, SLOT(slotColorToClipboard()));
101 QAction * c0 = m_menuColor->addAction(m_colorStringDecimal, this, SLOT(slotColorToClipboard()));
103102 c0->setActionGroup(m_colorGroup);
104103 c0->setProperty("id", 0);
105 QAction * c1 = menuColor->addAction(m_colorStringHexaLower, this, SLOT(slotColorToClipboard()));
104 QAction * c1 = m_menuColor->addAction(m_colorStringHexaLower, this, SLOT(slotColorToClipboard()));
106105 c1->setActionGroup(m_colorGroup);
107106 c1->setProperty("id", 1);
108 QAction * c2 = menuColor->addAction(m_colorStringHexaUpper, this, SLOT(slotColorToClipboard()));
107 QAction * c2 = m_menuColor->addAction(m_colorStringHexaUpper, this, SLOT(slotColorToClipboard()));
109108 c2->setActionGroup(m_colorGroup);
110109 c2->setProperty("id", 2);
111110
112 menu->addMenu(menuZoom);
113 menu->addMenu(menuLook);
114 menu->addMenu(menuColor);
115 menu->addAction(QPixmap(help_xpm), tr("Help"), this, SLOT(slotHelp()), QKeySequence(tr("H", "Help")));
116 menu->addSeparator();
117 menu->addAction(tr("About Quax"), this, SLOT(slotAbout()));
118 menu->addAction(tr("About Qt"), this, SLOT(slotAboutQt()));
119 menu->addSeparator();
120 menu->addAction(QPixmap(exit_xpm),tr("Quit"), qApp, SLOT(quit()), QKeySequence(tr("Q", "Quit")));
111 m_menu = new QMenu(this);
112 m_menu->addMenu(m_menuZoom);
113 m_menu->addMenu(m_menuLook);
114 m_menu->addMenu(m_menuColor);
115 m_menu->addAction(QPixmap(help_xpm), tr("Help"), this, SLOT(slotHelp()), QKeySequence(tr("H", "Help")));
116 m_menu->addSeparator();
117 m_menu->addAction(tr("About Quax"), this, SLOT(slotAbout()));
118 m_menu->addAction(tr("About Qt"), this, SLOT(slotAboutQt()));
119 m_menu->addSeparator();
120 m_menu->addAction(QPixmap(exit_xpm),tr("Quit"), qApp, SLOT(quit()), QKeySequence(tr("Q", "Quit")));
121 connect(m_menu, SIGNAL(aboutToShow()), this, SLOT(slotUpdateColorMenu()));
121122
122123 m_zoomGroup->actions().first()->setChecked(true);
123124 m_rotGroup->actions().at(1)->setChecked(true);
124 connect(menu, SIGNAL(aboutToShow()), this, SLOT(slotUpdateColorMenu()));
125125
126126 // set the color tooltip
127127 m_colorTip = new QTextBrowser;
134134 startTimer(UPDATE);
135135}
136136
137
138137Quax::~Quax()
139138{
140139 delete m_colorTip;
313313 } else {
314314 grabMouse(Qt::PointingHandCursor);
315315 m_inDrag = true;
316 dragOffset = QCursor::pos() - QPoint(geometry().left(),geometry().top());
316 m_dragOffset = QCursor::pos() - QPoint(geometry().left(),geometry().top());
317317 }
318318 break;
319319 case Qt::RightButton:
320 menu->popup(QCursor::pos());
320 m_menu->popup(QCursor::pos());
321321 break;
322322 default:
323323 break;
329329 if (m_colorTipEnabled)
330330 genColorTip();
331331 if (m_inDrag && this == mouseGrabber())
332 move(QCursor::pos() - dragOffset);
332 move(QCursor::pos() - m_dragOffset);
333333}
334334
335335void Quax::mouseReleaseEvent(QMouseEvent *e)
376376 case Qt::Key_Plus:
377377 slotZoomIn();
378378 break;
379 case Qt::Key_R:
380 slotRotateRight();
381 break;
379382 case Qt::Key_Underscore:
380383 case Qt::Key_Minus:
381384 slotZoomOut();
382385 break;
383386 default:
384 e->ignore();
387 QWidget::keyPressEvent(e);
385388 return;
386389 }
387390 if (e->modifiers() & Qt::ShiftModifier)
401401 setCursor(Qt::PointingHandCursor);
402402 }
403403 }
404 QWidget::keyReleaseEvent(e);
404405}
405406
406407void Quax::slotHelp()
417417
418418void Quax::slotAbout()
419419{
420 QMessageBox::about(this, tr("About Quax %1").arg(QUAX_VERSION "-" QUAX_RELEASE), tr(
420 QMessageBox::about(this, tr("About Quax %1").arg(qApp->applicationVersion()), tr(
421421 "<p><b>Quax</b> is a little magnifing tool for X. Quax homepage is "
422422 "at <tt>&lt;http://www.ro.kde.org/quax/&gt;</tt>."
423423 "</p><p>This is Quax version %1."
429429 "<dd>porting to Qt4 and cleanups</dd>"
430430 "<dt><nobr>Vlad Oancea <tt>&lt;xtrim@fx.ro&gt;</tt></nobr></dt>"
431431 "<dd>Quax skin design</dd>"
432 "</dl></p>").arg(QUAX_VERSION "-" QUAX_RELEASE));
432 "</dl></p>").arg(qApp->applicationVersion()));
433433}
434434
435435void Quax::slotAboutQt()
521521void Quax::slotUpdateColorMenu()
522522{
523523 grabForPixel();
524 menuColor->setIcon(QIcon(m_colorPixmap));
524 m_menuColor->setIcon(QIcon(m_colorPixmap));
525525 m_colorGroup->actions().at(0)->setText(m_colorStringDecimal);
526526 m_colorGroup->actions().at(1)->setText(m_colorStringHexaLower);
527527 m_colorGroup->actions().at(2)->setText(m_colorStringHexaUpper);
src/quax.h
(12 / 30)
  
1515#ifndef __quax_h__
1616#define __quax_h__
1717
18#include <qglobal.h>
19
20#include <qpixmap.h>
21#include <qbitmap.h>
22#include <qimage.h>
23#include <qpainter.h>
24
25#include <qicon.h>
26#include <qwidget.h>
27#include <qlabel.h>
28#include <qmessagebox.h>
29#include <qapplication.h>
30#include <qmatrix.h>
31#include <qapplication.h>
32//Added by qt3to4:
33#include <QMenu>
34#include <QWheelEvent>
18#include <QBitmap>
3519#include <QEvent>
36#include <QMouseEvent>
37#include <QTimerEvent>
38#include <QKeyEvent>
39#include <QPaintEvent>
20#include <QIcon>
21#include <QImage>
22#include <QMenu>
23#include <QPixmap>
4024#include <QTextBrowser>
25#include <QWidget>
4126
42#define QUAX_VERSION "1.0"
43#define QUAX_RELEASE "1"
44
4527#define ZOOM_SCALE_MIN 2
46#define ZOOM_SCALE_MAX 5
28#define ZOOM_SCALE_MAX 8
4729
4830#define SHAPE_WIDTH 150
4931#define SHAPE_HEIGHT 150
112112 QString m_colorStringDecimal, ///< the current color under mouse as decimals comma seperated
113113 m_colorStringHexaLower, ///< the current color under mouse as web RGB with lower hexadecimals
114114 m_colorStringHexaUpper; ///< the current color under mouse as web RGB with upper hexadecimals
115 QMenu *menu, ///< The main menu of Quax
116 *menuZoom, ///< Menu for zoom levels and zoom in and zoom out items
117 *menuLook, ///< The "Look at" menu
118 *menuColor; ///< Menu for coying textual representation into clipboard
115 QMenu *m_menu, ///< The main menu of Quax
116 *m_menuZoom, ///< Menu for zoom levels and zoom in and zoom out items
117 *m_menuLook, ///< The "Look at" menu
118 *m_menuColor; ///< Menu for coying textual representation into clipboard
119119 QActionGroup *m_zoomGroup,
120120 *m_rotGroup,
121121 *m_colorGroup;
126126 m_colorTipEnabled;///< if true, the color tooltip is displayed
127127 int m_zoomLevel, ///< current zoom level
128128 m_lookAt; ///< current quadrant direction where Quax "look at"
129 QPoint dragOffset; ///< the offset between Quax position and new mouse position
129 QPoint m_dragOffset; ///< the offset between Quax position and new mouse position
130130
131131 /**
132132 * It grabs the desktop area, scale it, clip it with circle region,